aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorliamfallon <liam.fallon@est.tech>2021-05-20 15:43:35 +0100
committerliamfallon <liam.fallon@est.tech>2021-05-20 16:40:13 +0100
commitfa94a96fed5fd7af230a90373a04da47370e2eea (patch)
tree403698f7b95a884248c1414304e42d23e406d05e
parent65262f8dd9a6b9cbc284daa02ae332380e374483 (diff)
Merge master into tosca-poc branch
This review was created with the commands: git co master git pull git co tosca-poc git pull git merge -X theirs master With this merge, the CLAMP master branch is merged into tosca-poc, and, apart from the tosca-controlloop directory, they are identical Issue-ID: POLICY-3215 Change-Id: Iaa1c4894b33508f8bb75b7d1c0dd414964497625 Signed-off-by: liamfallon <liam.fallon@est.tech>
-rw-r--r--.gitreview3
-rw-r--r--README.md10
-rw-r--r--common/pom.xml36
-rw-r--r--[-rwxr-xr-x]docs/_static/favicon.icobin2102 -> 2102 bytes
-rw-r--r--docs/architecture.rst37
-rw-r--r--docs/images/architecture/monitoring.pngbin60890 -> 0 bytes
-rw-r--r--docs/images/clamp-policy_archi.pngbin0 -> 89501 bytes
-rw-r--r--[-rwxr-xr-x]docs/images/user-guide/blueprint_node_type.pngbin65898 -> 65898 bytes
-rw-r--r--[-rwxr-xr-x]docs/images/user-guide/clamp-cds-operation.pngbin62357 -> 62357 bytes
-rw-r--r--[-rwxr-xr-x]docs/images/user-guide/config-policy-tca.pngbin49477 -> 49477 bytes
-rw-r--r--[-rwxr-xr-x]docs/images/user-guide/deploy-params.pngbin45138 -> 45138 bytes
-rw-r--r--[-rwxr-xr-x]docs/images/user-guide/op-policy-box-policy.pngbin67750 -> 67750 bytes
-rw-r--r--[-rwxr-xr-x]docs/images/user-guide/open-menu-prop.pngbin59422 -> 59422 bytes
-rw-r--r--[-rwxr-xr-x]docs/images/user-guide/policy-submitted.pngbin47028 -> 47028 bytes
-rw-r--r--docs/index.rst83
-rw-r--r--docs/swagger/swagger.json598
-rw-r--r--docs/swagger/swagger.pdf18087
-rw-r--r--docs/user-guide.rst12
-rw-r--r--models/pom.xml35
-rw-r--r--participant/participant-impl/participant-impl-cds/pom.xml34
-rw-r--r--participant/participant-impl/participant-impl-dcae/pom.xml34
-rw-r--r--participant/participant-impl/participant-impl-kubernetes/pom.xml34
-rw-r--r--participant/participant-impl/participant-impl-policy/pom.xml34
-rw-r--r--participant/participant-impl/participant-impl-simulator/pom.xml34
-rw-r--r--participant/participant-impl/pom.xml43
-rw-r--r--participant/participant-intermediary/pom.xml37
-rw-r--r--participant/pom.xml42
-rw-r--r--pom.xml1334
-rwxr-xr-xruntime/extra/bin-for-dev/start-backend.sh (renamed from extra/bin-for-dev/start-backend.sh)0
-rwxr-xr-xruntime/extra/bin-for-dev/start-db.sh (renamed from extra/bin-for-dev/start-db.sh)0
-rwxr-xr-xruntime/extra/bin-for-dev/start-emulator.sh (renamed from extra/bin-for-dev/start-emulator.sh)0
-rwxr-xr-xruntime/extra/bin-for-dev/start-frontend.sh (renamed from extra/bin-for-dev/start-frontend.sh)0
-rw-r--r--runtime/extra/docker/clamp/clamp.env (renamed from extra/docker/clamp/clamp.env)2
-rw-r--r--runtime/extra/docker/clamp/docker-compose.yml (renamed from extra/docker/clamp/docker-compose.yml)0
-rw-r--r--runtime/extra/docker/mariadb/conf1/my.cnf (renamed from extra/docker/mariadb/conf1/my.cnf)0
-rw-r--r--runtime/extra/docker/mariadb/conf2/my.cnf (renamed from extra/docker/mariadb/conf2/my.cnf)0
-rw-r--r--runtime/extra/docker/mariadb/conf3/my.cnf (renamed from extra/docker/mariadb/conf3/my.cnf)0
-rwxr-xr-xruntime/extra/sql/bootstrap-database.sh (renamed from extra/sql/bootstrap-database.sh)0
-rw-r--r--runtime/extra/sql/bulkload/create-db.sql (renamed from extra/sql/bulkload/create-db.sql)0
-rw-r--r--runtime/extra/sql/bulkload/create-tables.sql (renamed from extra/sql/bulkload/create-tables.sql)0
-rwxr-xr-xruntime/extra/sql/dump/backup-data-only.sh (renamed from extra/sql/dump/backup-data-only.sh)0
-rwxr-xr-xruntime/extra/sql/dump/backup-database.sh (renamed from extra/sql/dump/backup-database.sh)0
-rwxr-xr-xruntime/extra/sql/dump/load-fake-data.sh (renamed from extra/sql/dump/load-fake-data.sh)0
-rw-r--r--runtime/extra/sql/dump/test-data.sql (renamed from extra/sql/dump/test-data.sql)0
-rw-r--r--runtime/pom.xml1250
-rw-r--r--runtime/runtime/src/main/resources/META-INF/resources/swagger.html454
-rw-r--r--runtime/src/main/docker/backend/Dockerfile (renamed from src/main/docker/backend/Dockerfile)12
-rw-r--r--runtime/src/main/docker/backend/backend-files.xml (renamed from src/main/docker/backend/backend-files.xml)0
-rw-r--r--runtime/src/main/docker/frontend/Dockerfile (renamed from src/main/docker/frontend/Dockerfile)141
-rw-r--r--runtime/src/main/docker/frontend/frontend-files.xml (renamed from src/main/docker/frontend/frontend-files.xml)0
-rw-r--r--runtime/src/main/docker/frontend/nginx/default.conf (renamed from src/main/docker/frontend/nginx/default.conf)0
-rw-r--r--runtime/src/main/docker/frontend/nginx/nginx.conf (renamed from src/main/docker/frontend/nginx/nginx.conf)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java (renamed from src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java)43
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/authorization/CldsUser.java (renamed from src/main/java/org/onap/policy/clamp/authorization/CldsUser.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java (renamed from src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java (renamed from src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/authorization/UserService.java (renamed from src/main/java/org/onap/policy/clamp/authorization/UserService.java)6
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/Application.java (renamed from src/main/java/org/onap/policy/clamp/clds/Application.java)51
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java (renamed from src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java (renamed from src/main/java/org/onap/policy/clamp/clds/ClampServlet.java)24
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java (renamed from src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java (renamed from src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java)456
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java (renamed from src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java)283
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java (renamed from src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java166
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java (renamed from src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java (renamed from src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java (renamed from src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java (renamed from src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java)6
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java (renamed from src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java (renamed from src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java (renamed from src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java)27
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java (renamed from src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java)54
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java (renamed from src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java (renamed from src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java (renamed from src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java (renamed from src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java (renamed from src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java (renamed from src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java (renamed from src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java (renamed from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java (renamed from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java (renamed from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java (renamed from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java (renamed from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java (renamed from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java (renamed from src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java (renamed from src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java (renamed from src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java (renamed from src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java (renamed from src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java (renamed from src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java (renamed from src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java (renamed from src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java (renamed from src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java (renamed from src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java)23
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java (renamed from src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java (renamed from src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java (renamed from src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java (renamed from src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java (renamed from src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java (renamed from src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java (renamed from src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java)144
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java)442
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElement.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElement.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataProcess.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataProcess.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataTargetProcess.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataTargetProcess.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParser.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParser.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java)2
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplate.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplate.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateField.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateField.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java (renamed from src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/util/ClampVersioning.java (renamed from src/main/java/org/onap/policy/clamp/clds/util/ClampVersioning.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/util/JsonUtils.java (renamed from src/main/java/org/onap/policy/clamp/clds/util/JsonUtils.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/util/LogMessages.java (renamed from src/main/java/org/onap/policy/clamp/clds/util/LogMessages.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java (renamed from src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java)100
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/util/OnapLogConstants.java (renamed from src/main/java/org/onap/policy/clamp/clds/util/OnapLogConstants.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java (renamed from src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java)8
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java (renamed from src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java)9
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java (renamed from src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java (renamed from src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java (renamed from src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java (renamed from src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java (renamed from src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java (renamed from src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java (renamed from src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/Loop.java (renamed from src/main/java/org/onap/policy/clamp/loop/Loop.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/LoopController.java (renamed from src/main/java/org/onap/policy/clamp/loop/LoopController.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/LoopService.java (renamed from src/main/java/org/onap/policy/clamp/loop/LoopService.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/LoopState.java (renamed from src/main/java/org/onap/policy/clamp/loop/LoopState.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java (renamed from src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java (renamed from src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java (renamed from src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java (renamed from src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java)6
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java (renamed from src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java (renamed from src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java (renamed from src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java)102
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java (renamed from src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java)5
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/log/LogType.java (renamed from src/main/java/org/onap/policy/clamp/loop/log/LogType.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java (renamed from src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java (renamed from src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java (renamed from src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java (renamed from src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/service/Service.java (renamed from src/main/java/org/onap/policy/clamp/loop/service/Service.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java (renamed from src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopType.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/LoopType.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java (renamed from src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java)53
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java (renamed from src/main/java/org/onap/policy/clamp/policy/Policy.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java (renamed from src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java)52
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java (renamed from src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/PolicyService.java (renamed from src/main/java/org/onap/policy/clamp/policy/PolicyService.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java (renamed from src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java (renamed from src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java)3
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java (renamed from src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java (renamed from src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java (renamed from src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java)5
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java (renamed from src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java (renamed from src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java)22
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java (renamed from src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java141
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadException.java54
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java (renamed from src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java)120
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java (renamed from src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java)24
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java (renamed from src/main/java/org/onap/policy/clamp/tosca/Dictionary.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java (renamed from src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java (renamed from src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java (renamed from src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java (renamed from src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java)0
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/util/PassDecoder.java (renamed from src/main/java/org/onap/policy/clamp/util/PassDecoder.java)10
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java (renamed from src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java)0
-rw-r--r--runtime/src/main/resources/META-INF/resources/swagger.html (renamed from src/main/resources/META-INF/resources/swagger.html)601
-rw-r--r--runtime/src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson (renamed from src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson)0
-rw-r--r--runtime/src/main/resources/application-noaaf.properties (renamed from src/main/resources/application-noaaf.properties)25
-rw-r--r--runtime/src/main/resources/application.properties (renamed from src/main/resources/application.properties)22
-rw-r--r--runtime/src/main/resources/asciidoc/swagger.adoc (renamed from src/main/resources/asciidoc/swagger.adoc)0
-rw-r--r--runtime/src/main/resources/boot-message.txt16
-rw-r--r--runtime/src/main/resources/clds-version.properties (renamed from src/main/resources/clds-version.properties)0
-rw-r--r--runtime/src/main/resources/clds/aaf/org.onap.clamp.keyfile (renamed from src/main/resources/clds/aaf/org.onap.clamp.keyfile)0
-rw-r--r--runtime/src/main/resources/clds/aaf/ssl/ca-certs.pem (renamed from src/main/resources/clds/aaf/ssl/ca-certs.pem)0
-rw-r--r--runtime/src/main/resources/clds/aaf/ssl/clamp.key (renamed from src/main/resources/clds/aaf/ssl/clamp.key)0
-rw-r--r--runtime/src/main/resources/clds/aaf/ssl/clamp.pem (renamed from src/main/resources/clds/aaf/ssl/clamp.pem)0
-rw-r--r--runtime/src/main/resources/clds/aaf/truststoreONAPall.jks (renamed from src/main/resources/clds/aaf/truststoreONAPall.jks)bin117990 -> 117990 bytes
-rw-r--r--runtime/src/main/resources/clds/camel/rest/clamp-api-v2.xml (renamed from src/main/resources/clds/camel/rest/clamp-api-v2.xml)314
-rw-r--r--runtime/src/main/resources/clds/camel/rest/clds-services.xml (renamed from src/main/resources/clds/camel/rest/clds-services.xml)2
-rw-r--r--runtime/src/main/resources/clds/camel/routes/cds-flows.xml (renamed from src/main/resources/clds/camel/routes/cds-flows.xml)12
-rw-r--r--runtime/src/main/resources/clds/camel/routes/dcae-flows.xml (renamed from src/main/resources/clds/camel/routes/dcae-flows.xml)152
-rw-r--r--runtime/src/main/resources/clds/camel/routes/loop-flows.xml (renamed from src/main/resources/clds/camel/routes/loop-flows.xml)74
-rw-r--r--runtime/src/main/resources/clds/camel/routes/policy-flows.xml (renamed from src/main/resources/clds/camel/routes/policy-flows.xml)267
-rw-r--r--runtime/src/main/resources/clds/camel/routes/utils-flows.xml (renamed from src/main/resources/clds/camel/routes/utils-flows.xml)4
-rw-r--r--runtime/src/main/resources/clds/clds-users.json (renamed from src/main/resources/clds/clds-users.json)0
-rw-r--r--runtime/src/main/resources/clds/json-schema/operational_policies/operational_policy.json (renamed from src/main/resources/clds/json-schema/operational_policies/operational_policy.json)0
-rw-r--r--runtime/src/main/resources/clds/sdc-controllers-config.json (renamed from src/main/resources/clds/sdc-controllers-config.json)2
-rw-r--r--runtime/src/main/resources/clds/tosca-converter/default-tosca-types.yaml (renamed from src/main/resources/clds/tosca-converter/default-tosca-types.yaml)0
-rw-r--r--runtime/src/main/resources/clds/tosca-converter/templates.json (renamed from src/main/resources/clds/tosca-converter/templates.json)0
-rw-r--r--runtime/src/main/resources/logback-default.xml (renamed from src/main/resources/logback-default.xml)0
-rw-r--r--runtime/src/main/resources/logback-spring.xml (renamed from src/main/resources/logback-spring.xml)0
-rw-r--r--runtime/src/main/resources/logmessages.properties (renamed from src/main/resources/logmessages.properties)0
-rw-r--r--runtime/src/main/resources/system.properties (renamed from src/main/resources/system.properties)0
-rw-r--r--runtime/src/main/script/SelectNpmRepo.groovy (renamed from src/main/script/SelectNpmRepo.groovy)0
-rw-r--r--runtime/src/main/script/TagVersion.groovy (renamed from src/main/script/TagVersion.groovy)0
-rw-r--r--[-rwxr-xr-x]runtime/src/main/script/checkLibIndex.sh (renamed from src/main/script/checkLibIndex.sh)6
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java)7
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java (renamed from src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItCase.java (renamed from src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java (renamed from src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java (renamed from src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItCase.java (renamed from src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItCase.java (renamed from src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItCase.java)12
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItCase.java (renamed from src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java (renamed from src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java)4
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java (renamed from src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java (renamed from src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java)104
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java (renamed from src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/util/TestObject.java (renamed from src/test/java/org/onap/policy/clamp/clds/util/TestObject.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java (renamed from src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java (renamed from src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java)10
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/CsarInstallerItCase.java (renamed from src/test/java/org/onap/policy/clamp/loop/CsarInstallerItCase.java)20
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java (renamed from src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java)41
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/DeployFlowTestItCase.java (renamed from src/test/java/org/onap/policy/clamp/loop/DeployFlowTestItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java (renamed from src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java (renamed from src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java (renamed from src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItCase.java (renamed from src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/LoopServiceTestItCase.java (renamed from src/test/java/org/onap/policy/clamp/loop/LoopServiceTestItCase.java)4
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java (renamed from src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItCase.java (renamed from src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItCase.java)292
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java (renamed from src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java (renamed from src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java)11
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java (renamed from src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java)39
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/ServiceTest.java (renamed from src/test/java/org/onap/policy/clamp/loop/ServiceTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java (renamed from src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerTestItCase.java (renamed from src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerTestItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java (renamed from src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java (renamed from src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java231
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java (renamed from ui-react/src/api/PoliciesListCache.js)29
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java75
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java (renamed from src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java)12
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItCase.java (renamed from src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItCase.java)0
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java (renamed from src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java)23
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java (renamed from src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java)0
-rw-r--r--runtime/src/test/resources/application.properties (renamed from src/test/resources/application.properties)26
-rw-r--r--runtime/src/test/resources/clds/blueprint-with-microservice-chain.yaml (renamed from src/test/resources/clds/blueprint-with-microservice-chain.yaml)0
-rw-r--r--runtime/src/test/resources/clds/clds-parse-exception.json (renamed from src/test/resources/clds/clds-parse-exception.json)0
-rw-r--r--runtime/src/test/resources/clds/clds-users-incomplete-permissions.json (renamed from src/test/resources/clds/clds-users-incomplete-permissions.json)0
-rw-r--r--runtime/src/test/resources/clds/clds-users-no-permission.json (renamed from src/test/resources/clds/clds-users-no-permission.json)0
-rw-r--r--runtime/src/test/resources/clds/clds-users-two-users.json (renamed from src/test/resources/clds/clds-users-two-users.json)0
-rw-r--r--runtime/src/test/resources/clds/new-microservice.yaml (renamed from src/test/resources/clds/new-microservice.yaml)0
-rw-r--r--runtime/src/test/resources/clds/policy-merger.json (renamed from src/test/resources/clds/policy-merger.json)0
-rw-r--r--runtime/src/test/resources/clds/sdc-controller-config-NULL.json (renamed from src/test/resources/clds/sdc-controller-config-NULL.json)0
-rw-r--r--runtime/src/test/resources/clds/sdc-controller-config-TLS.json (renamed from src/test/resources/clds/sdc-controller-config-TLS.json)4
-rw-r--r--runtime/src/test/resources/clds/sdc-controller-config-bad.json (renamed from src/test/resources/clds/sdc-controller-config-bad.json)0
-rw-r--r--runtime/src/test/resources/clds/sdc-controller-config-empty-encrypted.json (renamed from src/test/resources/clds/sdc-controller-config-empty-encrypted.json)0
-rw-r--r--runtime/src/test/resources/clds/sdc-controllers-config-bad.json (renamed from src/test/resources/clds/sdc-controllers-config-bad.json)0
-rw-r--r--runtime/src/test/resources/clds/sdc-controllers-config-missing-param.json (renamed from src/test/resources/clds/sdc-controllers-config-missing-param.json)0
-rw-r--r--runtime/src/test/resources/clds/sdc-controllers-config.json30
-rw-r--r--runtime/src/test/resources/clds/single-microservice-fragment-invalid.yaml (renamed from src/test/resources/clds/single-microservice-fragment-invalid.yaml)0
-rw-r--r--runtime/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml (renamed from src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml)0
-rw-r--r--runtime/src/test/resources/clds/single-microservice-fragment-without-name.yaml (renamed from src/test/resources/clds/single-microservice-fragment-without-name.yaml)0
-rw-r--r--runtime/src/test/resources/clds/single-microservice-fragment-without-properties.yaml (renamed from src/test/resources/clds/single-microservice-fragment-without-properties.yaml)0
-rw-r--r--runtime/src/test/resources/clds/single-microservice-fragment-without-relationships.yaml (renamed from src/test/resources/clds/single-microservice-fragment-without-relationships.yaml)0
-rw-r--r--runtime/src/test/resources/clds/templates/dcae-deployment-template.json (renamed from src/test/resources/clds/templates/dcae-deployment-template.json)0
-rw-r--r--runtime/src/test/resources/clds/templates/dcae-template.json (renamed from src/test/resources/clds/templates/dcae-template.json)0
-rw-r--r--runtime/src/test/resources/clds/templates/globalProperties.json (renamed from src/test/resources/clds/templates/globalProperties.json)0
-rw-r--r--runtime/src/test/resources/clds/templates/sdc-decode-service_ids.json (renamed from src/test/resources/clds/templates/sdc-decode-service_ids.json)0
-rw-r--r--runtime/src/test/resources/clds/templates/sdc-template.json (renamed from src/test/resources/clds/templates/sdc-template.json)0
-rw-r--r--runtime/src/test/resources/clds/templates/tca-policy-template.json (renamed from src/test/resources/clds/templates/tca-policy-template.json)0
-rw-r--r--runtime/src/test/resources/clds/templates/tca-template.json (renamed from src/test/resources/clds/templates/tca-template.json)0
-rw-r--r--runtime/src/test/resources/clds/templates/tca-thresholds-template.json (renamed from src/test/resources/clds/templates/tca-thresholds-template.json)0
-rw-r--r--runtime/src/test/resources/clds/templates/ui-location-default.json (renamed from src/test/resources/clds/templates/ui-location-default.json)0
-rw-r--r--runtime/src/test/resources/clds/util/file.xml (renamed from src/test/resources/clds/util/file.xml)0
-rw-r--r--runtime/src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json (renamed from src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json)0
-rw-r--r--runtime/src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json (renamed from src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json)0
-rw-r--r--runtime/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json (renamed from src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json)0
-rw-r--r--runtime/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json (renamed from src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json)0
-rw-r--r--runtime/src/test/resources/example/dcae/inventory-response.json78
-rw-r--r--runtime/src/test/resources/example/policy/pdp-deployment-testos-1_0_0.json30
-rw-r--r--runtime/src/test/resources/example/policy/pdp-deployment-testos-2_0_0.json204
-rw-r--r--runtime/src/test/resources/example/policy/pdp-group-multi-policies-payload.json74
-rw-r--r--runtime/src/test/resources/example/policy/pdp-group-policy-payload.json (renamed from src/test/resources/tosca/pdp-group-policy-payload.json)32
-rw-r--r--runtime/src/test/resources/example/policy/policy-merger.json (renamed from src/test/resources/example/policy/policy-merger.json)76
-rw-r--r--runtime/src/test/resources/example/policy/single-policy-enriched.json (renamed from src/test/resources/example/policy/single-policy-enriched.json)0
-rw-r--r--runtime/src/test/resources/example/sdc/blueprint-dcae/tca-bad-policy.yaml (renamed from src/test/resources/example/sdc/blueprint-dcae/tca-bad-policy.yaml)0
-rw-r--r--runtime/src/test/resources/example/sdc/blueprint-dcae/tca-guilin.yaml (renamed from src/test/resources/example/sdc/blueprint-dcae/tca-guilin.yaml)0
-rw-r--r--runtime/src/test/resources/example/sdc/blueprint-dcae/tca.yaml (renamed from src/test/resources/example/sdc/blueprint-dcae/tca.yaml)0
-rw-r--r--runtime/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml (renamed from src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml)0
-rw-r--r--runtime/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml (renamed from src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml)0
-rw-r--r--runtime/src/test/resources/example/sdc/expected-result/deployment-parameters-multi-blueprints.json (renamed from src/test/resources/example/sdc/expected-result/deployment-parameters-multi-blueprints.json)0
-rw-r--r--runtime/src/test/resources/example/sdc/expected-result/deployment-parameters-single-blueprint.json (renamed from src/test/resources/example/sdc/expected-result/deployment-parameters-single-blueprint.json)0
-rw-r--r--runtime/src/test/resources/example/sdc/expected-result/policy-data.yaml (renamed from src/test/resources/example/sdc/expected-result/policy-data.yaml)0
-rw-r--r--runtime/src/test/resources/example/sdc/service-Simsfoimap0112.csar (renamed from src/test/resources/example/sdc/service-Simsfoimap0112.csar)bin52568 -> 52568 bytes
-rw-r--r--runtime/src/test/resources/example/sdc/service-without-policy.csar (renamed from src/test/resources/example/sdc/service-without-policy.csar)bin56126 -> 56126 bytes
-rw-r--r--runtime/src/test/resources/example/sdc/service_Vloadbalancerms_cds.csar (renamed from src/test/resources/example/sdc/service_Vloadbalancerms_cds.csar)bin115771 -> 115771 bytes
-rw-r--r--runtime/src/test/resources/example/sdc/service_Vloadbalancerms_no_cds.csar (renamed from src/test/resources/example/sdc/service_Vloadbalancerms_no_cds.csar)bin115690 -> 115690 bytes
-rw-r--r--runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.file (renamed from src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.header (renamed from src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.file (renamed from src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.header (renamed from src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policies/.file (renamed from src/test/resources/http-cache/example/policy/api/v1/policies/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policies/.header (renamed from src/test/resources/http-cache/example/policy/api/v1/policies/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/.header (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.file (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.header (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.file (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.header (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.file (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.header (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.file (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.header (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.file (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.header (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.file (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.header (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.file (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.header (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.file (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.header (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.file (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.file)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.header (renamed from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.header)0
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/pap/v1/pdps/.file (renamed from src/test/resources/http-cache/example/policy/pap/v1/pdps/.file)7
-rw-r--r--runtime/src/test/resources/http-cache/example/policy/pap/v1/pdps/.header (renamed from src/test/resources/http-cache/example/policy/pap/v1/pdps/.header)0
-rwxr-xr-xruntime/src/test/resources/http-cache/start_http_cache.sh (renamed from src/test/resources/http-cache/start_http_cache.sh)0
-rw-r--r--[-rwxr-xr-x]runtime/src/test/resources/http-cache/third_party_proxy.py (renamed from src/test/resources/http-cache/third_party_proxy.py)0
-rw-r--r--runtime/src/test/resources/https/https-test.properties (renamed from src/test/resources/https/https-test.properties)12
-rw-r--r--runtime/src/test/resources/https/keystore-test.jks (renamed from src/test/resources/https/keystore-test.jks)bin2244 -> 2244 bytes
-rw-r--r--runtime/src/test/resources/logback.xml (renamed from src/test/resources/logback.xml)0
-rw-r--r--runtime/src/test/resources/robotframework/Dockerfile (renamed from src/test/resources/robotframework/Dockerfile)3
-rw-r--r--runtime/src/test/resources/robotframework/requirements.txt (renamed from src/test/resources/robotframework/requirements.txt)0
-rw-r--r--runtime/src/test/resources/robotframework/robotframework-test.properties (renamed from src/test/resources/robotframework/robotframework-test.properties)26
-rw-r--r--runtime/src/test/resources/robotframework/tests/01_healthcheck.robot (renamed from src/test/resources/robotframework/tests/01_healthcheck.robot)0
-rw-r--r--runtime/src/test/resources/robotframework/tests/02_policy_queries.robot (renamed from src/test/resources/robotframework/tests/02_policy_queries.robot)0
-rw-r--r--runtime/src/test/resources/tosca/micro-service-policy-payload.json (renamed from src/test/resources/tosca/micro-service-policy-payload.json)0
-rw-r--r--runtime/src/test/resources/tosca/micro-service-policy-properties.json (renamed from src/test/resources/tosca/micro-service-policy-properties.json)0
-rw-r--r--runtime/src/test/resources/tosca/model-properties-cds.json (renamed from src/test/resources/tosca/model-properties-cds.json)0
-rw-r--r--runtime/src/test/resources/tosca/model-properties-operational-policy.json (renamed from src/test/resources/tosca/model-properties-operational-policy.json)0
-rw-r--r--runtime/src/test/resources/tosca/model-properties.json (renamed from src/test/resources/tosca/model-properties.json)0
-rw-r--r--runtime/src/test/resources/tosca/new-converter/constraints.yaml (renamed from src/test/resources/tosca/new-converter/constraints.yaml)120
-rw-r--r--runtime/src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml (renamed from src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml)320
-rw-r--r--runtime/src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml (renamed from src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml)0
-rw-r--r--runtime/src/test/resources/tosca/new-converter/tca-with-metadata.json (renamed from src/test/resources/tosca/new-converter/tca-with-metadata.json)0
-rw-r--r--runtime/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json (renamed from src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json)0
-rw-r--r--runtime/src/test/resources/tosca/new-converter/tosca_metadata_clamp_possible_values.yaml (renamed from src/test/resources/tosca/new-converter/tosca_metadata_clamp_possible_values.yaml)0
-rw-r--r--runtime/src/test/resources/tosca/operational-policy-cds-payload-with-list.json (renamed from src/test/resources/tosca/operational-policy-cds-payload-with-list.json)0
-rw-r--r--runtime/src/test/resources/tosca/operational-policy-json-schema.json (renamed from src/test/resources/tosca/operational-policy-json-schema.json)0
-rw-r--r--runtime/src/test/resources/tosca/operational-policy-no-guard-properties.json (renamed from src/test/resources/tosca/operational-policy-no-guard-properties.json)0
-rw-r--r--runtime/src/test/resources/tosca/operational-policy-properties.json (renamed from src/test/resources/tosca/operational-policy-properties.json)0
-rw-r--r--runtime/src/test/resources/tosca/resource-details-cds.json (renamed from src/test/resources/tosca/resource-details-cds.json)0
-rw-r--r--runtime/src/test/resources/tosca/resource-details.json (renamed from src/test/resources/tosca/resource-details.json)0
-rw-r--r--runtime/src/test/resources/tosca/service-details.json (renamed from src/test/resources/tosca/service-details.json)0
-rw-r--r--runtime/src/test/resources/tosca/tca_hi_lo.json (renamed from src/test/resources/tosca/tca_hi_lo.json)0
-rw-r--r--runtime/src/test/resources/tosca/tosca_example.yaml (renamed from src/test/resources/tosca/tosca_example.yaml)0
-rw-r--r--runtime/src/test/resources/tosca/tosca_with_date_time_json_schema.json (renamed from src/test/resources/tosca/tosca_with_date_time_json_schema.json)0
-rw-r--r--runtime/src/test/resources/tosca/tosca_with_metadata.yaml (renamed from src/test/resources/tosca/tosca_with_metadata.yaml)0
-rw-r--r--runtime/ui-react-lib/libExportExclusions.dat (renamed from ui-react-lib/libExportExclusions.dat)0
-rwxr-xr-xruntime/ui-react-lib/libIndex.js (renamed from ui-react-lib/libIndex.js)4
-rwxr-xr-xruntime/ui-react-lib/package.json (renamed from ui-react-lib/package.json)0
-rwxr-xr-xruntime/ui-react-lib/rollup.config.js (renamed from ui-react-lib/rollup.config.js)0
-rw-r--r--runtime/ui-react/package.json (renamed from ui-react/package.json)18
-rw-r--r--runtime/ui-react/public/index.html (renamed from ui-react/public/index.html)0
-rw-r--r--runtime/ui-react/public/manifest.json (renamed from ui-react/public/manifest.json)0
-rw-r--r--runtime/ui-react/public/onap.ico (renamed from ui-react/public/onap.ico)bin18046 -> 18046 bytes
-rw-r--r--runtime/ui-react/src/LoopUI.js (renamed from ui-react/src/LoopUI.js)0
-rw-r--r--runtime/ui-react/src/LoopUI.test.js (renamed from ui-react/src/LoopUI.test.js)0
-rw-r--r--runtime/ui-react/src/NotFound.js (renamed from ui-react/src/NotFound.js)0
-rw-r--r--runtime/ui-react/src/NotFound.test.js (renamed from ui-react/src/NotFound.test.js)0
-rw-r--r--runtime/ui-react/src/OnapClamp.js (renamed from ui-react/src/OnapClamp.js)0
-rw-r--r--runtime/ui-react/src/OnapClamp.test.js (renamed from ui-react/src/OnapClamp.test.js)0
-rw-r--r--runtime/ui-react/src/__snapshots__/LoopUI.test.js.snap (renamed from ui-react/src/__snapshots__/LoopUI.test.js.snap)0
-rw-r--r--runtime/ui-react/src/__snapshots__/NotFound.test.js.snap (renamed from ui-react/src/__snapshots__/NotFound.test.js.snap)0
-rw-r--r--runtime/ui-react/src/__snapshots__/OnapClamp.test.js.snap (renamed from ui-react/src/__snapshots__/OnapClamp.test.js.snap)0
-rw-r--r--runtime/ui-react/src/api/LoopActionService.js (renamed from ui-react/src/api/LoopActionService.js)0
-rw-r--r--runtime/ui-react/src/api/LoopCache.js (renamed from ui-react/src/api/LoopCache.js)0
-rw-r--r--runtime/ui-react/src/api/LoopCache.test.js (renamed from ui-react/src/api/LoopCache.test.js)0
-rw-r--r--runtime/ui-react/src/api/LoopCacheMockFile.json (renamed from ui-react/src/api/LoopCacheMockFile.json)0
-rw-r--r--runtime/ui-react/src/api/LoopService.js (renamed from ui-react/src/api/LoopService.js)0
-rw-r--r--runtime/ui-react/src/api/PoliciesListCacheMockFile.json (renamed from ui-react/src/api/PoliciesListCacheMockFile.json)0
-rw-r--r--runtime/ui-react/src/api/PolicyService.js (renamed from ui-react/src/api/PolicyService.js)54
-rw-r--r--runtime/ui-react/src/api/PolicyToscaService.js (renamed from ui-react/src/api/PolicyToscaService.js)60
-rw-r--r--runtime/ui-react/src/api/TemplateService.js (renamed from ui-react/src/api/TemplateService.js)0
-rw-r--r--runtime/ui-react/src/api/UserService.js (renamed from ui-react/src/api/UserService.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/CreateLoopModal.js (renamed from ui-react/src/components/dialogs/Loop/CreateLoopModal.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/CreateLoopModal.test.js (renamed from ui-react/src/components/dialogs/Loop/CreateLoopModal.test.js)4
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/DeployLoopModal.js (renamed from ui-react/src/components/dialogs/Loop/DeployLoopModal.js)20
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js (renamed from ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.js (renamed from ui-react/src/components/dialogs/Loop/LoopPropertiesModal.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.test.js (renamed from ui-react/src/components/dialogs/Loop/LoopPropertiesModal.test.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/ModifyLoopModal.js (renamed from ui-react/src/components/dialogs/Loop/ModifyLoopModal.js)7
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/ModifyLoopModal.test.js (renamed from ui-react/src/components/dialogs/Loop/ModifyLoopModal.test.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/OpenLoopModal.js (renamed from ui-react/src/components/dialogs/Loop/OpenLoopModal.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js (renamed from ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/__snapshots__/CreateLoopModal.test.js.snap (renamed from ui-react/src/components/dialogs/Loop/__snapshots__/CreateLoopModal.test.js.snap)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap (renamed from ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap)9
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/__snapshots__/LoopPropertiesModal.test.js.snap (renamed from ui-react/src/components/dialogs/Loop/__snapshots__/LoopPropertiesModal.test.js.snap)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap (renamed from ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap)0
-rw-r--r--runtime/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.js (renamed from ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js (renamed from ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/ManageDictionaries/__snapshots__/ManageDictionaries.test.js.snap (renamed from ui-react/src/components/dialogs/ManageDictionaries/__snapshots__/ManageDictionaries.test.js.snap)0
-rw-r--r--runtime/ui-react/src/components/dialogs/PerformActions.js (renamed from ui-react/src/components/dialogs/PerformActions.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/PerformActions.test.js (renamed from ui-react/src/components/dialogs/PerformActions.test.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/PoliciesTreeViewer.js109
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/PolicyDeploymentEditor.js176
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/PolicyEditor.js (renamed from ui-react/src/components/dialogs/Policy/PolicyEditor.js)29
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/PolicyEditor.test.js71
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/PolicyModal.js (renamed from ui-react/src/components/dialogs/Policy/PolicyModal.js)21
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/PolicyModal.test.js (renamed from ui-react/src/components/dialogs/Policy/PolicyModal.test.js)13
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/PolicyToscaFileSelector.js128
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/ToscaViewer.js (renamed from ui-react/src/components/dialogs/Policy/ToscaViewer.js)19
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/ToscaViewer.test.js54
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/ViewAllPolicies.js473
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/__snapshots__/PolicyEditor.test.js.snap788
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/__snapshots__/PolicyModal.test.js.snap159
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/__snapshots__/ToscaViewer.test.js.snap30
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/toscaData.test.json179
-rw-r--r--runtime/ui-react/src/components/dialogs/Policy/toscaData.test.yaml13
-rw-r--r--runtime/ui-react/src/components/dialogs/RefreshStatus.js (renamed from ui-react/src/components/dialogs/RefreshStatus.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/RefreshStatus.test.js (renamed from ui-react/src/components/dialogs/RefreshStatus.test.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js (renamed from ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js)4
-rw-r--r--runtime/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js (renamed from ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap (renamed from ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap)0
-rw-r--r--runtime/ui-react/src/components/dialogs/UserInfoModal.js (renamed from ui-react/src/components/dialogs/UserInfoModal.js)2
-rw-r--r--runtime/ui-react/src/components/dialogs/UserInfoModal.test.js (renamed from ui-react/src/components/dialogs/UserInfoModal.test.js)0
-rw-r--r--runtime/ui-react/src/components/dialogs/__snapshots__/UserInfoModal.test.js.snap (renamed from ui-react/src/components/dialogs/__snapshots__/UserInfoModal.test.js.snap)2
-rw-r--r--runtime/ui-react/src/components/loop_viewer/logs/LoopLogs.js (renamed from ui-react/src/components/loop_viewer/logs/LoopLogs.js)7
-rw-r--r--runtime/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js (renamed from ui-react/src/components/loop_viewer/logs/LoopLogs.test.js)0
-rw-r--r--runtime/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap (renamed from ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap)1
-rw-r--r--runtime/ui-react/src/components/loop_viewer/status/LoopStatus.js (renamed from ui-react/src/components/loop_viewer/status/LoopStatus.js)7
-rw-r--r--runtime/ui-react/src/components/loop_viewer/status/LoopStatus.test.js (renamed from ui-react/src/components/loop_viewer/status/LoopStatus.test.js)0
-rw-r--r--runtime/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap (renamed from ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap)2
-rw-r--r--runtime/ui-react/src/components/loop_viewer/svg/SvgGenerator.js (renamed from ui-react/src/components/loop_viewer/svg/SvgGenerator.js)24
-rw-r--r--runtime/ui-react/src/components/menu/MenuBar.js (renamed from ui-react/src/components/menu/MenuBar.js)0
-rw-r--r--runtime/ui-react/src/components/menu/MenuBar.test.js (renamed from ui-react/src/components/menu/MenuBar.test.js)0
-rw-r--r--runtime/ui-react/src/components/menu/__snapshots__/MenuBar.test.js.snap (renamed from ui-react/src/components/menu/__snapshots__/MenuBar.test.js.snap)0
-rw-r--r--runtime/ui-react/src/index.js (renamed from ui-react/src/index.js)0
-rw-r--r--runtime/ui-react/src/logo.png (renamed from ui-react/src/logo.png)bin21360 -> 21360 bytes
-rw-r--r--runtime/ui-react/src/setupTests.js (renamed from ui-react/src/setupTests.js)4
-rw-r--r--runtime/ui-react/src/theme/globalStyle.js (renamed from ui-react/src/theme/globalStyle.js)0
-rw-r--r--runtime/ui-react/src/utils/CsvToJson.js (renamed from ui-react/src/utils/CsvToJson.js)0
-rw-r--r--runtime/ui-react/src/utils/CsvToJson.test.js (renamed from ui-react/src/utils/CsvToJson.test.js)0
-rw-r--r--runtime/ui-react/src/utils/OnapConstants.js (renamed from ui-react/src/utils/OnapConstants.js)0
-rw-r--r--runtime/ui-react/src/utils/OnapUtils.js (renamed from ui-react/src/utils/OnapUtils.js)0
-rw-r--r--src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java134
-rw-r--r--src/main/java/org/onap/policy/clamp/clds/tosca/ToscaYamlToJsonConvertor.java781
-rw-r--r--src/main/java/org/onap/policy/clamp/clds/util/CryptoUtils.java168
-rw-r--r--src/main/resources/boot-message.txt21
-rw-r--r--src/main/resources/clds/key.properties1
-rw-r--r--src/test/java/org/onap/policy/clamp/clds/tosca/ToscaYamlToJsonConvertorTestItCase.java201
-rw-r--r--src/test/java/org/onap/policy/clamp/clds/util/CryptoUtilsTest.java99
-rw-r--r--src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java141
-rw-r--r--src/test/resources/clds/sdc-controllers-config.json27
-rw-r--r--src/test/resources/tosca/policy-yaml-to-json-with-constraints.json63
-rw-r--r--src/test/resources/tosca/policy-yaml-to-json-with-datatypes.json108
-rw-r--r--src/test/resources/tosca/policy-yaml-to-json.json192
-rw-r--r--src/test/resources/tosca/tosca-with-constraints.yaml54
-rw-r--r--src/test/resources/tosca/tosca-with-datatypes.yaml63
-rw-r--r--src/test/resources/tosca/tosca_metadata_clamp_possible_values.yaml184
-rw-r--r--src/test/resources/tosca/tosca_metadata_clamp_possible_values_json_schema.json249
-rw-r--r--ui-react/src/components/dialogs/Policy/ViewAllPolicies.js422
-rw-r--r--version.properties6
495 files changed, 20066 insertions, 13619 deletions
diff --git a/.gitreview b/.gitreview
index de1803c3d..89b8405b5 100644
--- a/.gitreview
+++ b/.gitreview
@@ -1,4 +1,5 @@
[gerrit]
host=gerrit.onap.org
port=29418
-project=clamp.git
+project=policy/clamp.git
+defaultbranch=master \ No newline at end of file
diff --git a/README.md b/README.md
index ba194ec33..583f4cc6f 100644
--- a/README.md
+++ b/README.md
@@ -67,7 +67,7 @@ This file is a JSON that must be specified to Spring config, here is an example:
"consumerId": "consumerId1",
"environmentName": "AUTO",
"sdcAddress": "localhost:8443",
- "password": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981",
+ "password": "QpF2TcrdRSFADqDxH1HwDYdYUIbMxOj-TrGd6Vqvwzd",
"pollingInterval":30,
"pollingTimeout":30,
"activateServerTLSAuth":"false",
@@ -81,7 +81,7 @@ This file is a JSON that must be specified to Spring config, here is an example:
"consumerId": "consumerId1",
"environmentName": "AUTO",
"sdcAddress": "localhost:8443",
- "password": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981",
+ "password": "QpF2TcrdRSFADqDxH1HwDYdYUIbMxOj-TrGd6Vqvwzd",
"pollingInterval":30,
"pollingTimeout":30,
"activateServerTLSAuth":"false",
@@ -101,7 +101,7 @@ If the sdcAddress is not specified or not available (connection failure) the mes
A [docker-compose example file](extra/docker/clamp/docker-compose.yml) can be found under the [extra/docker/clamp/ folder](extra/docker/).
-Once the image has been built and is available locally, you can use the `docker-compose up` command to deploy a prepopullated database and a clamp instance available on [https://localhost:3000](https://localhost:3000).
+Once the image has been built and is available locally, you can use the `docker-compose up` command to deploy a pre-populated database, and a clamp instance available on [https://localhost:3000](https://localhost:3000).
### Logs
@@ -146,9 +146,9 @@ resource clds/aaf/org.onap.clamp.p12.
cadi_latitude[0.000]=10.0
cadi_longitude[0.000]=10.0
- Certs should created, you can get them in /var/lib/docker/volumes/clamp_config/_data/local
- If you want to recreate the certs, you have to delete the docker volume (otherwise it will be re used) : docker volume rm clamp_config
+ If you want to recreate the certs, you have to delete the docker volume (otherwise it will be re-used) : docker volume rm clamp_config
- wget https://nexus.onap.org/content/repositories/releases/org/onap/aaf/authz/aaf-cadi-aaf/2.1.13/aaf-cadi-aaf-2.1.13-full.jar
-- to encrypt or decrypt the store passwords: java -jar aaf-cadi-aaf-2.1.13-full.jar cadi digest changeit testos.key
+- to encrypt or decrypt the store passwords: java -jar aaf-cadi-aaf-2.1.13-full.jar cadi <digest|undigest> changeit testos.key
- you can also use the agent.sh script to decrypt the passwords, by running the showpass commands (see wiki below)
- Extract private key from P12: 'openssl pkcs12 -in org.onap.clamp.p12 -nocerts -nodes > clamp.key'
- Extract public certificate from P12: 'openssl pkcs12 -in org.onap.clamp.p12 -clcerts -nokeys > clamp.pem'
diff --git a/common/pom.xml b/common/pom.xml
new file mode 100644
index 000000000..d962fc74a
--- /dev/null
+++ b/common/pom.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.policy.clamp</groupId>
+ <artifactId>policy-clamp</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>policy-clamp-common</artifactId>
+ <name>${project.artifactId}</name>
+ <description>Common utilities and code for the TOSCA Control Loop system</description>
+</project>
diff --git a/docs/_static/favicon.ico b/docs/_static/favicon.ico
index cb712ebd2..cb712ebd2 100755..100644
--- a/docs/_static/favicon.ico
+++ b/docs/_static/favicon.ico
Binary files differ
diff --git a/docs/architecture.rst b/docs/architecture.rst
index 79c8e06f5..b65eb1c1d 100644
--- a/docs/architecture.rst
+++ b/docs/architecture.rst
@@ -1,39 +1,41 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
-.. Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.
+.. Copyright (c) 2017-2021 AT&T Intellectual Property. All rights reserved.
.. _architecture:
-Clamp in ONAP Architecture
---------------------------
+Policy/Clamp in ONAP Architecture
+---------------------------------
-CLAMP is a platform for designing and managing control loops. It is used to visualize
-a control loop, configure it with specific parameters for a particular network
+CLAMP platform has been integrated into the Policy framework project, starting as a POC during
+Honolulu release and as a official feature with Istanbul release. So CLAMP must be seen now
+as a function provided by the Policy Framework project.
+
+CLAMP is a function for designing and managing control loops and a UI to manage Policies.
+ It is used to visualize a control loop, configure it with specific parameters for a particular network
service, then deploying and undeploying it. Once deployed, the user can also
update the loop with new parameters during runtime, as well as suspending and
restarting it.
-It interacts with other systems to deploy and execute the control loop. For
-example, it extracts the control loop blueprint and Policy Model(Model Driven Control Loop)
-from CSAR distributed by SDC/DCAE-DS.
-It requests from DCAE the instantiation of microservices
-to manage the control loop flow. Furthermore, it creates and updates multiple
-policies (for DCAE mS configuration and actual Control Operations) in the Policy Engine
+Starting with Istanbul release, CLAMP GUI can also be used to create/read/update/delete/list policies
+outside of a control loop, and therefore CLAMP is also the front-end for Policies management in ONAP.
+
+CLAMP interacts with other systems to deploy and execute the control loop. For
+example, it extracts the control loop blueprint from CSAR distributed by SDC.
+CLAMP also calls the internal Policy framework API to get the Policy Models(Model Driven Control Loop)
+It requests from DCAE the instantiation of microservices.
+to manage the control loop flow. Furthermore, it creates and updates multiple
+policies (for DCAE mS configuration and actual Control Operations) in the Policy Engine
that define the closed loop flow.
|clamp-flow|
-The ONAP CLAMP platform abstracts the details of these systems under the concept
+The ONAP CLAMP function abstracts the details of these systems under the concept
of a control loop model. The design of a control loop and its management is
represented by a workflow in which all relevant system interactions take
place. This is essential for a self-service model of creating and managing
control loops, where no low-level user interaction with other components is
required.
-CLAMP also allows to visualize control loop metrics through a dashboard, in order
-to help operations understand how and when a control loop is triggered and takes action.
-
-|dashboard-flow|
-
At a higher level, CLAMP is about supporting and managing the broad operational
life cycle of VNFs/VMs and ultimately ONAP components itself. It will offer the
ability to design, test, deploy and update control loop automation - both closed
@@ -43,5 +45,4 @@ operational costs compared to traditional methods.
|closed-loop|
.. |clamp-flow| image:: images/architecture/distdepl.png
-.. |dashboard-flow| image:: images/architecture/monitoring.png
.. |closed-loop| image:: images/architecture/ONAP-closedloop.png
diff --git a/docs/images/architecture/monitoring.png b/docs/images/architecture/monitoring.png
deleted file mode 100644
index 6dbf75e45..000000000
--- a/docs/images/architecture/monitoring.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/clamp-policy_archi.png b/docs/images/clamp-policy_archi.png
new file mode 100644
index 000000000..f384dddcd
--- /dev/null
+++ b/docs/images/clamp-policy_archi.png
Binary files differ
diff --git a/docs/images/user-guide/blueprint_node_type.png b/docs/images/user-guide/blueprint_node_type.png
index 1e5ef6a4a..1e5ef6a4a 100755..100644
--- a/docs/images/user-guide/blueprint_node_type.png
+++ b/docs/images/user-guide/blueprint_node_type.png
Binary files differ
diff --git a/docs/images/user-guide/clamp-cds-operation.png b/docs/images/user-guide/clamp-cds-operation.png
index edc4c63aa..edc4c63aa 100755..100644
--- a/docs/images/user-guide/clamp-cds-operation.png
+++ b/docs/images/user-guide/clamp-cds-operation.png
Binary files differ
diff --git a/docs/images/user-guide/config-policy-tca.png b/docs/images/user-guide/config-policy-tca.png
index ce5f79bc8..ce5f79bc8 100755..100644
--- a/docs/images/user-guide/config-policy-tca.png
+++ b/docs/images/user-guide/config-policy-tca.png
Binary files differ
diff --git a/docs/images/user-guide/deploy-params.png b/docs/images/user-guide/deploy-params.png
index 9d003258f..9d003258f 100755..100644
--- a/docs/images/user-guide/deploy-params.png
+++ b/docs/images/user-guide/deploy-params.png
Binary files differ
diff --git a/docs/images/user-guide/op-policy-box-policy.png b/docs/images/user-guide/op-policy-box-policy.png
index 89c6265ba..89c6265ba 100755..100644
--- a/docs/images/user-guide/op-policy-box-policy.png
+++ b/docs/images/user-guide/op-policy-box-policy.png
Binary files differ
diff --git a/docs/images/user-guide/open-menu-prop.png b/docs/images/user-guide/open-menu-prop.png
index 046e2a3d3..046e2a3d3 100755..100644
--- a/docs/images/user-guide/open-menu-prop.png
+++ b/docs/images/user-guide/open-menu-prop.png
Binary files differ
diff --git a/docs/images/user-guide/policy-submitted.png b/docs/images/user-guide/policy-submitted.png
index 04a9df358..04a9df358 100755..100644
--- a/docs/images/user-guide/policy-submitted.png
+++ b/docs/images/user-guide/policy-submitted.png
Binary files differ
diff --git a/docs/index.rst b/docs/index.rst
index c8aafc23c..4fd4def67 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,10 +1,10 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
-.. Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved.
+.. Copyright (c) 2017-2021 AT&T Intellectual Property. All rights reserved.
.. _master_index:
-CLAMP - Control Loop Automation Management Platform
-===================================================
+Policy/CLAMP - Control Loop Automation Management Platform
+==========================================================
.. High level architecture, design, and packaging information for release planning and delivery.
.. include:: architecture.rst
@@ -12,7 +12,7 @@ CLAMP - Control Loop Automation Management Platform
Offered APIs
------------
-The list of APIs that CLAMP has offered could be find in the following table:
+The list of APIs that Policy/CLAMP has offered could be find in the following table:
.. |pdf-icon| image:: images/pdf.png
:width: 40px
@@ -33,54 +33,21 @@ The list of APIs that CLAMP has offered could be find in the following table:
Consumed APIs
-------------
-CLAMP uses the API's exposed by the following ONAP components:
+Policy/CLAMP uses the API's exposed by the following ONAP components:
- SDC : REST based interface exposed by the SDC, Distribution of service to DCAE
- DCAE: REST based interface exposed by DCAE, Common Controller Framework, DCAE microservices onboarded (TCA, Stringmatch, Holmes (optional))
-- Policy: REST based interface, Policy engine target both XACML and Drools PDP, Policy Engine trigger operations to App-C/VF-C/SDN-C
+- Policy Core: REST based interface, Policy Core engine target both XACML and Drools PDP, Policy Engine trigger operations to App-C/VF-C/SDN-C
- CDS: REST based interface, to retrieve list of operations/actions with their corresponding payload at runtime for Operational Policies where the field 'actor' is 'CDS'.
Delivery
--------
-CLAMP component is composed of a UI layer and a backend layer and packaged into a single container (single jar).
-CLAMP also requires a database instance with 1 DB, it uses MariaDB.
-CLAMP also uses an ELK stack (Elastic Search, Logstash and Kibana) for the Dashboard.
-
-.. blockdiag::
-
-
- blockdiag layers {
- orientation = portrait
- CLAMP_UI -> CLAMP_BACKEND;
- CLAMP_BACKEND -> CLDSDB;
- CLAMP_KIBANA -> CLAMP_ELASTICSEARCH;
- CLAMP_LOGSTASH -> CLAMP_ELASTICSEARCH;
- group l1 {
- color = blue;
- label = "CLAMP container";
- CLAMP_UI; CLAMP_BACKEND;
- }
- group l3 {
- color = orange;
- label = "MariaDB container";
- CLDSDB;
- }
- group l4 {
- color = green;
- label = "E_Search container";
- CLAMP_ELASTICSEARCH;
- }
- group l5 {
- color = green;
- label = "Kibana container";
- CLAMP_KIBANA;
- }
- group l6 {
- color = green;
- label = "LogStash container";
- CLAMP_LOGSTASH;
- }
- }
+Policy/CLAMP component is composed of a UI layer and a backend layer, each layer having its own container.
+Policy/CLAMP also requires a database instance with 1 DB, it uses MariaDB, which is the same DB as for the core Policy.
+
+.. |clamp-policy-archi| image:: images/clamp-policy_archi.png
+
+|clamp-policy-archi|
Logging & Diagnostic Information
--------------------------------
@@ -103,7 +70,7 @@ Configuration
.. What are parameters and values?
-Currently, the CLAMP docker image can be deployed with small configuration needs. Though, you might need to make small adjustments to the configuration. As CLAMP is spring based, you can use the SPRING_APPLICATION_JSON environment variable to update its parameters.
+Currently, the CLAMP docker images can be deployed with small configuration needs. Though, you might need to make small adjustments to the configuration. As CLAMP is spring based, you can use the SPRING_APPLICATION_JSON environment variable to update its parameters.
.. TODO detail config parameters and the usage
@@ -116,14 +83,14 @@ There are one datasource for Clamp. By default, it will try to connect to the lo
"spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clampdb.{{ include "common.namespace" . }}:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3",
"clamp.config.files.sdcController": "file:/opt/clamp/sdc-controllers-config.json",
"clamp.config.dcae.inventory.url": "https://inventory.{{ include "common.namespace" . }}:8080",
- "clamp.config.dcae.dispatcher.url": "https4://deployment-handler.{{ include "common.namespace" . }}:8443",
- "clamp.config.dcae.deployment.url": "https4://deployment-handler.{{ include "common.namespace" . }}:8443",
+ "clamp.config.dcae.dispatcher.url": "https://deployment-handler.{{ include "common.namespace" . }}:8443",
+ "clamp.config.dcae.deployment.url": "https://deployment-handler.{{ include "common.namespace" . }}:8443",
"clamp.config.dcae.deployment.userName": "none",
"clamp.config.dcae.deployment.password": "none",
- "clamp.config.policy.api.url": "https4://policy-api.{{ include "common.namespace" . }}:6969",
+ "clamp.config.policy.api.url": "https://policy-api.{{ include "common.namespace" . }}:6969",
"clamp.config.policy.api.userName": "healthcheck",
"clamp.config.policy.api.password": "zb!XztG34",
- "clamp.config.policy.pap.url": "https4://policy-pap.{{ include "common.namespace" . }}:6969",
+ "clamp.config.policy.pap.url": "https://policy-pap.{{ include "common.namespace" . }}:6969",
"clamp.config.policy.pap.userName": "healthcheck",
"clamp.config.policy.pap.password": "zb!XztG34",
"clamp.config.cadi.aafLocateUrl": "https://aaf-locate.{{ include "common.namespace" . }}:8095",
@@ -178,8 +145,8 @@ If the sdcAddress is not specified or not available (connection failure) the mes
Administration
--------------
-A user can access CLAMP UI at the following URL : https://localhost:3000.
-(in this URL 'localhost' must be replaced by the actual host where CLAMP has been installed if it is not your current localhost)
+A user can access Policy/CLAMP UI at the following URL : https://localhost:3000.
+(in this URL 'localhost' must be replaced by the actual host where Policy/CLAMP has been installed if it is not your current localhost)
For OOM, the URL is https://<host-ip>:30258
.. code-block:: html
@@ -192,19 +159,13 @@ For OOM, the URL is https://<host-ip>:30258
ca path: src/main/resources/clds/aaf/org.onap.clamp.p12, password "China in the Spring"
Or get it from this page : https://wiki.onap.org/display/DW/Control+Loop+Flows+and+Models+for+Casablanca
-A user can access the Control-Loop DashBoard (ELK stack based) at the following URL : https://localhost:5601 .
-(in this URL 'localhost' must be replaced by the actual host where CLAMP has been installed if it is not your current localhost)
-For OOM, the URL is https://<host-ip>:30290. Since El Alto release, User access is protected using the Search Guard plugin, community Edition!,
-for Kibana and ElasticSearch. The initial users and credentials provided by the Search Guard plugins are used by default.
-(take a look at the files in the ElasticSearch docker image located in the folder: /usr/share/elasticsearch/config/sg/,
-especially the file "sg_internal_users.yml").
-
Human Interfaces
----------------
.. Basic info on the interface type, ports/protocols provided over, etc.
-User Interface (CLAMP Designer) - serve to configure control loop
-CLAMP UI is used to configure the Control Loop designed and distributed by SDC. From that UI it's possible to distribute the configuration policies and control the life-cycle of the DCAE Micro Services.
+User Interface - serve to configure control loop
+Policy/CLAMP UI is used to configure the Control Loop designed and distributed by SDC. From that UI it's possible to distribute the configuration policies and control the life-cycle of the DCAE Micro Services.
+Policy/CLAMP UI is also used to manage Policies outside of a Control Loop.
The following actions are done using the UI:
diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json
index a884cfc49..75c629562 100644
--- a/docs/swagger/swagger.json
+++ b/docs/swagger/swagger.json
@@ -1,16 +1,16 @@
{
"swagger" : "2.0",
"info" : {
- "version" : "6.0.0-SNAPSHOT",
+ "version" : "6.1.2-SNAPSHOT",
"title" : "Clamp Rest API"
},
- "host" : "localhost:39481",
+ "host" : "localhost:37747",
"basePath" : "/restservices/clds/",
"schemes" : [ "http" ],
"paths" : {
"/v2/clampInformation" : {
"get" : {
- "operationId" : "route106",
+ "operationId" : "verb188",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -20,13 +20,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route106"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route193"
}
},
"/v2/dictionary" : {
"get" : {
- "operationId" : "route91",
+ "operationId" : "verb173",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -36,11 +36,11 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route91"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route178"
},
"put" : {
- "operationId" : "route94",
+ "operationId" : "verb176",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -59,13 +59,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route94"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route181"
}
},
"/v2/dictionary/{dictionaryName}" : {
"get" : {
- "operationId" : "route93",
+ "operationId" : "verb175",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "dictionaryName",
@@ -81,13 +81,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route93"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route180"
}
},
"/v2/dictionary/{name}" : {
"put" : {
- "operationId" : "route95",
+ "operationId" : "verb177",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -111,11 +111,11 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route95"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route182"
},
"delete" : {
- "operationId" : "route96",
+ "operationId" : "verb178",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "name",
@@ -126,13 +126,13 @@
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route96"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route183"
}
},
"/v2/dictionary/{name}/elements/{shortName}" : {
"delete" : {
- "operationId" : "route97",
+ "operationId" : "verb179",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "name",
@@ -148,13 +148,13 @@
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route97"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route184"
}
},
"/v2/dictionary/secondary/names" : {
"get" : {
- "operationId" : "route92",
+ "operationId" : "verb174",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -167,13 +167,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route92"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route179"
}
},
"/v2/loop/{loopName}" : {
"get" : {
- "operationId" : "route75",
+ "operationId" : "verb154",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -189,13 +189,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route75"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route159"
}
},
"/v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}" : {
"put" : {
- "operationId" : "route88",
+ "operationId" : "verb167",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -221,17 +221,22 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route88"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route172"
}
},
"/v2/loop/create/{loopName}?templateName={templateName}" : {
"post" : {
- "operationId" : "route90",
+ "operationId" : "verb169",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
- "name" : "loopName}?templateName={templateName",
+ "name" : "loopName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "templateName",
"in" : "path",
"required" : true,
"type" : "string"
@@ -244,13 +249,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route90"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route174"
}
},
"/v2/loop/delete/{loopName}" : {
"put" : {
- "operationId" : "route86",
+ "operationId" : "verb165",
"parameters" : [ {
"name" : "loopName",
"in" : "path",
@@ -260,13 +265,13 @@
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route86"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route170"
}
},
"/v2/loop/deploy/{loopName}" : {
"put" : {
- "operationId" : "route79",
+ "operationId" : "verb158",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -282,13 +287,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route79"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route163"
}
},
"/v2/loop/getAllNames" : {
"get" : {
- "operationId" : "route74",
+ "operationId" : "verb153",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -301,13 +306,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route74"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route158"
}
},
"/v2/loop/getstatus/{loopName}" : {
"get" : {
- "operationId" : "route87",
+ "operationId" : "verb166",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -323,13 +328,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route87"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route171"
}
},
"/v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}" : {
"put" : {
- "operationId" : "route80",
+ "operationId" : "verb159",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -350,13 +355,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route80"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route164"
}
},
"/v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}" : {
"put" : {
- "operationId" : "route81",
+ "operationId" : "verb160",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -377,13 +382,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route81"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route165"
}
},
"/v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}" : {
"put" : {
- "operationId" : "route89",
+ "operationId" : "verb168",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -414,13 +419,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route89"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route173"
}
},
"/v2/loop/restart/{loopName}" : {
"put" : {
- "operationId" : "route84",
+ "operationId" : "verb163",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -436,13 +441,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route84"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route168"
}
},
"/v2/loop/stop/{loopName}" : {
"put" : {
- "operationId" : "route83",
+ "operationId" : "verb162",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -458,13 +463,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route83"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route167"
}
},
"/v2/loop/submit/{loopName}" : {
"put" : {
- "operationId" : "route85",
+ "operationId" : "verb164",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -480,13 +485,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route85"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route169"
}
},
"/v2/loop/undeploy/{loopName}" : {
"put" : {
- "operationId" : "route82",
+ "operationId" : "verb161",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -502,13 +507,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route82"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route166"
}
},
"/v2/loop/updateGlobalProperties/{loopName}" : {
"post" : {
- "operationId" : "route76",
+ "operationId" : "verb155",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -532,13 +537,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route76"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route160"
}
},
"/v2/loop/updateMicroservicePolicy/{loopName}" : {
"post" : {
- "operationId" : "route78",
+ "operationId" : "verb157",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -562,13 +567,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route78"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route162"
}
},
"/v2/loop/updateOperationalPolicies/{loopName}" : {
"post" : {
- "operationId" : "route77",
+ "operationId" : "verb156",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -592,53 +597,72 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route77"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route161"
}
},
- "/v2/policyToscaModels" : {
+ "/v2/policies" : {
"get" : {
- "operationId" : "route98",
+ "operationId" : "verb183",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "Output type",
"schema" : {
- "$ref" : "#/definitions/PolicyModel"
+ "$ref" : "#/definitions/JsonObject"
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route98"
- },
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route188"
+ }
+ },
+ "/v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}" : {
"post" : {
- "operationId" : "route101",
- "consumes" : [ "plain/text" ],
+ "operationId" : "verb184",
+ "consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
+ "name" : "policyModelType",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyModelVersion",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyVersion",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
"in" : "body",
"name" : "body",
"required" : true,
"schema" : {
- "type" : "string"
+ "$ref" : "#/definitions/JsonElement"
}
} ],
"responses" : {
"200" : {
"description" : "Output type",
"schema" : {
- "$ref" : "#/definitions/PolicyModel"
+ "$ref" : "#/definitions/JsonObject"
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route101"
- }
- },
- "/v2/policyToscaModels/{policyModelType}/{policyModelVersion}" : {
- "get" : {
- "operationId" : "route99",
- "produces" : [ "application/json" ],
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route189"
+ },
+ "delete" : {
+ "operationId" : "verb185",
"parameters" : [ {
"name" : "policyModelType",
"in" : "path",
@@ -649,8 +673,67 @@
"in" : "path",
"required" : true,
"type" : "string"
+ }, {
+ "name" : "policyName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "policyVersion",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
} ],
"responses" : {
+ "200" : { }
+ },
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route190"
+ }
+ },
+ "/v2/policies/pdpDeployment" : {
+ "put" : {
+ "operationId" : "verb186",
+ "consumes" : [ "application/json" ],
+ "parameters" : [ {
+ "in" : "body",
+ "name" : "body",
+ "required" : true,
+ "schema" : {
+ "$ref" : "#/definitions/JsonElement"
+ }
+ } ],
+ "responses" : {
+ "200" : { }
+ },
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route191"
+ }
+ },
+ "/v2/policies/policytype" : {
+ "post" : {
+ "operationId" : "verb187",
+ "consumes" : [ "plain/text" ],
+ "parameters" : [ {
+ "in" : "body",
+ "name" : "body",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : { }
+ },
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route192"
+ }
+ },
+ "/v2/policyToscaModels" : {
+ "get" : {
+ "operationId" : "verb180",
+ "produces" : [ "application/json" ],
+ "responses" : {
"200" : {
"description" : "Output type",
"schema" : {
@@ -658,12 +741,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route99"
- },
- "put" : {
- "operationId" : "route102",
- "consumes" : [ "plain/text" ],
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route185"
+ }
+ },
+ "/v2/policyToscaModels/{policyModelType}/{policyModelVersion}" : {
+ "get" : {
+ "operationId" : "verb181",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "policyModelType",
@@ -675,29 +759,22 @@
"in" : "path",
"required" : true,
"type" : "string"
- }, {
- "in" : "body",
- "name" : "body",
- "required" : true,
- "schema" : {
- "type" : "string"
- }
} ],
"responses" : {
"200" : {
"description" : "Output type",
"schema" : {
- "$ref" : "#/definitions/PolicyModel"
+ "$ref" : "#/definitions/JsonObject"
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route102"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route186"
}
},
"/v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}" : {
"get" : {
- "operationId" : "route100",
+ "operationId" : "verb182",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "policyModelType",
@@ -718,13 +795,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route100"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route187"
}
},
"/v2/templates" : {
"get" : {
- "operationId" : "route103",
+ "operationId" : "verb170",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -734,13 +811,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route103"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route175"
}
},
"/v2/templates/{templateName}" : {
"get" : {
- "operationId" : "route104",
+ "operationId" : "verb171",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "templateName",
@@ -756,13 +833,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route104"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route176"
}
},
"/v2/templates/names" : {
"get" : {
- "operationId" : "route105",
+ "operationId" : "verb172",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -775,13 +852,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route105"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route177"
}
},
"/v1/healthcheck" : {
"get" : {
- "operationId" : "route107",
+ "operationId" : "verb189",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -791,19 +868,19 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route107"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route194"
}
},
"/v1/user/getUser" : {
"get" : {
- "operationId" : "route108",
+ "operationId" : "verb190",
"produces" : [ "text/plain" ],
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route108"
+ "x-camelContextId" : "camel-5",
+ "x-routeId" : "route195"
}
}
},
@@ -988,31 +1065,34 @@
"asBoolean" : {
"type" : "boolean"
},
- "asDouble" : {
- "type" : "number",
- "format" : "double"
- },
- "asLong" : {
- "type" : "integer",
- "format" : "int64"
- },
"boolean" : {
"type" : "boolean"
},
"number" : {
"type" : "boolean"
},
- "asInt" : {
- "type" : "integer",
- "format" : "int32"
+ "asNumber" : {
+ "$ref" : "#/definitions/Number"
},
"asString" : {
"type" : "string"
},
+ "asDouble" : {
+ "type" : "number",
+ "format" : "double"
+ },
"asFloat" : {
"type" : "number",
"format" : "float"
},
+ "asLong" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "asInt" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
"asByte" : {
"type" : "string",
"format" : "byte"
@@ -1030,33 +1110,30 @@
"type" : "integer",
"format" : "int32"
},
- "asNumber" : {
- "$ref" : "#/definitions/Number"
- },
"string" : {
"type" : "boolean"
},
"asJsonObject" : {
"$ref" : "#/definitions/JsonObject"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "jsonArray" : {
+ "type" : "boolean"
},
"jsonObject" : {
"type" : "boolean"
},
- "jsonNull" : {
+ "jsonPrimitive" : {
"type" : "boolean"
},
- "jsonPrimitive" : {
+ "jsonNull" : {
"type" : "boolean"
},
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
+ },
"asJsonPrimitive" : {
"$ref" : "#/definitions/JsonPrimitive"
},
- "jsonArray" : {
- "type" : "boolean"
- },
"asJsonNull" : {
"$ref" : "#/definitions/JsonNull"
}
@@ -1137,53 +1214,56 @@
"asBoolean" : {
"type" : "boolean"
},
- "asDouble" : {
- "type" : "number",
- "format" : "double"
- },
- "asLong" : {
- "type" : "integer",
- "format" : "int64"
- },
- "asInt" : {
- "type" : "integer",
- "format" : "int32"
- },
"asJsonObject" : {
"$ref" : "#/definitions/JsonObject"
},
- "asString" : {
- "type" : "string"
- },
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "jsonArray" : {
+ "type" : "boolean"
},
"jsonObject" : {
"type" : "boolean"
},
- "jsonNull" : {
+ "jsonPrimitive" : {
"type" : "boolean"
},
- "jsonPrimitive" : {
+ "jsonNull" : {
"type" : "boolean"
},
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
+ },
"asJsonPrimitive" : {
"$ref" : "#/definitions/JsonPrimitive"
},
- "jsonArray" : {
- "type" : "boolean"
+ "asJsonNull" : {
+ "$ref" : "#/definitions/JsonNull"
+ },
+ "asNumber" : {
+ "$ref" : "#/definitions/Number"
+ },
+ "asString" : {
+ "type" : "string"
+ },
+ "asDouble" : {
+ "type" : "number",
+ "format" : "double"
},
"asFloat" : {
"type" : "number",
"format" : "float"
},
+ "asLong" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "asInt" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
"asByte" : {
"type" : "string",
"format" : "byte"
},
- "asJsonNull" : {
- "$ref" : "#/definitions/JsonNull"
- },
"asCharacter" : {
"type" : "string"
},
@@ -1196,9 +1276,6 @@
"asShort" : {
"type" : "integer",
"format" : "int32"
- },
- "asNumber" : {
- "$ref" : "#/definitions/Number"
}
},
"x-className" : {
@@ -1335,53 +1412,56 @@
"asBoolean" : {
"type" : "boolean"
},
- "asDouble" : {
- "type" : "number",
- "format" : "double"
- },
- "asLong" : {
- "type" : "integer",
- "format" : "int64"
- },
- "asInt" : {
- "type" : "integer",
- "format" : "int32"
- },
"asJsonObject" : {
"$ref" : "#/definitions/JsonObject"
},
- "asString" : {
- "type" : "string"
- },
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "jsonArray" : {
+ "type" : "boolean"
},
"jsonObject" : {
"type" : "boolean"
},
- "jsonNull" : {
+ "jsonPrimitive" : {
"type" : "boolean"
},
- "jsonPrimitive" : {
+ "jsonNull" : {
"type" : "boolean"
},
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
+ },
"asJsonPrimitive" : {
"$ref" : "#/definitions/JsonPrimitive"
},
- "jsonArray" : {
- "type" : "boolean"
+ "asJsonNull" : {
+ "$ref" : "#/definitions/JsonNull"
+ },
+ "asNumber" : {
+ "$ref" : "#/definitions/Number"
+ },
+ "asString" : {
+ "type" : "string"
+ },
+ "asDouble" : {
+ "type" : "number",
+ "format" : "double"
},
"asFloat" : {
"type" : "number",
"format" : "float"
},
+ "asLong" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "asInt" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
"asByte" : {
"type" : "string",
"format" : "byte"
},
- "asJsonNull" : {
- "$ref" : "#/definitions/JsonNull"
- },
"asCharacter" : {
"type" : "string"
},
@@ -1394,9 +1474,6 @@
"asShort" : {
"type" : "integer",
"format" : "int32"
- },
- "asNumber" : {
- "$ref" : "#/definitions/Number"
}
}
},
@@ -1406,10 +1483,20 @@
"asBoolean" : {
"type" : "boolean"
},
+ "asNumber" : {
+ "$ref" : "#/definitions/Number"
+ },
+ "asString" : {
+ "type" : "string"
+ },
"asDouble" : {
"type" : "number",
"format" : "double"
},
+ "asFloat" : {
+ "type" : "number",
+ "format" : "float"
+ },
"asLong" : {
"type" : "integer",
"format" : "int64"
@@ -1418,13 +1505,6 @@
"type" : "integer",
"format" : "int32"
},
- "asString" : {
- "type" : "string"
- },
- "asFloat" : {
- "type" : "number",
- "format" : "float"
- },
"asByte" : {
"type" : "string",
"format" : "byte"
@@ -1442,30 +1522,27 @@
"type" : "integer",
"format" : "int32"
},
- "asNumber" : {
- "$ref" : "#/definitions/Number"
- },
"asJsonObject" : {
"$ref" : "#/definitions/JsonObject"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "jsonArray" : {
+ "type" : "boolean"
},
"jsonObject" : {
"type" : "boolean"
},
- "jsonNull" : {
+ "jsonPrimitive" : {
"type" : "boolean"
},
- "jsonPrimitive" : {
+ "jsonNull" : {
"type" : "boolean"
},
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
+ },
"asJsonPrimitive" : {
"$ref" : "#/definitions/JsonPrimitive"
},
- "jsonArray" : {
- "type" : "boolean"
- },
"asJsonNull" : {
"$ref" : "#/definitions/JsonNull"
}
@@ -1631,6 +1708,81 @@
}
}
},
+ "JsonElement" : {
+ "type" : "object",
+ "properties" : {
+ "asBoolean" : {
+ "type" : "boolean"
+ },
+ "asJsonObject" : {
+ "$ref" : "#/definitions/JsonObject"
+ },
+ "jsonArray" : {
+ "type" : "boolean"
+ },
+ "jsonObject" : {
+ "type" : "boolean"
+ },
+ "jsonPrimitive" : {
+ "type" : "boolean"
+ },
+ "jsonNull" : {
+ "type" : "boolean"
+ },
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
+ },
+ "asJsonPrimitive" : {
+ "$ref" : "#/definitions/JsonPrimitive"
+ },
+ "asJsonNull" : {
+ "$ref" : "#/definitions/JsonNull"
+ },
+ "asNumber" : {
+ "$ref" : "#/definitions/Number"
+ },
+ "asString" : {
+ "type" : "string"
+ },
+ "asDouble" : {
+ "type" : "number",
+ "format" : "double"
+ },
+ "asFloat" : {
+ "type" : "number",
+ "format" : "float"
+ },
+ "asLong" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "asInt" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "asByte" : {
+ "type" : "string",
+ "format" : "byte"
+ },
+ "asCharacter" : {
+ "type" : "string"
+ },
+ "asBigDecimal" : {
+ "type" : "number"
+ },
+ "asBigInteger" : {
+ "type" : "integer"
+ },
+ "asShort" : {
+ "type" : "integer",
+ "format" : "int32"
+ }
+ },
+ "x-className" : {
+ "type" : "string",
+ "format" : "com.google.gson.JsonElement"
+ }
+ },
"CldsHealthCheck" : {
"type" : "object",
"properties" : {
@@ -1650,4 +1802,4 @@
}
}
}
-} \ No newline at end of file
+}
diff --git a/docs/swagger/swagger.pdf b/docs/swagger/swagger.pdf
index c3de4c5fe..9d51932ef 100644
--- a/docs/swagger/swagger.pdf
+++ b/docs/swagger/swagger.pdf
@@ -4,16 +4,16 @@
<< /Title (Clamp Rest API)
/Creator (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0)
/Producer (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0)
-/CreationDate (D:20210106171942+01'00')
-/ModDate (D:20210106171942+01'00')
+/CreationDate (D:20210510121240+01'00')
+/ModDate (D:20210510121240+01'00')
>>
endobj
2 0 obj
<< /Type /Catalog
/Pages 3 0 R
/Names 22 0 R
-/Outlines 677 0 R
-/PageLabels 843 0 R
+/Outlines 718 0 R
+/PageLabels 894 0 R
/PageMode /UseOutlines
/OpenAction [7 0 R /FitH 793.0]
/ViewerPreferences << /DisplayDocTitle true
@@ -22,8 +22,8 @@ endobj
endobj
3 0 obj
<< /Type /Pages
-/Count 38
-/Kids [7 0 R 10 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 29 0 R 45 0 R 61 0 R 75 0 R 87 0 R 98 0 R 110 0 R 123 0 R 133 0 R 144 0 R 160 0 R 174 0 R 187 0 R 200 0 R 214 0 R 225 0 R 237 0 R 247 0 R 254 0 R 260 0 R 267 0 R 273 0 R 281 0 R 288 0 R 296 0 R 304 0 R 311 0 R 318 0 R 326 0 R 336 0 R 343 0 R]
+/Count 40
+/Kids [7 0 R 10 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 29 0 R 45 0 R 61 0 R 75 0 R 87 0 R 97 0 R 110 0 R 123 0 R 133 0 R 144 0 R 160 0 R 174 0 R 187 0 R 201 0 R 213 0 R 224 0 R 235 0 R 246 0 R 260 0 R 267 0 R 273 0 R 280 0 R 286 0 R 294 0 R 301 0 R 309 0 R 316 0 R 322 0 R 331 0 R 338 0 R 347 0 R 354 0 R 363 0 R]
>>
endobj
4 0 obj
@@ -80,11 +80,11 @@ endobj
<< /Type /Font
/BaseFont /AAAAAA+NotoSerif
/Subtype /TrueType
-/FontDescriptor 845 0 R
+/FontDescriptor 896 0 R
/FirstChar 32
/LastChar 255
-/Widths 847 0 R
-/ToUnicode 846 0 R
+/Widths 898 0 R
+/ToUnicode 897 0 R
>>
endobj
9 0 obj
@@ -1559,7 +1559,7 @@ endobj
/F1.0 8 0 R
>>
>>
-/Annots [348 0 R 349 0 R 350 0 R 351 0 R 352 0 R 353 0 R 354 0 R 355 0 R 356 0 R 357 0 R 358 0 R 359 0 R 360 0 R 361 0 R 362 0 R 363 0 R 364 0 R 365 0 R 366 0 R 367 0 R 368 0 R 369 0 R 370 0 R 371 0 R 372 0 R 373 0 R 374 0 R 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 383 0 R 384 0 R 385 0 R 386 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R]
+/Annots [369 0 R 370 0 R 371 0 R 372 0 R 373 0 R 374 0 R 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 383 0 R 384 0 R 385 0 R 386 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 420 0 R 421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 440 0 R]
>>
endobj
11 0 obj
@@ -2044,7 +2044,7 @@ ET
BT
557.8905 541.5059999999999 Td
/F1.0 10.5 Tf
-<36> Tj
+<37> Tj
ET
0.000 0.000 0.000 SCN
@@ -3062,7 +3062,7 @@ endobj
/Font << /F1.0 8 0 R
>>
>>
-/Annots [420 0 R 421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 495 0 R]
+/Annots [441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 516 0 R]
>>
endobj
13 0 obj
@@ -4576,11 +4576,11 @@ endobj
/Font << /F1.0 8 0 R
>>
>>
-/Annots [494 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R]
+/Annots [515 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R]
>>
endobj
15 0 obj
-<< /Length 32033
+<< /Length 31729
>>
stream
q
@@ -4632,7 +4632,7 @@ ET
BT
60.24000000000001 726.3059999999999 Td
/F1.0 10.5 Tf
-[<322e32382e20504f53> 20.01953125 <54202f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c73>] TJ
+<322e32382e20474554202f76322f706f6c6963696573> Tj
ET
0.000 0.000 0.000 SCN
@@ -4641,9 +4641,9 @@ ET
0.200 0.200 0.200 SCN
BT
-229.99124999999998 726.3059999999999 Td
+165.85724999999996 726.3059999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -4672,7 +4672,7 @@ ET
BT
72.24000000000001 707.8259999999999 Td
/F1.0 10.5 Tf
-[<322e32382e312e20506172> 20.01953125 <616d6574657273>] TJ
+<322e32382e312e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
@@ -4681,9 +4681,9 @@ ET
0.200 0.200 0.200 SCN
BT
-165.85724999999996 707.8259999999999 Td
+160.51274999999998 707.8259999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -4712,7 +4712,7 @@ ET
BT
72.24000000000001 689.3459999999999 Td
/F1.0 10.5 Tf
-<322e32382e322e20526573706f6e736573> Tj
+<322e32382e322e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -4721,9 +4721,9 @@ ET
0.200 0.200 0.200 SCN
BT
-160.51274999999998 689.3459999999999 Td
+155.16824999999994 689.3459999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -4750,9 +4750,9 @@ ET
0.200 0.200 0.200 SCN
BT
-72.24000000000001 670.8659999999999 Td
+60.24000000000001 670.8659999999999 Td
/F1.0 10.5 Tf
-<322e32382e332e20436f6e73756d6573> Tj
+[<322e32392e20505554202f76322f706f6c69636965732f7064704465706c6f> 20.01953125 <796d656e74>] TJ
ET
0.000 0.000 0.000 SCN
@@ -4761,9 +4761,9 @@ ET
0.200 0.200 0.200 SCN
BT
-160.51274999999998 670.8659999999999 Td
+251.36924999999997 670.8659999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -4792,7 +4792,7 @@ ET
BT
72.24000000000001 652.3859999999999 Td
/F1.0 10.5 Tf
-<322e32382e342e2050726f6475636573> Tj
+[<322e32392e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
@@ -4801,9 +4801,9 @@ ET
0.200 0.200 0.200 SCN
BT
-155.16824999999994 652.3859999999999 Td
+165.85724999999996 652.3859999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -4830,9 +4830,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 633.9059999999998 Td
+72.24000000000001 633.9059999999998 Td
/F1.0 10.5 Tf
-[<322e32392e20474554202f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c73>] TJ
+<322e32392e322e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
@@ -4841,9 +4841,9 @@ ET
0.200 0.200 0.200 SCN
BT
-224.64675 633.9059999999998 Td
+160.51274999999998 633.9059999999998 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -4872,7 +4872,7 @@ ET
BT
72.24000000000001 615.4259999999998 Td
/F1.0 10.5 Tf
-<322e32392e312e20526573706f6e736573> Tj
+<322e32392e332e20436f6e73756d6573> Tj
ET
0.000 0.000 0.000 SCN
@@ -4910,9 +4910,9 @@ ET
0.200 0.200 0.200 SCN
BT
-72.24000000000001 596.9459999999998 Td
+60.24000000000001 596.9459999999998 Td
/F1.0 10.5 Tf
-<322e32392e322e2050726f6475636573> Tj
+[<322e33302e20504f53> 20.01953125 <54202f76322f706f6c69636965732f706f6c69637974797065>] TJ
ET
0.000 0.000 0.000 SCN
@@ -4921,9 +4921,9 @@ ET
0.200 0.200 0.200 SCN
BT
-155.16824999999994 596.9459999999998 Td
+229.99124999999998 596.9459999999998 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -4950,9 +4950,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 578.4659999999998 Td
+72.24000000000001 578.4659999999998 Td
/F1.0 10.5 Tf
-[<322e33302e20474554202f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c732f79616d6c2f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c56> 60.05859375 <657273696f6e7d>] TJ
+[<322e33302e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
@@ -4961,9 +4961,9 @@ ET
0.200 0.200 0.200 SCN
BT
-465.14925 578.4659999999998 Td
+165.85724999999996 578.4659999999998 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -4992,7 +4992,7 @@ ET
BT
72.24000000000001 559.9859999999999 Td
/F1.0 10.5 Tf
-[<322e33302e312e20506172> 20.01953125 <616d6574657273>] TJ
+<322e33302e322e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5001,9 +5001,9 @@ ET
0.200 0.200 0.200 SCN
BT
-165.85724999999996 559.9859999999999 Td
+160.51274999999998 559.9859999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5032,7 +5032,7 @@ ET
BT
72.24000000000001 541.5059999999999 Td
/F1.0 10.5 Tf
-<322e33302e322e20526573706f6e736573> Tj
+<322e33302e332e20436f6e73756d6573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5070,9 +5070,9 @@ ET
0.200 0.200 0.200 SCN
BT
-72.24000000000001 523.0259999999998 Td
+60.24000000000001 523.0259999999998 Td
/F1.0 10.5 Tf
-<322e33302e332e2050726f6475636573> Tj
+[<322e33312e20504f53> 20.01953125 <54202f76322f706f6c69636965732f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c56> 60.05859375 <657273696f6e7d2f7b706f6c6963794e616d657d2f7b706f6c69637956> 60.05859375 <657273696f6e7d>] TJ
ET
0.000 0.000 0.000 SCN
@@ -5081,9 +5081,9 @@ ET
0.200 0.200 0.200 SCN
BT
-155.16824999999994 523.0259999999998 Td
+534.62775 523.0259999999998 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5110,9 +5110,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 504.54599999999976 Td
+72.24000000000001 504.54599999999976 Td
/F1.0 10.5 Tf
-[<322e33312e20474554202f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c732f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c56> 60.05859375 <657273696f6e7d>] TJ
+[<322e33312e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
@@ -5121,9 +5121,9 @@ ET
0.200 0.200 0.200 SCN
BT
-433.08225 504.54599999999976 Td
+165.85724999999996 504.54599999999976 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5152,7 +5152,7 @@ ET
BT
72.24000000000001 486.06599999999975 Td
/F1.0 10.5 Tf
-[<322e33312e312e20506172> 20.01953125 <616d6574657273>] TJ
+<322e33312e322e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5161,9 +5161,9 @@ ET
0.200 0.200 0.200 SCN
BT
-165.85724999999996 486.06599999999975 Td
+160.51274999999998 486.06599999999975 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5192,7 +5192,7 @@ ET
BT
72.24000000000001 467.58599999999973 Td
/F1.0 10.5 Tf
-<322e33312e322e20526573706f6e736573> Tj
+<322e33312e332e20436f6e73756d6573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5232,7 +5232,7 @@ ET
BT
72.24000000000001 449.1059999999997 Td
/F1.0 10.5 Tf
-<322e33312e332e2050726f6475636573> Tj
+<322e33312e342e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5272,18 +5272,7 @@ ET
BT
60.24000000000001 430.6259999999997 Td
/F1.0 10.5 Tf
-[<322e33322e20505554202f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c732f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c56> 60.05859375 <657273696f6e7d>] TJ
-ET
-
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-BT
-433.08225 430.6259999999997 Td
-/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+[<322e33322e2044454c455445202f76322f706f6c69636965732f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c56> 60.05859375 <657273696f6e7d2f7b706f6c6963794e616d657d2f7b706f6c69637956> 60.05859375 <657273696f6e7d>] TJ
ET
0.000 0.000 0.000 SCN
@@ -5341,7 +5330,7 @@ ET
BT
552.021 412.1459999999997 Td
/F1.0 10.5 Tf
-<3136> Tj
+<3137> Tj
ET
0.000 0.000 0.000 SCN
@@ -5390,9 +5379,9 @@ ET
0.200 0.200 0.200 SCN
BT
-72.24000000000001 375.18599999999964 Td
+60.24000000000001 375.18599999999964 Td
/F1.0 10.5 Tf
-<322e33322e332e20436f6e73756d6573> Tj
+[<322e33332e20474554202f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c73>] TJ
ET
0.000 0.000 0.000 SCN
@@ -5401,9 +5390,9 @@ ET
0.200 0.200 0.200 SCN
BT
-160.51274999999998 375.18599999999964 Td
+224.64675 375.18599999999964 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5432,7 +5421,7 @@ ET
BT
72.24000000000001 356.7059999999996 Td
/F1.0 10.5 Tf
-<322e33322e342e2050726f6475636573> Tj
+<322e33332e312e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5441,9 +5430,9 @@ ET
0.200 0.200 0.200 SCN
BT
-155.16824999999994 356.7059999999996 Td
+160.51274999999998 356.7059999999996 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5470,9 +5459,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 338.2259999999996 Td
+72.24000000000001 338.2259999999996 Td
/F1.0 10.5 Tf
-<322e33332e20474554202f76322f74656d706c61746573> Tj
+<322e33332e322e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5481,9 +5470,9 @@ ET
0.200 0.200 0.200 SCN
BT
-176.54625 338.2259999999996 Td
+155.16824999999994 338.2259999999996 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5510,9 +5499,9 @@ ET
0.200 0.200 0.200 SCN
BT
-72.24000000000001 319.7459999999996 Td
+60.24000000000001 319.7459999999996 Td
/F1.0 10.5 Tf
-<322e33332e312e20526573706f6e736573> Tj
+[<322e33342e20474554202f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c732f79616d6c2f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c56> 60.05859375 <657273696f6e7d>] TJ
ET
0.000 0.000 0.000 SCN
@@ -5521,9 +5510,9 @@ ET
0.200 0.200 0.200 SCN
BT
-160.51274999999998 319.7459999999996 Td
+465.14925 319.7459999999996 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5552,7 +5541,7 @@ ET
BT
72.24000000000001 301.26599999999956 Td
/F1.0 10.5 Tf
-<322e33332e322e2050726f6475636573> Tj
+[<322e33342e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
@@ -5561,9 +5550,9 @@ ET
0.200 0.200 0.200 SCN
BT
-155.16824999999994 301.26599999999956 Td
+165.85724999999996 301.26599999999956 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5590,9 +5579,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 282.78599999999955 Td
+72.24000000000001 282.78599999999955 Td
/F1.0 10.5 Tf
-<322e33342e20474554202f76322f74656d706c617465732f6e616d6573> Tj
+<322e33342e322e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5601,9 +5590,9 @@ ET
0.200 0.200 0.200 SCN
BT
-213.95774999999998 282.78599999999955 Td
+160.51274999999998 282.78599999999955 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5621,7 +5610,7 @@ ET
BT
552.021 282.78599999999955 Td
/F1.0 10.5 Tf
-<3137> Tj
+<3138> Tj
ET
0.000 0.000 0.000 SCN
@@ -5632,7 +5621,7 @@ ET
BT
72.24000000000001 264.30599999999953 Td
/F1.0 10.5 Tf
-<322e33342e312e20526573706f6e736573> Tj
+<322e33342e332e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5641,9 +5630,9 @@ ET
0.200 0.200 0.200 SCN
BT
-160.51274999999998 264.30599999999953 Td
+155.16824999999994 264.30599999999953 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5661,7 +5650,7 @@ ET
BT
552.021 264.30599999999953 Td
/F1.0 10.5 Tf
-<3137> Tj
+<3138> Tj
ET
0.000 0.000 0.000 SCN
@@ -5670,9 +5659,9 @@ ET
0.200 0.200 0.200 SCN
BT
-72.24000000000001 245.8259999999995 Td
+60.24000000000001 245.8259999999995 Td
/F1.0 10.5 Tf
-<322e33342e322e2050726f6475636573> Tj
+[<322e33352e20474554202f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c732f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c56> 60.05859375 <657273696f6e7d>] TJ
ET
0.000 0.000 0.000 SCN
@@ -5681,9 +5670,9 @@ ET
0.200 0.200 0.200 SCN
BT
-155.16824999999994 245.8259999999995 Td
+433.08225 245.8259999999995 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5710,9 +5699,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 227.34599999999952 Td
+72.24000000000001 227.34599999999952 Td
/F1.0 10.5 Tf
-<322e33352e20474554202f76322f74656d706c617465732f7b74656d706c6174654e616d657d> Tj
+[<322e33352e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
@@ -5721,9 +5710,9 @@ ET
0.200 0.200 0.200 SCN
BT
-267.40274999999997 227.34599999999952 Td
+165.85724999999996 227.34599999999952 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5752,7 +5741,7 @@ ET
BT
72.24000000000001 208.86599999999953 Td
/F1.0 10.5 Tf
-[<322e33352e312e20506172> 20.01953125 <616d6574657273>] TJ
+<322e33352e322e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5761,9 +5750,9 @@ ET
0.200 0.200 0.200 SCN
BT
-165.85724999999996 208.86599999999953 Td
+160.51274999999998 208.86599999999953 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5792,7 +5781,7 @@ ET
BT
72.24000000000001 190.38599999999954 Td
/F1.0 10.5 Tf
-<322e33352e322e20526573706f6e736573> Tj
+<322e33352e332e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5801,9 +5790,9 @@ ET
0.200 0.200 0.200 SCN
BT
-160.51274999999998 190.38599999999954 Td
+155.16824999999994 190.38599999999954 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5830,9 +5819,9 @@ ET
0.200 0.200 0.200 SCN
BT
-72.24000000000001 171.90599999999955 Td
+60.24000000000001 171.90599999999955 Td
/F1.0 10.5 Tf
-<322e33352e332e2050726f6475636573> Tj
+<322e33362e20474554202f76322f74656d706c61746573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5841,9 +5830,9 @@ ET
0.200 0.200 0.200 SCN
BT
-155.16824999999994 171.90599999999955 Td
+176.54625 171.90599999999955 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5870,9 +5859,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 153.42599999999956 Td
+72.24000000000001 153.42599999999956 Td
/F1.0 10.5 Tf
-<332e20446566696e6974696f6e73> Tj
+<322e33362e312e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5881,9 +5870,9 @@ ET
0.200 0.200 0.200 SCN
BT
-117.75674999999995 153.42599999999956 Td
+160.51274999999998 153.42599999999956 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5910,9 +5899,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 134.94599999999957 Td
+72.24000000000001 134.94599999999957 Td
/F1.0 10.5 Tf
-<332e312e20436c616d70496e666f726d6174696f6e> Tj
+<322e33362e322e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5921,9 +5910,9 @@ ET
0.200 0.200 0.200 SCN
BT
-176.54625 134.94599999999957 Td
+155.16824999999994 134.94599999999957 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5952,7 +5941,7 @@ ET
BT
60.24000000000001 116.46599999999958 Td
/F1.0 10.5 Tf
-<332e322e20436c64734865616c7468436865636b> Tj
+<322e33372e20474554202f76322f74656d706c617465732f6e616d6573> Tj
ET
0.000 0.000 0.000 SCN
@@ -5961,9 +5950,9 @@ ET
0.200 0.200 0.200 SCN
BT
-165.85724999999996 116.46599999999958 Td
+213.95774999999998 116.46599999999958 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -5990,9 +5979,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 97.98599999999959 Td
+72.24000000000001 97.98599999999959 Td
/F1.0 10.5 Tf
-<332e332e2044696374696f6e617279> Tj
+<322e33372e312e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
@@ -6001,9 +5990,9 @@ ET
0.200 0.200 0.200 SCN
BT
-133.79024999999996 97.98599999999959 Td
+160.51274999999998 97.98599999999959 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6030,9 +6019,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 79.5059999999996 Td
+72.24000000000001 79.5059999999996 Td
/F1.0 10.5 Tf
-<332e342e2044696374696f6e617279456c656d656e74> Tj
+<322e33372e322e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -6041,9 +6030,9 @@ ET
0.200 0.200 0.200 SCN
BT
-176.54625 79.5059999999996 Td
+155.16824999999994 79.5059999999996 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6061,7 +6050,7 @@ ET
BT
552.021 79.5059999999996 Td
/F1.0 10.5 Tf
-<3230> Tj
+<3139> Tj
ET
0.000 0.000 0.000 SCN
@@ -6072,7 +6061,7 @@ ET
BT
60.24000000000001 61.02599999999961 Td
/F1.0 10.5 Tf
-<332e352e2045787465726e616c436f6d706f6e656e74> Tj
+<322e33382e20474554202f76322f74656d706c617465732f7b74656d706c6174654e616d657d> Tj
ET
0.000 0.000 0.000 SCN
@@ -6081,9 +6070,9 @@ ET
0.200 0.200 0.200 SCN
BT
-181.89074999999997 61.02599999999961 Td
+267.40274999999997 61.02599999999961 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6101,7 +6090,7 @@ ET
BT
552.021 61.02599999999961 Td
/F1.0 10.5 Tf
-<3230> Tj
+<3139> Tj
ET
0.000 0.000 0.000 SCN
@@ -6119,11 +6108,11 @@ endobj
/Font << /F1.0 8 0 R
>>
>>
-/Annots [570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R]
+/Annots [591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R]
>>
endobj
17 0 obj
-<< /Length 12802
+<< /Length 21335
>>
stream
q
@@ -6133,9 +6122,9 @@ q
0.200 0.200 0.200 SCN
BT
-60.24 744.786 Td
+72.24000000000001 744.786 Td
/F1.0 10.5 Tf
-<332e362e2045787465726e616c436f6d706f6e656e745374617465> Tj
+[<322e33382e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
@@ -6144,9 +6133,9 @@ ET
0.200 0.200 0.200 SCN
BT
-208.61325 744.786 Td
+165.85724999999996 744.786 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6164,7 +6153,7 @@ ET
BT
552.021 744.786 Td
/F1.0 10.5 Tf
-<3231> Tj
+<3139> Tj
ET
0.000 0.000 0.000 SCN
@@ -6173,9 +6162,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 726.3059999999999 Td
+72.24000000000001 726.3059999999999 Td
/F1.0 10.5 Tf
-[<332e372e204a736f6e417272> 20.01953125 <61> 20.01953125 <79>] TJ
+<322e33382e322e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
@@ -6184,9 +6173,9 @@ ET
0.200 0.200 0.200 SCN
BT
-133.79024999999996 726.3059999999999 Td
+160.51274999999998 726.3059999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6204,7 +6193,7 @@ ET
BT
552.021 726.3059999999999 Td
/F1.0 10.5 Tf
-<3231> Tj
+<3139> Tj
ET
0.000 0.000 0.000 SCN
@@ -6213,9 +6202,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 707.8259999999999 Td
+72.24000000000001 707.8259999999999 Td
/F1.0 10.5 Tf
-<332e382e204a736f6e4e756c6c> Tj
+<322e33382e332e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -6224,9 +6213,9 @@ ET
0.200 0.200 0.200 SCN
BT
-128.44574999999998 707.8259999999999 Td
+155.16824999999994 707.8259999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6244,7 +6233,7 @@ ET
BT
552.021 707.8259999999999 Td
/F1.0 10.5 Tf
-<3232> Tj
+<3139> Tj
ET
0.000 0.000 0.000 SCN
@@ -6253,9 +6242,9 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 689.3459999999999 Td
+48.24000000000001 689.3459999999999 Td
/F1.0 10.5 Tf
-<332e392e204a736f6e4f626a656374> Tj
+<332e20446566696e6974696f6e73> Tj
ET
0.000 0.000 0.000 SCN
@@ -6264,9 +6253,9 @@ ET
0.200 0.200 0.200 SCN
BT
-133.79024999999996 689.3459999999999 Td
+117.75674999999995 689.3459999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6284,7 +6273,7 @@ ET
BT
552.021 689.3459999999999 Td
/F1.0 10.5 Tf
-<3233> Tj
+<3230> Tj
ET
0.000 0.000 0.000 SCN
@@ -6295,7 +6284,7 @@ ET
BT
60.24000000000001 670.8659999999999 Td
/F1.0 10.5 Tf
-<332e31302e204a736f6e5072696d6974697665> Tj
+<332e312e20436c616d70496e666f726d6174696f6e> Tj
ET
0.000 0.000 0.000 SCN
@@ -6304,9 +6293,9 @@ ET
0.200 0.200 0.200 SCN
BT
-155.16824999999994 670.8659999999999 Td
+176.54625 670.8659999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6324,7 +6313,7 @@ ET
BT
552.021 670.8659999999999 Td
/F1.0 10.5 Tf
-<3235> Tj
+<3230> Tj
ET
0.000 0.000 0.000 SCN
@@ -6335,7 +6324,7 @@ ET
BT
60.24000000000001 652.3859999999999 Td
/F1.0 10.5 Tf
-<332e31312e204c6f6f70> Tj
+<332e322e20436c64734865616c7468436865636b> Tj
ET
0.000 0.000 0.000 SCN
@@ -6344,9 +6333,9 @@ ET
0.200 0.200 0.200 SCN
BT
-112.41224999999997 652.3859999999999 Td
+165.85724999999996 652.3859999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6364,7 +6353,7 @@ ET
BT
552.021 652.3859999999999 Td
/F1.0 10.5 Tf
-<3236> Tj
+<3230> Tj
ET
0.000 0.000 0.000 SCN
@@ -6375,7 +6364,7 @@ ET
BT
60.24000000000001 633.9059999999998 Td
/F1.0 10.5 Tf
-<332e31322e204c6f6f70456c656d656e744d6f64656c> Tj
+<332e332e2044696374696f6e617279> Tj
ET
0.000 0.000 0.000 SCN
@@ -6384,9 +6373,9 @@ ET
0.200 0.200 0.200 SCN
BT
-187.23524999999995 633.9059999999998 Td
+133.79024999999996 633.9059999999998 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6404,7 +6393,7 @@ ET
BT
552.021 633.9059999999998 Td
/F1.0 10.5 Tf
-<3237> Tj
+<3230> Tj
ET
0.000 0.000 0.000 SCN
@@ -6415,7 +6404,7 @@ ET
BT
60.24000000000001 615.4259999999998 Td
/F1.0 10.5 Tf
-<332e31332e204c6f6f704c6f67> Tj
+<332e342e2044696374696f6e617279456c656d656e74> Tj
ET
0.000 0.000 0.000 SCN
@@ -6424,9 +6413,9 @@ ET
0.200 0.200 0.200 SCN
BT
-133.79024999999996 615.4259999999998 Td
+176.54625 615.4259999999998 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6444,7 +6433,7 @@ ET
BT
552.021 615.4259999999998 Td
/F1.0 10.5 Tf
-<3238> Tj
+<3231> Tj
ET
0.000 0.000 0.000 SCN
@@ -6455,7 +6444,7 @@ ET
BT
60.24000000000001 596.9459999999998 Td
/F1.0 10.5 Tf
-[<332e31342e204c6f6f7054> 29.78515625 <656d706c617465>] TJ
+<332e352e2045787465726e616c436f6d706f6e656e74> Tj
ET
0.000 0.000 0.000 SCN
@@ -6464,9 +6453,9 @@ ET
0.200 0.200 0.200 SCN
BT
-160.51274999999998 596.9459999999998 Td
+181.89074999999997 596.9459999999998 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6484,7 +6473,7 @@ ET
BT
552.021 596.9459999999998 Td
/F1.0 10.5 Tf
-<3238> Tj
+<3231> Tj
ET
0.000 0.000 0.000 SCN
@@ -6495,7 +6484,7 @@ ET
BT
60.24000000000001 578.4659999999998 Td
/F1.0 10.5 Tf
-[<332e31352e204c6f6f7054> 29.78515625 <656d706c6174654c6f6f70456c656d656e744d6f64656c>] TJ
+<332e362e2045787465726e616c436f6d706f6e656e745374617465> Tj
ET
0.000 0.000 0.000 SCN
@@ -6504,9 +6493,9 @@ ET
0.200 0.200 0.200 SCN
BT
-256.71375 578.4659999999998 Td
+208.61325 578.4659999999998 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6524,7 +6513,7 @@ ET
BT
552.021 578.4659999999998 Td
/F1.0 10.5 Tf
-<3239> Tj
+<3232> Tj
ET
0.000 0.000 0.000 SCN
@@ -6535,7 +6524,7 @@ ET
BT
60.24000000000001 559.9859999999999 Td
/F1.0 10.5 Tf
-<332e31362e204d6963726f53657276696365506f6c696379> Tj
+[<332e372e204a736f6e417272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
0.000 0.000 0.000 SCN
@@ -6544,9 +6533,9 @@ ET
0.200 0.200 0.200 SCN
BT
-187.23524999999995 559.9859999999999 Td
+133.79024999999996 559.9859999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6564,7 +6553,7 @@ ET
BT
552.021 559.9859999999999 Td
/F1.0 10.5 Tf
-<3239> Tj
+<3232> Tj
ET
0.000 0.000 0.000 SCN
@@ -6575,7 +6564,7 @@ ET
BT
60.24000000000001 541.5059999999999 Td
/F1.0 10.5 Tf
-<332e31372e204e756d626572> Tj
+<332e382e204a736f6e456c656d656e74> Tj
ET
0.000 0.000 0.000 SCN
@@ -6584,9 +6573,9 @@ ET
0.200 0.200 0.200 SCN
BT
-128.44574999999998 541.5059999999999 Td
+144.47924999999998 541.5059999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6604,7 +6593,7 @@ ET
BT
552.021 541.5059999999999 Td
/F1.0 10.5 Tf
-<3330> Tj
+<3233> Tj
ET
0.000 0.000 0.000 SCN
@@ -6615,7 +6604,7 @@ ET
BT
60.24000000000001 523.0259999999998 Td
/F1.0 10.5 Tf
-[<332e31382e204f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
+<332e392e204a736f6e4e756c6c> Tj
ET
0.000 0.000 0.000 SCN
@@ -6624,9 +6613,9 @@ ET
0.200 0.200 0.200 SCN
BT
-176.54625 523.0259999999998 Td
+128.44574999999998 523.0259999999998 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6644,7 +6633,7 @@ ET
BT
552.021 523.0259999999998 Td
/F1.0 10.5 Tf
-<3330> Tj
+<3234> Tj
ET
0.000 0.000 0.000 SCN
@@ -6655,7 +6644,7 @@ ET
BT
60.24000000000001 504.54599999999976 Td
/F1.0 10.5 Tf
-<332e31392e20506f6c6963794d6f64656c> Tj
+<332e31302e204a736f6e4f626a656374> Tj
ET
0.000 0.000 0.000 SCN
@@ -6664,9 +6653,9 @@ ET
0.200 0.200 0.200 SCN
BT
-149.82374999999996 504.54599999999976 Td
+144.47924999999998 504.54599999999976 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6684,7 +6673,7 @@ ET
BT
552.021 504.54599999999976 Td
/F1.0 10.5 Tf
-<3331> Tj
+<3236> Tj
ET
0.000 0.000 0.000 SCN
@@ -6695,7 +6684,7 @@ ET
BT
60.24000000000001 486.06599999999975 Td
/F1.0 10.5 Tf
-<332e32302e2053657276696365> Tj
+<332e31312e204a736f6e5072696d6974697665> Tj
ET
0.000 0.000 0.000 SCN
@@ -6704,9 +6693,9 @@ ET
0.200 0.200 0.200 SCN
BT
-123.10125 486.06599999999975 Td
+155.16824999999994 486.06599999999975 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6724,11 +6713,411 @@ ET
BT
552.021 486.06599999999975 Td
/F1.0 10.5 Tf
+<3237> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 467.58599999999973 Td
+/F1.0 10.5 Tf
+<332e31322e204c6f6f70> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+112.41224999999997 467.58599999999973 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 467.58599999999973 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 467.58599999999973 Td
+/F1.0 10.5 Tf
+<3238> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 449.1059999999997 Td
+/F1.0 10.5 Tf
+<332e31332e204c6f6f70456c656d656e744d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+187.23524999999995 449.1059999999997 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 449.1059999999997 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 449.1059999999997 Td
+/F1.0 10.5 Tf
+<3239> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 430.6259999999997 Td
+/F1.0 10.5 Tf
+<332e31342e204c6f6f704c6f67> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+133.79024999999996 430.6259999999997 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 430.6259999999997 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 430.6259999999997 Td
+/F1.0 10.5 Tf
+<3330> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 412.1459999999997 Td
+/F1.0 10.5 Tf
+[<332e31352e204c6f6f7054> 29.78515625 <656d706c617465>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+160.51274999999998 412.1459999999997 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 412.1459999999997 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 412.1459999999997 Td
+/F1.0 10.5 Tf
+<3330> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 393.66599999999966 Td
+/F1.0 10.5 Tf
+[<332e31362e204c6f6f7054> 29.78515625 <656d706c6174654c6f6f70456c656d656e744d6f64656c>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+256.71375 393.66599999999966 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 393.66599999999966 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 393.66599999999966 Td
+/F1.0 10.5 Tf
+<3331> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 375.18599999999964 Td
+/F1.0 10.5 Tf
+<332e31372e204d6963726f53657276696365506f6c696379> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+187.23524999999995 375.18599999999964 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 375.18599999999964 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 375.18599999999964 Td
+/F1.0 10.5 Tf
+<3331> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 356.7059999999996 Td
+/F1.0 10.5 Tf
+<332e31382e204e756d626572> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+128.44574999999998 356.7059999999996 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 356.7059999999996 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 356.7059999999996 Td
+/F1.0 10.5 Tf
<3332> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 338.2259999999996 Td
+/F1.0 10.5 Tf
+[<332e31392e204f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+176.54625 338.2259999999996 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 338.2259999999996 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 338.2259999999996 Td
+/F1.0 10.5 Tf
+<3333> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 319.7459999999996 Td
+/F1.0 10.5 Tf
+<332e32302e20506f6c6963794d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+149.82374999999996 319.7459999999996 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 319.7459999999996 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 319.7459999999996 Td
+/F1.0 10.5 Tf
+<3333> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 301.26599999999956 Td
+/F1.0 10.5 Tf
+<332e32312e2053657276696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+123.10125 301.26599999999956 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 301.26599999999956 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 301.26599999999956 Td
+/F1.0 10.5 Tf
+<3334> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
Q
endstream
@@ -6742,7 +7131,7 @@ endobj
/Font << /F1.0 8 0 R
>>
>>
-/Annots [646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R]
+/Annots [667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R 702 0 R 703 0 R 704 0 R 705 0 R 706 0 R 707 0 R 708 0 R 709 0 R 710 0 R 711 0 R 712 0 R 713 0 R 714 0 R 715 0 R 716 0 R]
>>
endobj
19 0 obj
@@ -6791,7 +7180,7 @@ ET
BT
85.136384765625 660.036 Td
/F1.0 10.5 Tf
-[<203a20362e302e302d534e415053484f> 20.01953125 <54>] TJ
+[<203a20362e312e312d534e415053484f> 20.01953125 <54>] TJ
ET
0.000 0.000 0.000 SCN
@@ -6824,7 +7213,7 @@ ET
BT
71.30850000000001 592.176 Td
/F1.0 10.5 Tf
-<203a206c6f63616c686f73743a3339343831> Tj
+<203a206c6f63616c686f73743a3337373437> Tj
ET
0.000 0.000 0.000 SCN
@@ -6925,7 +7314,7 @@ endobj
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
>>
@@ -6939,18 +7328,18 @@ endobj
>>
endobj
23 0 obj
-<< /Kids [56 0 R 258 0 R 320 0 R 156 0 R 241 0 R 90 0 R 153 0 R 221 0 R 57 0 R 150 0 R 210 0 R 243 0 R 84 0 R 140 0 R]
+<< /Kids [56 0 R 269 0 R 334 0 R 156 0 R 233 0 R 90 0 R 153 0 R 238 0 R 57 0 R 150 0 R 218 0 R 84 0 R 140 0 R 251 0 R]
>>
endobj
24 0 obj
<< /Type /Font
/BaseFont /AAAAAB+NotoSerif-Bold
/Subtype /TrueType
-/FontDescriptor 849 0 R
+/FontDescriptor 900 0 R
/FirstChar 32
/LastChar 255
-/Widths 851 0 R
-/ToUnicode 850 0 R
+/Widths 902 0 R
+/ToUnicode 901 0 R
>>
endobj
25 0 obj
@@ -6960,11 +7349,11 @@ endobj
<< /Type /Font
/BaseFont /AAAAAC+NotoSerif-Italic
/Subtype /TrueType
-/FontDescriptor 853 0 R
+/FontDescriptor 904 0 R
/FirstChar 32
/LastChar 255
-/Widths 855 0 R
-/ToUnicode 854 0 R
+/Widths 906 0 R
+/ToUnicode 905 0 R
>>
endobj
27 0 obj
@@ -7864,7 +8253,7 @@ endobj
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
/Annots [33 0 R 41 0 R]
@@ -7894,11 +8283,11 @@ endobj
<< /Type /Font
/BaseFont /AAAAAD+mplus1mn-regular
/Subtype /TrueType
-/FontDescriptor 857 0 R
+/FontDescriptor 908 0 R
/FirstChar 32
/LastChar 255
-/Widths 859 0 R
-/ToUnicode 858 0 R
+/Widths 910 0 R
+/ToUnicode 909 0 R
>>
endobj
36 0 obj
@@ -9142,7 +9531,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
/Annots [47 0 R 51 0 R 53 0 R]
@@ -9195,12 +9584,12 @@ endobj
endobj
56 0 obj
<< /Limits [(_clampinformation) (_consumes_8)]
-/Names [(_clampinformation) 249 0 R (_cldshealthcheck) 250 0 R (_consumes) 54 0 R (_consumes_2) 73 0 R (_consumes_3) 100 0 R (_consumes_4) 172 0 R (_consumes_5) 181 0 R (_consumes_6) 190 0 R (_consumes_7) 203 0 R (_consumes_8) 228 0 R]
+/Names [(_clampinformation) 262 0 R (_cldshealthcheck) 263 0 R (_consumes) 54 0 R (_consumes_2) 73 0 R (_consumes_3) 100 0 R (_consumes_4) 172 0 R (_consumes_5) 181 0 R (_consumes_6) 190 0 R (_consumes_7) 207 0 R (_consumes_8) 211 0 R]
>>
endobj
57 0 obj
<< /Limits [(_responses_10) (_responses_19)]
-/Names [(_responses_10) 83 0 R (_responses_11) 91 0 R (_responses_12) 96 0 R (_responses_13) 104 0 R (_responses_14) 107 0 R (_responses_15) 113 0 R (_responses_16) 117 0 R (_responses_17) 124 0 R (_responses_18) 129 0 R (_responses_19) 136 0 R]
+/Names [(_responses_10) 83 0 R (_responses_11) 91 0 R (_responses_12) 98 0 R (_responses_13) 104 0 R (_responses_14) 107 0 R (_responses_15) 113 0 R (_responses_16) 117 0 R (_responses_17) 124 0 R (_responses_18) 129 0 R (_responses_19) 136 0 R]
>>
endobj
58 0 obj
@@ -10555,7 +10944,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
/Annots [66 0 R 70 0 R 72 0 R]
@@ -11775,7 +12164,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
>>
@@ -11805,15 +12194,15 @@ endobj
[75 0 R /XYZ 0 198.9600000000004 null]
endobj
84 0 obj
-<< /Limits [(_route107) (_route88)]
-/Names [(_route107) 31 0 R (_route108) 36 0 R (_route74) 112 0 R (_route75) 192 0 R (_route76) 167 0 R (_route77) 183 0 R (_route78) 176 0 R (_route79) 105 0 R (_route80) 120 0 R (_route81) 127 0 R (_route82) 162 0 R (_route83) 147 0 R (_route84) 139 0 R (_route85) 154 0 R (_route86) 102 0 R (_route87) 115 0 R (_route88) 88 0 R]
+<< /Limits [(_verb153) (_verb169)]
+/Names [(_verb153) 112 0 R (_verb154) 192 0 R (_verb155) 167 0 R (_verb156) 183 0 R (_verb157) 176 0 R (_verb158) 105 0 R (_verb159) 120 0 R (_verb160) 127 0 R (_verb161) 162 0 R (_verb162) 147 0 R (_verb163) 139 0 R (_verb164) 154 0 R (_verb165) 102 0 R (_verb166) 115 0 R (_verb167) 88 0 R (_verb168) 134 0 R (_verb169) 94 0 R]
>>
endobj
85 0 obj
[75 0 R /XYZ 0 108.12000000000037 null]
endobj
86 0 obj
-<< /Length 16049
+<< /Length 17432
>>
stream
q
@@ -12721,15 +13110,27 @@ f
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 116.880 114.560 51.840 re
+48.240 131.160 114.560 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 116.880 171.840 51.840 re
+162.800 131.160 171.840 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 116.880 229.120 51.840 re
+334.640 131.160 229.120 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 93.600 114.560 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+162.800 93.600 171.840 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+334.640 93.600 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
@@ -12845,20 +13246,20 @@ S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 116.880 m
-162.800 116.880 l
+48.240 131.160 m
+162.800 131.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
48.240 168.970 m
-48.240 116.630 l
+48.240 130.910 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
162.800 168.970 m
-162.800 116.630 l
+162.800 130.910 l
S
[ ] 0 d
1 w
@@ -12866,7 +13267,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 138.19300000000015 Td
+51.24000000000001 145.33300000000014 Td
/F2.0 10.5 Tf
<50617468> Tj
ET
@@ -12880,20 +13281,20 @@ S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 116.880 m
-334.640 116.880 l
+162.800 131.160 m
+334.640 131.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
162.800 168.970 m
-162.800 116.630 l
+162.800 130.910 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
334.640 168.970 m
-334.640 116.630 l
+334.640 130.910 l
S
[ ] 0 d
1 w
@@ -12903,24 +13304,17 @@ S
BT
165.79988544000003 152.47300000000016 Td
/F2.0 10.5 Tf
-<6c6f6f704e616d657d3f74656d706c6174654e616d653d7b7465> Tj
+<6c6f6f704e616d65> Tj
ET
BT
165.79988544000003 138.19300000000015 Td
-/F2.0 10.5 Tf
-<6d706c6174654e616d65> Tj
-ET
-
-
-BT
-165.79988544000003 123.91300000000015 Td
ET
BT
-165.79988544000003 123.91300000000015 Td
+165.79988544000003 138.19300000000015 Td
/F3.0 10.5 Tf
<7265717569726564> Tj
ET
@@ -12934,20 +13328,20 @@ S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 116.880 m
-563.760 116.880 l
+334.640 131.160 m
+563.760 131.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
334.640 168.970 m
-334.640 116.630 l
+334.640 130.910 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
563.760 168.970 m
-563.760 116.630 l
+563.760 130.910 l
S
[ ] 0 d
1 w
@@ -12955,22 +13349,128 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 138.19300000000015 Td
+337.6397136 145.33300000000014 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.160 m
+162.800 131.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 93.600 m
+162.800 93.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.410 m
+48.240 93.350 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 131.410 m
+162.800 93.350 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
BT
-48.24000000000001 87.29600000000013 Td
-/F2.0 13 Tf
-<322e31322e322e20526573706f6e736573> Tj
+51.24000000000001 107.77300000000014 Td
+/F2.0 10.5 Tf
+<50617468> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 131.160 m
+334.640 131.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 93.600 m
+334.640 93.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 131.410 m
+162.800 93.350 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 131.410 m
+334.640 93.350 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+165.79988544000003 114.91300000000014 Td
+/F2.0 10.5 Tf
+<74656d706c6174654e616d65> Tj
+ET
+
+
+BT
+165.79988544000003 100.63300000000014 Td
+ET
+
+
+BT
+165.79988544000003 100.63300000000014 Td
+/F3.0 10.5 Tf
+<7265717569726564> Tj
ET
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 131.160 m
+563.760 131.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 93.600 m
+563.760 93.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 131.410 m
+334.640 93.350 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 131.410 m
+563.760 93.350 l
+S
+[ ] 0 d
+1 w
0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+337.6397136 107.77300000000014 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
0.000 0.000 0.000 scn
q
0.000 0.000 0.000 scn
@@ -13007,7 +13507,7 @@ endobj
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
/Annots [92 0 R]
@@ -13021,7 +13521,7 @@ endobj
endobj
90 0 obj
<< /Limits [(_policymodel) (_produces_18)]
-/Names [(_policymodel) 340 0 R (_produces) 34 0 R (_produces_10) 85 0 R (_produces_11) 93 0 R (_produces_12) 101 0 R (_produces_13) 111 0 R (_produces_14) 114 0 R (_produces_15) 119 0 R (_produces_16) 126 0 R (_produces_17) 131 0 R (_produces_18) 138 0 R]
+/Names [(_policymodel) 361 0 R (_produces) 34 0 R (_produces_10) 85 0 R (_produces_11) 93 0 R (_produces_12) 101 0 R (_produces_13) 111 0 R (_produces_14) 114 0 R (_produces_15) 119 0 R (_produces_16) 126 0 R (_produces_17) 131 0 R (_produces_18) 138 0 R]
>>
endobj
91 0 obj
@@ -13045,61 +13545,69 @@ endobj
[87 0 R /XYZ 0 224.28000000000017 null]
endobj
96 0 obj
-[87 0 R /XYZ 0 104.88000000000014 null]
-endobj
-97 0 obj
-<< /Length 17842
+<< /Length 17981
>>
stream
q
/DeviceRGB cs
+0.200 0.200 0.200 scn
+/DeviceRGB CS
+0.200 0.200 0.200 SCN
+
+BT
+48.24 740.816 Td
+/F2.0 13 Tf
+<322e31322e322e20526573706f6e736573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 718.440 51.552 37.560 re
+48.240 688.560 51.552 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 718.440 360.864 37.560 re
+99.792 688.560 360.864 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 718.440 103.104 37.560 re
+460.656 688.560 103.104 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 695.160 51.552 23.280 re
+48.240 665.280 51.552 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 695.160 360.864 23.280 re
+99.792 665.280 360.864 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 695.160 103.104 23.280 re
+460.656 665.280 103.104 23.280 re
f
0.000 0.000 0.000 scn
0.5 w
-/DeviceRGB CS
0.867 0.867 0.867 SCN
-48.240 756.000 m
-99.792 756.000 l
+48.240 726.120 m
+99.792 726.120 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 718.440 m
-99.792 718.440 l
+48.240 688.560 m
+99.792 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 756.250 m
-48.240 717.690 l
+48.240 726.370 m
+48.240 687.810 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 756.250 m
-99.792 717.690 l
+99.792 726.370 m
+99.792 687.810 l
S
[ ] 0 d
1 w
@@ -13107,14 +13615,14 @@ S
0.200 0.200 0.200 scn
BT
-51.24 740.2529999999999 Td
+51.24 710.373 Td
/F2.0 10.5 Tf
<48545450> Tj
ET
BT
-51.24 725.973 Td
+51.24 696.0930000000001 Td
/F2.0 10.5 Tf
<436f6465> Tj
ET
@@ -13122,26 +13630,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 756.000 m
-460.656 756.000 l
+99.792 726.120 m
+460.656 726.120 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-99.792 718.440 m
-460.656 718.440 l
+99.792 688.560 m
+460.656 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 756.250 m
-99.792 717.690 l
+99.792 726.370 m
+99.792 687.810 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 756.250 m
-460.656 717.690 l
+460.656 726.370 m
+460.656 687.810 l
S
[ ] 0 d
1 w
@@ -13149,7 +13657,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 740.2529999999999 Td
+102.792 710.373 Td
/F2.0 10.5 Tf
<4465736372697074696f6e> Tj
ET
@@ -13157,26 +13665,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 756.000 m
-563.760 756.000 l
+460.656 726.120 m
+563.760 726.120 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-460.656 718.440 m
-563.760 718.440 l
+460.656 688.560 m
+563.760 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 756.250 m
-460.656 717.690 l
+460.656 726.370 m
+460.656 687.810 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 756.250 m
-563.760 717.690 l
+563.760 726.370 m
+563.760 687.810 l
S
[ ] 0 d
1 w
@@ -13184,7 +13692,7 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 740.2529999999999 Td
+463.65600000000006 710.373 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -13192,26 +13700,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 718.440 m
-99.792 718.440 l
+48.240 688.560 m
+99.792 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 695.160 m
-99.792 695.160 l
+48.240 665.280 m
+99.792 665.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 718.690 m
-48.240 694.910 l
+48.240 688.810 m
+48.240 665.030 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 718.690 m
-99.792 694.910 l
+99.792 688.810 m
+99.792 665.030 l
S
[ ] 0 d
1 w
@@ -13219,7 +13727,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24 702.193 Td
+51.24 672.3130000000001 Td
/F2.0 10.5 Tf
<323030> Tj
ET
@@ -13227,26 +13735,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 718.440 m
-460.656 718.440 l
+99.792 688.560 m
+460.656 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 695.160 m
-460.656 695.160 l
+99.792 665.280 m
+460.656 665.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 718.690 m
-99.792 694.910 l
+99.792 688.810 m
+99.792 665.030 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 718.690 m
-460.656 694.910 l
+460.656 688.810 m
+460.656 665.030 l
S
[ ] 0 d
1 w
@@ -13254,7 +13762,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 702.193 Td
+102.792 672.3130000000001 Td
/F1.0 10.5 Tf
<4f75747075742074797065> Tj
ET
@@ -13262,26 +13770,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 718.440 m
-563.760 718.440 l
+460.656 688.560 m
+563.760 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 695.160 m
-563.760 695.160 l
+460.656 665.280 m
+563.760 665.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 718.690 m
-460.656 694.910 l
+460.656 688.810 m
+460.656 665.030 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 718.690 m
-563.760 694.910 l
+563.760 688.810 m
+563.760 665.030 l
S
[ ] 0 d
1 w
@@ -13295,7 +13803,7 @@ S
0.259 0.545 0.792 SCN
BT
-463.65600000000006 702.193 Td
+463.65600000000006 672.3130000000001 Td
/F1.0 10.5 Tf
<4c6f6f70> Tj
ET
@@ -13307,7 +13815,7 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24 665.5760000000001 Td
+48.24 635.6960000000003 Td
/F2.0 13 Tf
<322e31322e332e20436f6e73756d6573> Tj
ET
@@ -13320,7 +13828,7 @@ ET
0.200 0.200 0.200 SCN
BT
-56.88050000000001 638.9160000000002 Td
+56.88050000000001 609.0360000000003 Td
/F1.0 10.5 Tf
<a5> Tj
ET
@@ -13333,7 +13841,7 @@ ET
0.694 0.129 0.275 SCN
BT
-66.24000000000001 641.1000000000003 Td
+66.24000000000001 611.2200000000004 Td
/F4.0 10.5 Tf
<6170706c69636174696f6e2f6a736f6e> Tj
ET
@@ -13344,7 +13852,7 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 609.2960000000003 Td
+48.24000000000001 579.4160000000004 Td
/F2.0 13 Tf
<322e31322e342e2050726f6475636573> Tj
ET
@@ -13357,7 +13865,7 @@ ET
0.200 0.200 0.200 SCN
BT
-56.88050000000001 582.6360000000003 Td
+56.88050000000001 552.7560000000004 Td
/F1.0 10.5 Tf
<a5> Tj
ET
@@ -13370,7 +13878,7 @@ ET
0.694 0.129 0.275 SCN
BT
-66.24000000000001 584.8200000000004 Td
+66.24000000000001 554.9400000000005 Td
/F4.0 10.5 Tf
<6170706c69636174696f6e2f6a736f6e> Tj
ET
@@ -13381,7 +13889,7 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 547.1760000000004 Td
+48.24000000000001 517.2960000000005 Td
/F2.0 18 Tf
<322e31332e20505554202f76322f6c6f6f702f64656c6574652f7b6c6f6f704e616d657d> Tj
ET
@@ -13392,7 +13900,7 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 512.9360000000005 Td
+48.24000000000001 483.0560000000005 Td
/F2.0 13 Tf
[<322e31332e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
@@ -13400,51 +13908,51 @@ ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 474.960 114.560 23.280 re
+48.240 445.080 114.560 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 474.960 171.840 23.280 re
+162.800 445.080 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 474.960 229.120 23.280 re
+334.640 445.080 229.120 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 437.400 114.560 37.560 re
+48.240 407.520 114.560 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 437.400 171.840 37.560 re
+162.800 407.520 171.840 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 437.400 229.120 37.560 re
+334.640 407.520 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 498.240 m
-162.800 498.240 l
+48.240 468.360 m
+162.800 468.360 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 474.960 m
-162.800 474.960 l
+48.240 445.080 m
+162.800 445.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 498.490 m
-48.240 474.210 l
+48.240 468.610 m
+48.240 444.330 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 498.490 m
-162.800 474.210 l
+162.800 468.610 m
+162.800 444.330 l
S
[ ] 0 d
1 w
@@ -13452,7 +13960,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 482.49300000000045 Td
+51.24000000000001 452.61300000000045 Td
/F2.0 10.5 Tf
<54797065> Tj
ET
@@ -13460,26 +13968,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 498.240 m
-334.640 498.240 l
+162.800 468.360 m
+334.640 468.360 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-162.800 474.960 m
-334.640 474.960 l
+162.800 445.080 m
+334.640 445.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 498.490 m
-162.800 474.210 l
+162.800 468.610 m
+162.800 444.330 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 498.490 m
-334.640 474.210 l
+334.640 468.610 m
+334.640 444.330 l
S
[ ] 0 d
1 w
@@ -13487,7 +13995,7 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 482.49300000000045 Td
+165.79988544000003 452.61300000000045 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -13495,26 +14003,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 498.240 m
-563.760 498.240 l
+334.640 468.360 m
+563.760 468.360 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-334.640 474.960 m
-563.760 474.960 l
+334.640 445.080 m
+563.760 445.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 498.490 m
-334.640 474.210 l
+334.640 468.610 m
+334.640 444.330 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 498.490 m
-563.760 474.210 l
+563.760 468.610 m
+563.760 444.330 l
S
[ ] 0 d
1 w
@@ -13522,7 +14030,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 482.49300000000045 Td
+337.6397136 452.61300000000045 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -13530,26 +14038,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 474.960 m
-162.800 474.960 l
+48.240 445.080 m
+162.800 445.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 437.400 m
-162.800 437.400 l
+48.240 407.520 m
+162.800 407.520 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 475.210 m
-48.240 437.150 l
+48.240 445.330 m
+48.240 407.270 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 475.210 m
-162.800 437.150 l
+162.800 445.330 m
+162.800 407.270 l
S
[ ] 0 d
1 w
@@ -13557,7 +14065,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 451.5730000000005 Td
+51.24000000000001 421.6930000000005 Td
/F2.0 10.5 Tf
<50617468> Tj
ET
@@ -13565,26 +14073,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 474.960 m
-334.640 474.960 l
+162.800 445.080 m
+334.640 445.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 437.400 m
-334.640 437.400 l
+162.800 407.520 m
+334.640 407.520 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 475.210 m
-162.800 437.150 l
+162.800 445.330 m
+162.800 407.270 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 475.210 m
-334.640 437.150 l
+334.640 445.330 m
+334.640 407.270 l
S
[ ] 0 d
1 w
@@ -13592,19 +14100,19 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 458.7130000000005 Td
+165.79988544000003 428.8330000000005 Td
/F2.0 10.5 Tf
<6c6f6f704e616d65> Tj
ET
BT
-165.79988544000003 444.43300000000045 Td
+165.79988544000003 414.55300000000045 Td
ET
BT
-165.79988544000003 444.43300000000045 Td
+165.79988544000003 414.55300000000045 Td
/F3.0 10.5 Tf
<7265717569726564> Tj
ET
@@ -13612,26 +14120,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 474.960 m
-563.760 474.960 l
+334.640 445.080 m
+563.760 445.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 437.400 m
-563.760 437.400 l
+334.640 407.520 m
+563.760 407.520 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 475.210 m
-334.640 437.150 l
+334.640 445.330 m
+334.640 407.270 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 475.210 m
-563.760 437.150 l
+563.760 445.330 m
+563.760 407.270 l
S
[ ] 0 d
1 w
@@ -13639,7 +14147,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 451.5730000000005 Td
+337.6397136 421.6930000000005 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -13649,7 +14157,7 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 407.8160000000005 Td
+48.24000000000001 377.9360000000005 Td
/F2.0 13 Tf
<322e31332e322e20526573706f6e736573> Tj
ET
@@ -13657,43 +14165,43 @@ ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 369.840 171.840 23.280 re
+48.240 339.960 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-220.080 369.840 343.680 23.280 re
+220.080 339.960 343.680 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 346.560 171.840 23.280 re
+48.240 316.680 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-220.080 346.560 343.680 23.280 re
+220.080 316.680 343.680 23.280 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 393.120 m
-220.080 393.120 l
+48.240 363.240 m
+220.080 363.240 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 369.840 m
-220.080 369.840 l
+48.240 339.960 m
+220.080 339.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 393.370 m
-48.240 369.090 l
+48.240 363.490 m
+48.240 339.210 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-220.080 393.370 m
-220.080 369.090 l
+220.080 363.490 m
+220.080 339.210 l
S
[ ] 0 d
1 w
@@ -13701,7 +14209,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 377.37300000000045 Td
+51.24000000000001 347.49300000000045 Td
/F2.0 10.5 Tf
<4854545020436f6465> Tj
ET
@@ -13709,26 +14217,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-220.080 393.120 m
-563.760 393.120 l
+220.080 363.240 m
+563.760 363.240 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-220.080 369.840 m
-563.760 369.840 l
+220.080 339.960 m
+563.760 339.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-220.080 393.370 m
-220.080 369.090 l
+220.080 363.490 m
+220.080 339.210 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 393.370 m
-563.760 369.090 l
+563.760 363.490 m
+563.760 339.210 l
S
[ ] 0 d
1 w
@@ -13736,7 +14244,7 @@ S
0.200 0.200 0.200 scn
BT
-223.07982816 377.37300000000045 Td
+223.07982816 347.49300000000045 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -13744,26 +14252,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 369.840 m
-220.080 369.840 l
+48.240 339.960 m
+220.080 339.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 346.560 m
-220.080 346.560 l
+48.240 316.680 m
+220.080 316.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 370.090 m
-48.240 346.310 l
+48.240 340.210 m
+48.240 316.430 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-220.080 370.090 m
-220.080 346.310 l
+220.080 340.210 m
+220.080 316.430 l
S
[ ] 0 d
1 w
@@ -13771,7 +14279,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 353.5930000000005 Td
+51.24000000000001 323.7130000000005 Td
/F2.0 10.5 Tf
<323030> Tj
ET
@@ -13779,26 +14287,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-220.080 369.840 m
-563.760 369.840 l
+220.080 339.960 m
+563.760 339.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-220.080 346.560 m
-563.760 346.560 l
+220.080 316.680 m
+563.760 316.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-220.080 370.090 m
-220.080 346.310 l
+220.080 340.210 m
+220.080 316.430 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 370.090 m
-563.760 346.310 l
+563.760 340.210 m
+563.760 316.430 l
S
[ ] 0 d
1 w
@@ -13806,7 +14314,7 @@ S
0.200 0.200 0.200 scn
BT
-223.07982816 353.5930000000005 Td
+223.07982816 323.7130000000005 Td
/F1.0 10.5 Tf
<4e6f20436f6e74656e74> Tj
ET
@@ -13816,7 +14324,7 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 311.13600000000054 Td
+48.24000000000001 281.25600000000054 Td
/F2.0 18 Tf
[<322e31342e20505554202f76322f6c6f6f702f6465706c6f> 20.01953125 <792f7b6c6f6f704e616d657d>] TJ
ET
@@ -13827,7 +14335,7 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 276.89600000000047 Td
+48.24000000000001 247.01600000000047 Td
/F2.0 13 Tf
[<322e31342e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
@@ -13835,51 +14343,51 @@ ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 238.920 114.560 23.280 re
+48.240 209.040 114.560 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 238.920 171.840 23.280 re
+162.800 209.040 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 238.920 229.120 23.280 re
+334.640 209.040 229.120 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 201.360 114.560 37.560 re
+48.240 171.480 114.560 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 201.360 171.840 37.560 re
+162.800 171.480 171.840 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 201.360 229.120 37.560 re
+334.640 171.480 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 262.200 m
-162.800 262.200 l
+48.240 232.320 m
+162.800 232.320 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 238.920 m
-162.800 238.920 l
+48.240 209.040 m
+162.800 209.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 262.450 m
-48.240 238.170 l
+48.240 232.570 m
+48.240 208.290 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 262.450 m
-162.800 238.170 l
+162.800 232.570 m
+162.800 208.290 l
S
[ ] 0 d
1 w
@@ -13887,7 +14395,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 246.45300000000043 Td
+51.24000000000001 216.5730000000005 Td
/F2.0 10.5 Tf
<54797065> Tj
ET
@@ -13895,26 +14403,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 262.200 m
-334.640 262.200 l
+162.800 232.320 m
+334.640 232.320 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-162.800 238.920 m
-334.640 238.920 l
+162.800 209.040 m
+334.640 209.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 262.450 m
-162.800 238.170 l
+162.800 232.570 m
+162.800 208.290 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 262.450 m
-334.640 238.170 l
+334.640 232.570 m
+334.640 208.290 l
S
[ ] 0 d
1 w
@@ -13922,7 +14430,7 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 246.45300000000043 Td
+165.79988544000003 216.5730000000005 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -13930,26 +14438,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 262.200 m
-563.760 262.200 l
+334.640 232.320 m
+563.760 232.320 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-334.640 238.920 m
-563.760 238.920 l
+334.640 209.040 m
+563.760 209.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 262.450 m
-334.640 238.170 l
+334.640 232.570 m
+334.640 208.290 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 262.450 m
-563.760 238.170 l
+563.760 232.570 m
+563.760 208.290 l
S
[ ] 0 d
1 w
@@ -13957,7 +14465,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 246.45300000000043 Td
+337.6397136 216.5730000000005 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -13965,26 +14473,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 238.920 m
-162.800 238.920 l
+48.240 209.040 m
+162.800 209.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 201.360 m
-162.800 201.360 l
+48.240 171.480 m
+162.800 171.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 239.170 m
-48.240 201.110 l
+48.240 209.290 m
+48.240 171.230 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 239.170 m
-162.800 201.110 l
+162.800 209.290 m
+162.800 171.230 l
S
[ ] 0 d
1 w
@@ -13992,7 +14500,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 215.53300000000044 Td
+51.24000000000001 185.65300000000047 Td
/F2.0 10.5 Tf
<50617468> Tj
ET
@@ -14000,26 +14508,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 238.920 m
-334.640 238.920 l
+162.800 209.040 m
+334.640 209.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 201.360 m
-334.640 201.360 l
+162.800 171.480 m
+334.640 171.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 239.170 m
-162.800 201.110 l
+162.800 209.290 m
+162.800 171.230 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 239.170 m
-334.640 201.110 l
+334.640 209.290 m
+334.640 171.230 l
S
[ ] 0 d
1 w
@@ -14027,19 +14535,19 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 222.67300000000046 Td
+165.79988544000003 192.7930000000005 Td
/F2.0 10.5 Tf
<6c6f6f704e616d65> Tj
ET
BT
-165.79988544000003 208.39300000000046 Td
+165.79988544000003 178.5130000000005 Td
ET
BT
-165.79988544000003 208.39300000000046 Td
+165.79988544000003 178.5130000000005 Td
/F3.0 10.5 Tf
<7265717569726564> Tj
ET
@@ -14047,26 +14555,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 238.920 m
-563.760 238.920 l
+334.640 209.040 m
+563.760 209.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 201.360 m
-563.760 201.360 l
+334.640 171.480 m
+563.760 171.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 239.170 m
-334.640 201.110 l
+334.640 209.290 m
+334.640 171.230 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 239.170 m
-563.760 201.110 l
+563.760 209.290 m
+563.760 171.230 l
S
[ ] 0 d
1 w
@@ -14074,7 +14582,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 215.53300000000044 Td
+337.6397136 185.65300000000047 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -14084,7 +14592,7 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 171.7760000000004 Td
+48.24000000000001 141.89600000000047 Td
/F2.0 13 Tf
<322e31342e322e20526573706f6e736573> Tj
ET
@@ -14092,51 +14600,51 @@ ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 119.520 51.552 37.560 re
+48.240 89.640 51.552 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 119.520 360.864 37.560 re
+99.792 89.640 360.864 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 119.520 103.104 37.560 re
+460.656 89.640 103.104 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 96.240 51.552 23.280 re
+48.240 66.360 51.552 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 96.240 360.864 23.280 re
+99.792 66.360 360.864 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 96.240 103.104 23.280 re
+460.656 66.360 103.104 23.280 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 157.080 m
-99.792 157.080 l
+48.240 127.200 m
+99.792 127.200 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 119.520 m
-99.792 119.520 l
+48.240 89.640 m
+99.792 89.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 157.330 m
-48.240 118.770 l
+48.240 127.450 m
+48.240 88.890 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 157.330 m
-99.792 118.770 l
+99.792 127.450 m
+99.792 88.890 l
S
[ ] 0 d
1 w
@@ -14144,14 +14652,14 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 141.33300000000042 Td
+51.24000000000001 111.45300000000044 Td
/F2.0 10.5 Tf
<48545450> Tj
ET
BT
-51.24000000000001 127.05300000000042 Td
+51.24000000000001 97.17300000000044 Td
/F2.0 10.5 Tf
<436f6465> Tj
ET
@@ -14159,26 +14667,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 157.080 m
-460.656 157.080 l
+99.792 127.200 m
+460.656 127.200 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-99.792 119.520 m
-460.656 119.520 l
+99.792 89.640 m
+460.656 89.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 157.330 m
-99.792 118.770 l
+99.792 127.450 m
+99.792 88.890 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 157.330 m
-460.656 118.770 l
+460.656 127.450 m
+460.656 88.890 l
S
[ ] 0 d
1 w
@@ -14186,7 +14694,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 141.33300000000042 Td
+102.792 111.45300000000044 Td
/F2.0 10.5 Tf
<4465736372697074696f6e> Tj
ET
@@ -14194,26 +14702,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 157.080 m
-563.760 157.080 l
+460.656 127.200 m
+563.760 127.200 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-460.656 119.520 m
-563.760 119.520 l
+460.656 89.640 m
+563.760 89.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 157.330 m
-460.656 118.770 l
+460.656 127.450 m
+460.656 88.890 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 157.330 m
-563.760 118.770 l
+563.760 127.450 m
+563.760 88.890 l
S
[ ] 0 d
1 w
@@ -14221,7 +14729,7 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 141.33300000000042 Td
+463.65600000000006 111.45300000000044 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -14229,26 +14737,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 119.520 m
-99.792 119.520 l
+48.240 89.640 m
+99.792 89.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 96.240 m
-99.792 96.240 l
+48.240 66.360 m
+99.792 66.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 119.770 m
-48.240 95.990 l
+48.240 89.890 m
+48.240 66.110 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 119.770 m
-99.792 95.990 l
+99.792 89.890 m
+99.792 66.110 l
S
[ ] 0 d
1 w
@@ -14256,7 +14764,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 103.27300000000041 Td
+51.24000000000001 73.39300000000044 Td
/F2.0 10.5 Tf
<323030> Tj
ET
@@ -14264,26 +14772,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 119.520 m
-460.656 119.520 l
+99.792 89.640 m
+460.656 89.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 96.240 m
-460.656 96.240 l
+99.792 66.360 m
+460.656 66.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 119.770 m
-99.792 95.990 l
+99.792 89.890 m
+99.792 66.110 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 119.770 m
-460.656 95.990 l
+460.656 89.890 m
+460.656 66.110 l
S
[ ] 0 d
1 w
@@ -14291,7 +14799,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 103.27300000000041 Td
+102.792 73.39300000000044 Td
/F1.0 10.5 Tf
<4f75747075742074797065> Tj
ET
@@ -14299,26 +14807,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 119.520 m
-563.760 119.520 l
+460.656 89.640 m
+563.760 89.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 96.240 m
-563.760 96.240 l
+460.656 66.360 m
+563.760 66.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 119.770 m
-460.656 95.990 l
+460.656 89.890 m
+460.656 66.110 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 119.770 m
-563.760 95.990 l
+563.760 89.890 m
+563.760 66.110 l
S
[ ] 0 d
1 w
@@ -14332,7 +14840,7 @@ S
0.259 0.545 0.792 SCN
BT
-463.65600000000006 103.27300000000041 Td
+463.65600000000006 73.39300000000044 Td
/F1.0 10.5 Tf
<4c6f6f70> Tj
ET
@@ -14364,60 +14872,63 @@ Q
endstream
endobj
-98 0 obj
+97 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 97 0 R
+/Contents 96 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F1.0 8 0 R
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
/Annots [99 0 R 108 0 R]
>>
endobj
+98 0 obj
+[97 0 R /XYZ 0 792.0 null]
+endobj
99 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
-/Rect [463.65600000000006 699.1270000000001 488.7510000000001 713.407]
+/Rect [463.65600000000006 669.2470000000002 488.7510000000001 683.5270000000002]
/Type /Annot
>>
endobj
100 0 obj
-[98 0 R /XYZ 0 683.1600000000001 null]
+[97 0 R /XYZ 0 653.2800000000002 null]
endobj
101 0 obj
-[98 0 R /XYZ 0 626.8800000000002 null]
+[97 0 R /XYZ 0 597.0000000000003 null]
endobj
102 0 obj
-[98 0 R /XYZ 0 570.6000000000004 null]
+[97 0 R /XYZ 0 540.7200000000005 null]
endobj
103 0 obj
-[98 0 R /XYZ 0 530.5200000000004 null]
+[97 0 R /XYZ 0 500.6400000000005 null]
endobj
104 0 obj
-[98 0 R /XYZ 0 425.4000000000005 null]
+[97 0 R /XYZ 0 395.5200000000005 null]
endobj
105 0 obj
-[98 0 R /XYZ 0 334.5600000000005 null]
+[97 0 R /XYZ 0 304.6800000000005 null]
endobj
106 0 obj
-[98 0 R /XYZ 0 294.4800000000005 null]
+[97 0 R /XYZ 0 264.6000000000005 null]
endobj
107 0 obj
-[98 0 R /XYZ 0 189.36000000000044 null]
+[97 0 R /XYZ 0 159.48000000000047 null]
endobj
108 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
-/Rect [463.65600000000006 100.2070000000004 488.7510000000001 114.4870000000004]
+/Rect [463.65600000000006 70.32700000000044 488.7510000000001 84.60700000000044]
/Type /Annot
>>
endobj
@@ -15409,7 +15920,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
/Annots [118 0 R]
@@ -16883,7 +17394,7 @@ endobj
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
/Annots [125 0 R 130 0 R]
@@ -18218,7 +18729,7 @@ endobj
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
/Annots [137 0 R]
@@ -18248,8 +18759,8 @@ endobj
[133 0 R /XYZ 0 282.9600000000001 null]
endobj
140 0 obj
-<< /Limits [(_route89) (_version_information)]
-/Names [(_route89) 134 0 R (_route90) 94 0 R (_route91) 43 0 R (_route92) 58 0 R (_route93) 63 0 R (_route94) 49 0 R (_route95) 68 0 R (_route96) 77 0 R (_route97) 81 0 R (_route98) 205 0 R (_route99) 216 0 R (_service) 345 0 R (_uri_scheme) 27 0 R (_version_information) 25 0 R]
+<< /Limits [(_verb170) (_verb180)]
+/Names [(_verb170) 244 0 R (_verb171) 254 0 R (_verb172) 250 0 R (_verb173) 43 0 R (_verb174) 58 0 R (_verb175) 63 0 R (_verb176) 49 0 R (_verb177) 68 0 R (_verb178) 77 0 R (_verb179) 81 0 R (_verb180) 227 0 R]
>>
endobj
141 0 obj
@@ -19679,7 +20190,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
/Annots [145 0 R 151 0 R 158 0 R]
@@ -19707,7 +20218,7 @@ endobj
endobj
150 0 obj
<< /Limits [(_responses_2) (_responses_28)]
-/Names [(_responses_2) 37 0 R (_responses_20) 142 0 R (_responses_21) 149 0 R (_responses_22) 157 0 R (_responses_23) 164 0 R (_responses_24) 170 0 R (_responses_25) 179 0 R (_responses_26) 188 0 R (_responses_27) 194 0 R (_responses_28) 201 0 R]
+/Names [(_responses_2) 37 0 R (_responses_20) 142 0 R (_responses_21) 149 0 R (_responses_22) 157 0 R (_responses_23) 164 0 R (_responses_24) 170 0 R (_responses_25) 179 0 R (_responses_26) 188 0 R (_responses_27) 194 0 R (_responses_28) 198 0 R]
>>
endobj
151 0 obj
@@ -19723,7 +20234,7 @@ endobj
endobj
153 0 obj
<< /Limits [(_produces_19) (_produces_27)]
-/Names [(_produces_19) 146 0 R (_produces_2) 38 0 R (_produces_20) 152 0 R (_produces_21) 161 0 R (_produces_22) 166 0 R (_produces_23) 175 0 R (_produces_24) 182 0 R (_produces_25) 191 0 R (_produces_26) 196 0 R (_produces_27) 204 0 R]
+/Names [(_produces_19) 146 0 R (_produces_2) 38 0 R (_produces_20) 152 0 R (_produces_21) 161 0 R (_produces_22) 166 0 R (_produces_23) 175 0 R (_produces_24) 182 0 R (_produces_25) 191 0 R (_produces_26) 196 0 R (_produces_27) 202 0 R]
>>
endobj
154 0 obj
@@ -19734,7 +20245,7 @@ endobj
endobj
156 0 obj
<< /Limits [(_parameters_15) (_parameters_23)]
-/Names [(_parameters_15) 148 0 R (_parameters_16) 155 0 R (_parameters_17) 163 0 R (_parameters_18) 168 0 R (_parameters_19) 177 0 R (_parameters_2) 64 0 R (_parameters_20) 184 0 R (_parameters_21) 193 0 R (_parameters_22) 198 0 R (_parameters_23) 211 0 R]
+/Names [(_parameters_15) 148 0 R (_parameters_16) 155 0 R (_parameters_17) 163 0 R (_parameters_18) 168 0 R (_parameters_19) 177 0 R (_parameters_2) 64 0 R (_parameters_20) 184 0 R (_parameters_21) 193 0 R (_parameters_22) 204 0 R (_parameters_23) 209 0 R]
>>
endobj
157 0 obj
@@ -21094,7 +21605,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
/Annots [165 0 R 169 0 R 171 0 R]
@@ -22396,7 +22907,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
/Annots [178 0 R 180 0 R 185 0 R]
@@ -22451,7 +22962,7 @@ endobj
>>
endobj
186 0 obj
-<< /Length 16279
+<< /Length 16332
>>
stream
q
@@ -23362,7 +23873,7 @@ ET
BT
48.24000000000001 210.6960000000004 Td
/F2.0 18 Tf
-[<322e32382e20504f53> 20.01953125 <54202f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c73>] TJ
+<322e32382e20474554202f76322f706f6c6963696573> Tj
ET
0.000 0.000 0.000 SCN
@@ -23373,57 +23884,57 @@ ET
BT
48.24000000000001 176.45600000000036 Td
/F2.0 13 Tf
-[<322e32382e312e20506172> 20.01953125 <616d6574657273>] TJ
+<322e32382e312e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 138.480 114.560 23.280 re
+48.240 124.200 51.552 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 138.480 171.840 23.280 re
+99.792 124.200 360.864 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 138.480 229.120 23.280 re
+460.656 124.200 103.104 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 100.920 114.560 37.560 re
+48.240 100.920 51.552 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 100.920 171.840 37.560 re
+99.792 100.920 360.864 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 100.920 229.120 37.560 re
+460.656 100.920 103.104 23.280 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
48.240 161.760 m
-162.800 161.760 l
+99.792 161.760 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 138.480 m
-162.800 138.480 l
+48.240 124.200 m
+99.792 124.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
48.240 162.010 m
-48.240 137.730 l
+48.240 123.450 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 162.010 m
-162.800 137.730 l
+99.792 162.010 m
+99.792 123.450 l
S
[ ] 0 d
1 w
@@ -23433,32 +23944,39 @@ S
BT
51.24000000000001 146.01300000000037 Td
/F2.0 10.5 Tf
-<54797065> Tj
+<48545450> Tj
+ET
+
+
+BT
+51.24000000000001 131.73300000000037 Td
+/F2.0 10.5 Tf
+<436f6465> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 161.760 m
-334.640 161.760 l
+99.792 161.760 m
+460.656 161.760 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-162.800 138.480 m
-334.640 138.480 l
+99.792 124.200 m
+460.656 124.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 162.010 m
-162.800 137.730 l
+99.792 162.010 m
+99.792 123.450 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 162.010 m
-334.640 137.730 l
+460.656 162.010 m
+460.656 123.450 l
S
[ ] 0 d
1 w
@@ -23466,34 +23984,34 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 146.01300000000037 Td
+102.792 146.01300000000037 Td
/F2.0 10.5 Tf
-<4e616d65> Tj
+<4465736372697074696f6e> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 161.760 m
+460.656 161.760 m
563.760 161.760 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-334.640 138.480 m
-563.760 138.480 l
+460.656 124.200 m
+563.760 124.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 162.010 m
-334.640 137.730 l
+460.656 162.010 m
+460.656 123.450 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
563.760 162.010 m
-563.760 137.730 l
+563.760 123.450 l
S
[ ] 0 d
1 w
@@ -23501,7 +24019,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 146.01300000000037 Td
+463.65600000000006 146.01300000000037 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -23509,26 +24027,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 138.480 m
-162.800 138.480 l
+48.240 124.200 m
+99.792 124.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
48.240 100.920 m
-162.800 100.920 l
+99.792 100.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 138.730 m
+48.240 124.450 m
48.240 100.670 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 138.730 m
-162.800 100.670 l
+99.792 124.450 m
+99.792 100.670 l
S
[ ] 0 d
1 w
@@ -23536,34 +24054,34 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 115.09300000000037 Td
+51.24000000000001 107.95300000000036 Td
/F2.0 10.5 Tf
-<426f6479> Tj
+<323030> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 138.480 m
-334.640 138.480 l
+99.792 124.200 m
+460.656 124.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 100.920 m
-334.640 100.920 l
+99.792 100.920 m
+460.656 100.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 138.730 m
-162.800 100.670 l
+99.792 124.450 m
+99.792 100.670 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 138.730 m
-334.640 100.670 l
+460.656 124.450 m
+460.656 100.670 l
S
[ ] 0 d
1 w
@@ -23571,58 +24089,54 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 122.23300000000037 Td
-/F2.0 10.5 Tf
-<626f6479> Tj
-ET
-
-
-BT
-165.79988544000003 107.95300000000037 Td
-ET
-
-
-BT
-165.79988544000003 107.95300000000037 Td
-/F3.0 10.5 Tf
-<7265717569726564> Tj
+102.792 107.95300000000036 Td
+/F1.0 10.5 Tf
+<4f75747075742074797065> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 138.480 m
-563.760 138.480 l
+460.656 124.200 m
+563.760 124.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 100.920 m
+460.656 100.920 m
563.760 100.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 138.730 m
-334.640 100.670 l
+460.656 124.450 m
+460.656 100.670 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 138.730 m
+563.760 124.450 m
563.760 100.670 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
-337.6397136 115.09300000000037 Td
+463.65600000000006 107.95300000000036 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<4a736f6e4f626a656374> Tj
ET
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
q
0.000 0.000 0.000 scn
@@ -23659,10 +24173,10 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [189 0 R 195 0 R]
+/Annots [189 0 R 195 0 R 199 0 R]
>>
endobj
188 0 obj
@@ -23709,7 +24223,15 @@ endobj
[187 0 R /XYZ 0 194.0400000000004 null]
endobj
199 0 obj
-<< /Length 15184
+<< /Border [0 0 0]
+/Dest (_jsonobject)
+/Subtype /Link
+/Rect [463.65600000000006 104.88700000000036 516.807 119.16700000000036]
+/Type /Annot
+>>
+endobj
+200 0 obj
+<< /Length 13991
>>
stream
q
@@ -23721,57 +24243,105 @@ q
BT
48.24 740.816 Td
/F2.0 13 Tf
-<322e32382e322e20526573706f6e736573> Tj
+<322e32382e322e2050726f6475636573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+-0.500 Tc
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+56.88050000000001 714.1560000000001 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+0.000 Tc
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+66.24000000000001 716.3400000000001 Td
+/F4.0 10.5 Tf
+<6170706c69636174696f6e2f6a736f6e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 678.6960000000001 Td
+/F2.0 18 Tf
+[<322e32392e20505554202f76322f706f6c69636965732f7064704465706c6f> 20.01953125 <796d656e74>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 644.4560000000002 Td
+/F2.0 13 Tf
+[<322e32392e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 688.560 51.552 37.560 re
+48.240 606.480 114.560 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 688.560 360.864 37.560 re
+162.800 606.480 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 688.560 103.104 37.560 re
+334.640 606.480 229.120 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 665.280 51.552 23.280 re
+48.240 568.920 114.560 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 665.280 360.864 23.280 re
+162.800 568.920 171.840 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 665.280 103.104 23.280 re
+334.640 568.920 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 726.120 m
-99.792 726.120 l
+48.240 629.760 m
+162.800 629.760 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 688.560 m
-99.792 688.560 l
+48.240 606.480 m
+162.800 606.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 726.370 m
-48.240 687.810 l
+48.240 630.010 m
+48.240 605.730 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 726.370 m
-99.792 687.810 l
+162.800 630.010 m
+162.800 605.730 l
S
[ ] 0 d
1 w
@@ -23779,41 +24349,34 @@ S
0.200 0.200 0.200 scn
BT
-51.24 710.373 Td
-/F2.0 10.5 Tf
-<48545450> Tj
-ET
-
-
-BT
-51.24 696.0930000000001 Td
+51.24000000000001 614.0130000000003 Td
/F2.0 10.5 Tf
-<436f6465> Tj
+<54797065> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 726.120 m
-460.656 726.120 l
+162.800 629.760 m
+334.640 629.760 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-99.792 688.560 m
-460.656 688.560 l
+162.800 606.480 m
+334.640 606.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 726.370 m
-99.792 687.810 l
+162.800 630.010 m
+162.800 605.730 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 726.370 m
-460.656 687.810 l
+334.640 630.010 m
+334.640 605.730 l
S
[ ] 0 d
1 w
@@ -23821,34 +24384,34 @@ S
0.200 0.200 0.200 scn
BT
-102.792 710.373 Td
+165.79988544000003 614.0130000000003 Td
/F2.0 10.5 Tf
-<4465736372697074696f6e> Tj
+<4e616d65> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 726.120 m
-563.760 726.120 l
+334.640 629.760 m
+563.760 629.760 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-460.656 688.560 m
-563.760 688.560 l
+334.640 606.480 m
+563.760 606.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 726.370 m
-460.656 687.810 l
+334.640 630.010 m
+334.640 605.730 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 726.370 m
-563.760 687.810 l
+563.760 630.010 m
+563.760 605.730 l
S
[ ] 0 d
1 w
@@ -23856,7 +24419,7 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 710.373 Td
+337.6397136 614.0130000000003 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -23864,26 +24427,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 688.560 m
-99.792 688.560 l
+48.240 606.480 m
+162.800 606.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 665.280 m
-99.792 665.280 l
+48.240 568.920 m
+162.800 568.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 688.810 m
-48.240 665.030 l
+48.240 606.730 m
+48.240 568.670 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 688.810 m
-99.792 665.030 l
+162.800 606.730 m
+162.800 568.670 l
S
[ ] 0 d
1 w
@@ -23891,34 +24454,34 @@ S
0.200 0.200 0.200 scn
BT
-51.24 672.3130000000001 Td
+51.24000000000001 583.0930000000003 Td
/F2.0 10.5 Tf
-<323030> Tj
+<426f6479> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 688.560 m
-460.656 688.560 l
+162.800 606.480 m
+334.640 606.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 665.280 m
-460.656 665.280 l
+162.800 568.920 m
+334.640 568.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 688.810 m
-99.792 665.030 l
+162.800 606.730 m
+162.800 568.670 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 688.810 m
-460.656 665.030 l
+334.640 606.730 m
+334.640 568.670 l
S
[ ] 0 d
1 w
@@ -23926,34 +24489,46 @@ S
0.200 0.200 0.200 scn
BT
-102.792 672.3130000000001 Td
-/F1.0 10.5 Tf
-<4f75747075742074797065> Tj
+165.79988544000003 590.2330000000004 Td
+/F2.0 10.5 Tf
+<626f6479> Tj
+ET
+
+
+BT
+165.79988544000003 575.9530000000003 Td
+ET
+
+
+BT
+165.79988544000003 575.9530000000003 Td
+/F3.0 10.5 Tf
+<7265717569726564> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 688.560 m
-563.760 688.560 l
+334.640 606.480 m
+563.760 606.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 665.280 m
-563.760 665.280 l
+334.640 568.920 m
+563.760 568.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 688.810 m
-460.656 665.030 l
+334.640 606.730 m
+334.640 568.670 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 688.810 m
-563.760 665.030 l
+563.760 606.730 m
+563.760 568.670 l
S
[ ] 0 d
1 w
@@ -23967,9 +24542,9 @@ S
0.259 0.545 0.792 SCN
BT
-463.65600000000006 672.3130000000001 Td
+337.6397136 583.0930000000003 Td
/F1.0 10.5 Tf
-<506f6c6963794d6f64656c> Tj
+<4a736f6e456c656d656e74> Tj
ET
0.000 0.000 0.000 SCN
@@ -23979,46 +24554,176 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24 635.6960000000003 Td
+48.24000000000001 539.3360000000004 Td
/F2.0 13 Tf
-<322e32382e332e20436f6e73756d6573> Tj
+<322e32392e322e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
-
--0.500 Tc
+1.000 1.000 1.000 scn
+48.240 501.360 171.840 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+220.080 501.360 343.680 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 478.080 171.840 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+220.080 478.080 343.680 23.280 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 524.640 m
+220.080 524.640 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 501.360 m
+220.080 501.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 524.890 m
+48.240 500.610 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 524.890 m
+220.080 500.610 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
BT
-56.88050000000001 609.0360000000003 Td
-/F1.0 10.5 Tf
-<a5> Tj
+51.24000000000001 508.8930000000004 Td
+/F2.0 10.5 Tf
+<4854545020436f6465> Tj
ET
-0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 524.640 m
+563.760 524.640 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+220.080 501.360 m
+563.760 501.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 524.890 m
+220.080 500.610 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 524.890 m
+563.760 500.610 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
-0.000 Tc
-0.694 0.129 0.275 scn
-0.694 0.129 0.275 SCN
+BT
+223.07982816 508.8930000000004 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 501.360 m
+220.080 501.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 478.080 m
+220.080 478.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 501.610 m
+48.240 477.830 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 501.610 m
+220.080 477.830 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
BT
-66.24000000000001 611.2200000000004 Td
-/F4.0 10.5 Tf
-<706c61696e2f74657874> Tj
+51.24000000000001 485.11300000000045 Td
+/F2.0 10.5 Tf
+<323030> Tj
ET
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 501.360 m
+563.760 501.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 478.080 m
+563.760 478.080 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 501.610 m
+220.080 477.830 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 501.610 m
+563.760 477.830 l
+S
+[ ] 0 d
+1 w
0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+223.07982816 485.11300000000045 Td
+/F1.0 10.5 Tf
+<4e6f20436f6e74656e74> Tj
+ET
+
0.000 0.000 0.000 scn
0.200 0.200 0.200 scn
0.200 0.200 0.200 SCN
BT
-48.24000000000001 579.4160000000004 Td
+48.24000000000001 448.4960000000005 Td
/F2.0 13 Tf
-<322e32382e342e2050726f6475636573> Tj
+<322e32392e332e20436f6e73756d6573> Tj
ET
0.000 0.000 0.000 SCN
@@ -24029,7 +24734,7 @@ ET
0.200 0.200 0.200 SCN
BT
-56.88050000000001 552.7560000000004 Td
+56.88050000000001 421.83600000000047 Td
/F1.0 10.5 Tf
<a5> Tj
ET
@@ -24042,7 +24747,7 @@ ET
0.694 0.129 0.275 SCN
BT
-66.24000000000001 554.9400000000005 Td
+66.24000000000001 424.0200000000005 Td
/F4.0 10.5 Tf
<6170706c69636174696f6e2f6a736f6e> Tj
ET
@@ -24053,9 +24758,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 517.2960000000005 Td
+48.24000000000001 386.3760000000005 Td
/F2.0 18 Tf
-[<322e32392e20474554202f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c73>] TJ
+[<322e33302e20504f53> 20.01953125 <54202f76322f706f6c69636965732f706f6c69637974797065>] TJ
ET
0.000 0.000 0.000 SCN
@@ -24064,59 +24769,59 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 483.0560000000005 Td
+48.24000000000001 352.1360000000004 Td
/F2.0 13 Tf
-<322e32392e312e20526573706f6e736573> Tj
+[<322e33302e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 430.800 51.552 37.560 re
+48.240 314.160 114.560 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 430.800 360.864 37.560 re
+162.800 314.160 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 430.800 103.104 37.560 re
+334.640 314.160 229.120 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 407.520 51.552 23.280 re
+48.240 276.600 114.560 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 407.520 360.864 23.280 re
+162.800 276.600 171.840 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 407.520 103.104 23.280 re
+334.640 276.600 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 468.360 m
-99.792 468.360 l
+48.240 337.440 m
+162.800 337.440 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 430.800 m
-99.792 430.800 l
+48.240 314.160 m
+162.800 314.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 468.610 m
-48.240 430.050 l
+48.240 337.690 m
+48.240 313.410 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 468.610 m
-99.792 430.050 l
+162.800 337.690 m
+162.800 313.410 l
S
[ ] 0 d
1 w
@@ -24124,41 +24829,69 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 452.61300000000045 Td
+51.24000000000001 321.6930000000004 Td
/F2.0 10.5 Tf
-<48545450> Tj
+<54797065> Tj
ET
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 337.440 m
+334.640 337.440 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+162.800 314.160 m
+334.640 314.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 337.690 m
+162.800 313.410 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 337.690 m
+334.640 313.410 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
BT
-51.24000000000001 438.3330000000004 Td
+165.79988544000003 321.6930000000004 Td
/F2.0 10.5 Tf
-<436f6465> Tj
+<4e616d65> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 468.360 m
-460.656 468.360 l
+334.640 337.440 m
+563.760 337.440 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-99.792 430.800 m
-460.656 430.800 l
+334.640 314.160 m
+563.760 314.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 468.610 m
-99.792 430.050 l
+334.640 337.690 m
+334.640 313.410 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 468.610 m
-460.656 430.050 l
+563.760 337.690 m
+563.760 313.410 l
S
[ ] 0 d
1 w
@@ -24166,34 +24899,34 @@ S
0.200 0.200 0.200 scn
BT
-102.792 452.61300000000045 Td
+337.6397136 321.6930000000004 Td
/F2.0 10.5 Tf
-<4465736372697074696f6e> Tj
+<536368656d61> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 468.360 m
-563.760 468.360 l
+48.240 314.160 m
+162.800 314.160 l
S
[ ] 0 d
-1.5 w
+0.5 w
0.867 0.867 0.867 SCN
-460.656 430.800 m
-563.760 430.800 l
+48.240 276.600 m
+162.800 276.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 468.610 m
-460.656 430.050 l
+48.240 314.410 m
+48.240 276.350 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 468.610 m
-563.760 430.050 l
+162.800 314.410 m
+162.800 276.350 l
S
[ ] 0 d
1 w
@@ -24201,34 +24934,34 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 452.61300000000045 Td
+51.24000000000001 290.7730000000004 Td
/F2.0 10.5 Tf
-<536368656d61> Tj
+<426f6479> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 430.800 m
-99.792 430.800 l
+162.800 314.160 m
+334.640 314.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 407.520 m
-99.792 407.520 l
+162.800 276.600 m
+334.640 276.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 431.050 m
-48.240 407.270 l
+162.800 314.410 m
+162.800 276.350 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 431.050 m
-99.792 407.270 l
+334.640 314.410 m
+334.640 276.350 l
S
[ ] 0 d
1 w
@@ -24236,34 +24969,46 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 414.55300000000045 Td
+165.79988544000003 297.9130000000004 Td
/F2.0 10.5 Tf
-<323030> Tj
+<626f6479> Tj
+ET
+
+
+BT
+165.79988544000003 283.6330000000004 Td
+ET
+
+
+BT
+165.79988544000003 283.6330000000004 Td
+/F3.0 10.5 Tf
+<7265717569726564> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 430.800 m
-460.656 430.800 l
+334.640 314.160 m
+563.760 314.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 407.520 m
-460.656 407.520 l
+334.640 276.600 m
+563.760 276.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 431.050 m
-99.792 407.270 l
+334.640 314.410 m
+334.640 276.350 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 431.050 m
-460.656 407.270 l
+563.760 314.410 m
+563.760 276.350 l
S
[ ] 0 d
1 w
@@ -24271,62 +25016,186 @@ S
0.200 0.200 0.200 scn
BT
-102.792 414.55300000000045 Td
+337.6397136 290.7730000000004 Td
/F1.0 10.5 Tf
-<4f75747075742074797065> Tj
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 247.01600000000042 Td
+/F2.0 13 Tf
+<322e33302e322e20526573706f6e736573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 209.040 171.840 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+220.080 209.040 343.680 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 185.760 171.840 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+220.080 185.760 343.680 23.280 re
+f
+0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 430.800 m
-563.760 430.800 l
+48.240 232.320 m
+220.080 232.320 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 209.040 m
+220.080 209.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 407.520 m
-563.760 407.520 l
+48.240 232.570 m
+48.240 208.290 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 431.050 m
-460.656 407.270 l
+220.080 232.570 m
+220.080 208.290 l
S
[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24000000000001 216.57300000000043 Td
+/F2.0 10.5 Tf
+<4854545020436f6465> Tj
+ET
+
+0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-563.760 431.050 m
-563.760 407.270 l
+220.080 232.320 m
+563.760 232.320 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+220.080 209.040 m
+563.760 209.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 232.570 m
+220.080 208.290 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 232.570 m
+563.760 208.290 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
+
+BT
+223.07982816 216.57300000000043 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 209.040 m
+220.080 209.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 185.760 m
+220.080 185.760 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 209.290 m
+48.240 185.510 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 209.290 m
+220.080 185.510 l
+S
+[ ] 0 d
+1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
-463.65600000000006 414.55300000000045 Td
-/F1.0 10.5 Tf
-<506f6c6963794d6f64656c> Tj
+51.24000000000001 192.79300000000043 Td
+/F2.0 10.5 Tf
+<323030> Tj
ET
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 209.040 m
+563.760 209.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 185.760 m
+563.760 185.760 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 209.290 m
+220.080 185.510 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 209.290 m
+563.760 185.510 l
+S
+[ ] 0 d
+1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+
+BT
+223.07982816 192.79300000000043 Td
+/F1.0 10.5 Tf
+<4e6f20436f6e74656e74> Tj
+ET
+
0.000 0.000 0.000 scn
0.200 0.200 0.200 scn
0.200 0.200 0.200 SCN
BT
-48.24000000000001 377.93600000000043 Td
+48.24000000000001 156.17600000000039 Td
/F2.0 13 Tf
-<322e32392e322e2050726f6475636573> Tj
+<322e33302e332e20436f6e73756d6573> Tj
ET
0.000 0.000 0.000 SCN
@@ -24337,7 +25206,7 @@ ET
0.200 0.200 0.200 SCN
BT
-56.88050000000001 351.2760000000004 Td
+56.88050000000001 129.5160000000004 Td
/F1.0 10.5 Tf
<a5> Tj
ET
@@ -24350,20 +25219,103 @@ ET
0.694 0.129 0.275 SCN
BT
-66.24000000000001 353.46000000000043 Td
+66.24000000000001 131.7000000000004 Td
/F4.0 10.5 Tf
-<6170706c69636174696f6e2f6a736f6e> Tj
+<706c61696e2f74657874> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
+q
+0.000 0.000 0.000 scn
+0.000 0.000 0.000 SCN
+1 w
+0 J
+0 j
+[ ] 0 d
+/Stamp1 Do
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.698 14.388 Td
+/F1.0 9 Tf
+<3135> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+Q
+Q
+
+endstream
+endobj
+201 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 612.0 792.0]
+/Contents 200 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F2.0 24 0 R
+/F1.0 8 0 R
+/F4.0 35 0 R
+/F3.0 26 0 R
+>>
+/XObject << /Stamp1 717 0 R
+>>
+>>
+/Annots [205 0 R]
+>>
+endobj
+202 0 obj
+[201 0 R /XYZ 0 792.0 null]
+endobj
+203 0 obj
+[201 0 R /XYZ 0 702.1200000000001 null]
+endobj
+204 0 obj
+[201 0 R /XYZ 0 662.0400000000002 null]
+endobj
+205 0 obj
+<< /Border [0 0 0]
+/Dest (_jsonelement)
+/Subtype /Link
+/Rect [337.6397136 580.0270000000004 400.3562136 594.3070000000004]
+/Type /Annot
+>>
+endobj
+206 0 obj
+[201 0 R /XYZ 0 556.9200000000003 null]
+endobj
+207 0 obj
+[201 0 R /XYZ 0 466.0800000000005 null]
+endobj
+208 0 obj
+[201 0 R /XYZ 0 409.80000000000047 null]
+endobj
+209 0 obj
+[201 0 R /XYZ 0 369.7200000000004 null]
+endobj
+210 0 obj
+[201 0 R /XYZ 0 264.6000000000004 null]
+endobj
+211 0 obj
+[201 0 R /XYZ 0 173.76000000000042 null]
+endobj
+212 0 obj
+<< /Length 16494
+>>
+stream
+q
+/DeviceRGB cs
0.200 0.200 0.200 scn
+/DeviceRGB CS
0.200 0.200 0.200 SCN
BT
-48.24000000000001 315.81600000000043 Td
+48.24 734.976 Td
/F2.0 18 Tf
-<322e33302e20474554> Tj
+[<322e33312e20504f53> 20.01953125 <54>] TJ
ET
0.000 0.000 0.000 SCN
@@ -24372,9 +25324,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 287.73600000000044 Td
+48.24 706.8960000000001 Td
/F2.0 18 Tf
-[<2f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c732f79616d6c2f7b706f6c6963794d6f64656c547970657d2f7b706f6c696379>] TJ
+[<2f76322f706f6c69636965732f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c56> 60.05859375 <657273696f6e7d2f7b70>] TJ
ET
0.000 0.000 0.000 SCN
@@ -24383,9 +25335,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 259.6560000000004 Td
+48.24 678.816 Td
/F2.0 18 Tf
-[<4d6f64656c56> 60.05859375 <657273696f6e7d>] TJ
+[<6f6c6963794e616d657d2f7b706f6c69637956> 60.05859375 <657273696f6e7d>] TJ
ET
0.000 0.000 0.000 SCN
@@ -24394,71 +25346,107 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 225.4160000000004 Td
+48.24 644.5760000000001 Td
/F2.0 13 Tf
-[<322e33302e312e20506172> 20.01953125 <616d6574657273>] TJ
+[<322e33312e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 187.440 114.560 23.280 re
+48.240 606.600 114.560 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 187.440 171.840 23.280 re
+162.800 606.600 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 187.440 229.120 23.280 re
+334.640 606.600 229.120 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 149.880 114.560 37.560 re
+48.240 569.040 114.560 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 149.880 171.840 37.560 re
+162.800 569.040 171.840 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 149.880 229.120 37.560 re
+334.640 569.040 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 112.320 114.560 37.560 re
+48.240 531.480 114.560 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-162.800 112.320 171.840 37.560 re
+162.800 531.480 171.840 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-334.640 112.320 229.120 37.560 re
+334.640 531.480 229.120 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 493.920 114.560 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+162.800 493.920 171.840 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+334.640 493.920 229.120 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 456.360 114.560 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+162.800 456.360 171.840 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+334.640 456.360 229.120 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 418.800 114.560 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+162.800 418.800 171.840 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+334.640 418.800 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 210.720 m
-162.800 210.720 l
+48.240 629.880 m
+162.800 629.880 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 187.440 m
-162.800 187.440 l
+48.240 606.600 m
+162.800 606.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 210.970 m
-48.240 186.690 l
+48.240 630.130 m
+48.240 605.850 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 210.970 m
-162.800 186.690 l
+162.800 630.130 m
+162.800 605.850 l
S
[ ] 0 d
1 w
@@ -24466,7 +25454,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 194.9730000000004 Td
+51.24 614.1330000000002 Td
/F2.0 10.5 Tf
<54797065> Tj
ET
@@ -24474,26 +25462,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 210.720 m
-334.640 210.720 l
+162.800 629.880 m
+334.640 629.880 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-162.800 187.440 m
-334.640 187.440 l
+162.800 606.600 m
+334.640 606.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 210.970 m
-162.800 186.690 l
+162.800 630.130 m
+162.800 605.850 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 210.970 m
-334.640 186.690 l
+334.640 630.130 m
+334.640 605.850 l
S
[ ] 0 d
1 w
@@ -24501,7 +25489,7 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 194.9730000000004 Td
+165.79988544 614.1330000000002 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -24509,26 +25497,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 210.720 m
-563.760 210.720 l
+334.640 629.880 m
+563.760 629.880 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-334.640 187.440 m
-563.760 187.440 l
+334.640 606.600 m
+563.760 606.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 210.970 m
-334.640 186.690 l
+334.640 630.130 m
+334.640 605.850 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 210.970 m
-563.760 186.690 l
+563.760 630.130 m
+563.760 605.850 l
S
[ ] 0 d
1 w
@@ -24536,7 +25524,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 194.9730000000004 Td
+337.6397136 614.1330000000002 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -24544,26 +25532,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 187.440 m
-162.800 187.440 l
+48.240 606.600 m
+162.800 606.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 149.880 m
-162.800 149.880 l
+48.240 569.040 m
+162.800 569.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 187.690 m
-48.240 149.630 l
+48.240 606.850 m
+48.240 568.790 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 187.690 m
-162.800 149.630 l
+162.800 606.850 m
+162.800 568.790 l
S
[ ] 0 d
1 w
@@ -24571,7 +25559,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 164.0530000000004 Td
+51.24 583.2130000000002 Td
/F2.0 10.5 Tf
<50617468> Tj
ET
@@ -24579,26 +25567,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 187.440 m
-334.640 187.440 l
+162.800 606.600 m
+334.640 606.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 149.880 m
-334.640 149.880 l
+162.800 569.040 m
+334.640 569.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 187.690 m
-162.800 149.630 l
+162.800 606.850 m
+162.800 568.790 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 187.690 m
-334.640 149.630 l
+334.640 606.850 m
+334.640 568.790 l
S
[ ] 0 d
1 w
@@ -24606,19 +25594,19 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 171.1930000000004 Td
+165.79988544 590.3530000000003 Td
/F2.0 10.5 Tf
<706f6c6963794d6f64656c54797065> Tj
ET
BT
-165.79988544000003 156.9130000000004 Td
+165.79988544 576.0730000000002 Td
ET
BT
-165.79988544000003 156.9130000000004 Td
+165.79988544 576.0730000000002 Td
/F3.0 10.5 Tf
<7265717569726564> Tj
ET
@@ -24626,26 +25614,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 187.440 m
-563.760 187.440 l
+334.640 606.600 m
+563.760 606.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 149.880 m
-563.760 149.880 l
+334.640 569.040 m
+563.760 569.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 187.690 m
-334.640 149.630 l
+334.640 606.850 m
+334.640 568.790 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 187.690 m
-563.760 149.630 l
+563.760 606.850 m
+563.760 568.790 l
S
[ ] 0 d
1 w
@@ -24653,7 +25641,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 164.0530000000004 Td
+337.6397136 583.2130000000002 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -24661,26 +25649,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 149.880 m
-162.800 149.880 l
+48.240 569.040 m
+162.800 569.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 112.320 m
-162.800 112.320 l
+48.240 531.480 m
+162.800 531.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 150.130 m
-48.240 112.070 l
+48.240 569.290 m
+48.240 531.230 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 150.130 m
-162.800 112.070 l
+162.800 569.290 m
+162.800 531.230 l
S
[ ] 0 d
1 w
@@ -24688,7 +25676,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 126.49300000000041 Td
+51.24 545.6530000000001 Td
/F2.0 10.5 Tf
<50617468> Tj
ET
@@ -24696,26 +25684,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 149.880 m
-334.640 149.880 l
+162.800 569.040 m
+334.640 569.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 112.320 m
-334.640 112.320 l
+162.800 531.480 m
+334.640 531.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 150.130 m
-162.800 112.070 l
+162.800 569.290 m
+162.800 531.230 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 150.130 m
-334.640 112.070 l
+334.640 569.290 m
+334.640 531.230 l
S
[ ] 0 d
1 w
@@ -24723,19 +25711,19 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 133.6330000000004 Td
+165.79988544 552.7930000000001 Td
/F2.0 10.5 Tf
[<706f6c6963794d6f64656c56> 60.05859375 <657273696f6e>] TJ
ET
BT
-165.79988544000003 119.3530000000004 Td
+165.79988544 538.5130000000001 Td
ET
BT
-165.79988544000003 119.3530000000004 Td
+165.79988544 538.5130000000001 Td
/F3.0 10.5 Tf
<7265717569726564> Tj
ET
@@ -24743,26 +25731,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 149.880 m
-563.760 149.880 l
+334.640 569.040 m
+563.760 569.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 112.320 m
-563.760 112.320 l
+334.640 531.480 m
+563.760 531.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 150.130 m
-334.640 112.070 l
+334.640 569.290 m
+334.640 531.230 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 150.130 m
-563.760 112.070 l
+563.760 569.290 m
+563.760 531.230 l
S
[ ] 0 d
1 w
@@ -24770,165 +25758,428 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 126.49300000000041 Td
+337.6397136 545.6530000000001 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 531.480 m
+162.800 531.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 493.920 m
+162.800 493.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 531.730 m
+48.240 493.670 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 531.730 m
+162.800 493.670 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
BT
-48.24000000000001 82.73600000000039 Td
-/F2.0 13 Tf
-<322e33302e322e20526573706f6e736573> Tj
+51.24 508.09300000000025 Td
+/F2.0 10.5 Tf
+<50617468> Tj
ET
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 531.480 m
+334.640 531.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 493.920 m
+334.640 493.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 531.730 m
+162.800 493.670 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 531.730 m
+334.640 493.670 l
+S
+[ ] 0 d
+1 w
0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+165.79988544 515.2330000000002 Td
+/F2.0 10.5 Tf
+<706f6c6963794e616d65> Tj
+ET
+
+
+BT
+165.79988544 500.9530000000002 Td
+ET
+
+
+BT
+165.79988544 500.9530000000002 Td
+/F3.0 10.5 Tf
+<7265717569726564> Tj
+ET
+
0.000 0.000 0.000 scn
-q
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 531.480 m
+563.760 531.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 493.920 m
+563.760 493.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 531.730 m
+334.640 493.670 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 531.730 m
+563.760 493.670 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+337.6397136 508.09300000000025 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 493.920 m
+162.800 493.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 456.360 m
+162.800 456.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 494.170 m
+48.240 456.110 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 494.170 m
+162.800 456.110 l
+S
+[ ] 0 d
+1 w
0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 470.5330000000002 Td
+/F2.0 10.5 Tf
+<50617468> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 493.920 m
+334.640 493.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 456.360 m
+334.640 456.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 494.170 m
+162.800 456.110 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 494.170 m
+334.640 456.110 l
+S
+[ ] 0 d
1 w
-0 J
-0 j
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+165.79988544 477.6730000000002 Td
+/F2.0 10.5 Tf
+[<706f6c69637956> 60.05859375 <657273696f6e>] TJ
+ET
+
+
+BT
+165.79988544 463.39300000000014 Td
+ET
+
+
+BT
+165.79988544 463.39300000000014 Td
+/F3.0 10.5 Tf
+<7265717569726564> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 493.920 m
+563.760 493.920 l
+S
[ ] 0 d
-/Stamp1 Do
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 456.360 m
+563.760 456.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 494.170 m
+334.640 456.110 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 494.170 m
+563.760 456.110 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
BT
-552.698 14.388 Td
-/F1.0 9 Tf
-<3135> Tj
+337.6397136 470.5330000000002 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
ET
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 456.360 m
+162.800 456.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 418.800 m
+162.800 418.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 456.610 m
+48.240 418.550 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 456.610 m
+162.800 418.550 l
+S
+[ ] 0 d
+1 w
0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 432.97300000000024 Td
+/F2.0 10.5 Tf
+<426f6479> Tj
+ET
+
0.000 0.000 0.000 scn
-Q
-Q
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 456.360 m
+334.640 456.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 418.800 m
+334.640 418.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 456.610 m
+162.800 418.550 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 456.610 m
+334.640 418.550 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
-endstream
-endobj
-200 0 obj
-<< /Type /Page
-/Parent 3 0 R
-/MediaBox [0 0 612.0 792.0]
-/Contents 199 0 R
-/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
-/Font << /F2.0 24 0 R
-/F1.0 8 0 R
-/F4.0 35 0 R
-/F3.0 26 0 R
->>
-/XObject << /Stamp1 676 0 R
->>
->>
-/Annots [202 0 R 207 0 R]
->>
-endobj
-201 0 obj
-[200 0 R /XYZ 0 792.0 null]
-endobj
-202 0 obj
-<< /Border [0 0 0]
-/Dest (_policymodel)
-/Subtype /Link
-/Rect [463.65600000000006 669.2470000000002 524.955 683.5270000000002]
-/Type /Annot
->>
-endobj
-203 0 obj
-[200 0 R /XYZ 0 653.2800000000002 null]
-endobj
-204 0 obj
-[200 0 R /XYZ 0 597.0000000000003 null]
-endobj
-205 0 obj
-[200 0 R /XYZ 0 540.7200000000005 null]
-endobj
-206 0 obj
-[200 0 R /XYZ 0 500.6400000000005 null]
-endobj
-207 0 obj
-<< /Border [0 0 0]
-/Dest (_policymodel)
-/Subtype /Link
-/Rect [463.65600000000006 411.4870000000005 524.955 425.76700000000045]
-/Type /Annot
->>
-endobj
-208 0 obj
-[200 0 R /XYZ 0 395.52000000000044 null]
-endobj
-209 0 obj
-[200 0 R /XYZ 0 339.2400000000004 null]
-endobj
-210 0 obj
-<< /Limits [(_responses_29) (_responses_5)]
-/Names [(_responses_29) 206 0 R (_responses_3) 40 0 R (_responses_30) 212 0 R (_responses_31) 218 0 R (_responses_32) 226 0 R (_responses_33) 231 0 R (_responses_34) 235 0 R (_responses_35) 242 0 R (_responses_4) 46 0 R (_responses_5) 52 0 R]
->>
-endobj
-211 0 obj
-[200 0 R /XYZ 0 243.00000000000043 null]
-endobj
-212 0 obj
-[200 0 R /XYZ 0 100.32000000000039 null]
-endobj
-213 0 obj
-<< /Length 14693
->>
-stream
-q
-/DeviceRGB cs
+BT
+165.79988544 440.1130000000002 Td
+/F2.0 10.5 Tf
+<626f6479> Tj
+ET
+
+
+BT
+165.79988544 425.8330000000002 Td
+ET
+
+
+BT
+165.79988544 425.8330000000002 Td
+/F3.0 10.5 Tf
+<7265717569726564> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 456.360 m
+563.760 456.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 418.800 m
+563.760 418.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 456.610 m
+334.640 418.550 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 456.610 m
+563.760 418.550 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+337.6397136 432.97300000000024 Td
+/F1.0 10.5 Tf
+<4a736f6e456c656d656e74> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 389.21600000000024 Td
+/F2.0 13 Tf
+<322e33312e322e20526573706f6e736573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 718.440 51.552 37.560 re
+48.240 336.960 51.552 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 718.440 360.864 37.560 re
+99.792 336.960 360.864 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 718.440 103.104 37.560 re
+460.656 336.960 103.104 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 695.160 51.552 23.280 re
+48.240 313.680 51.552 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 695.160 360.864 23.280 re
+99.792 313.680 360.864 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 695.160 103.104 23.280 re
+460.656 313.680 103.104 23.280 re
f
0.000 0.000 0.000 scn
0.5 w
-/DeviceRGB CS
0.867 0.867 0.867 SCN
-48.240 756.000 m
-99.792 756.000 l
+48.240 374.520 m
+99.792 374.520 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 718.440 m
-99.792 718.440 l
+48.240 336.960 m
+99.792 336.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 756.250 m
-48.240 717.690 l
+48.240 374.770 m
+48.240 336.210 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 756.250 m
-99.792 717.690 l
+99.792 374.770 m
+99.792 336.210 l
S
[ ] 0 d
1 w
@@ -24936,14 +26187,14 @@ S
0.200 0.200 0.200 scn
BT
-51.24 740.2529999999999 Td
+51.24 358.7730000000002 Td
/F2.0 10.5 Tf
<48545450> Tj
ET
BT
-51.24 725.973 Td
+51.24 344.49300000000017 Td
/F2.0 10.5 Tf
<436f6465> Tj
ET
@@ -24951,26 +26202,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 756.000 m
-460.656 756.000 l
+99.792 374.520 m
+460.656 374.520 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-99.792 718.440 m
-460.656 718.440 l
+99.792 336.960 m
+460.656 336.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 756.250 m
-99.792 717.690 l
+99.792 374.770 m
+99.792 336.210 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 756.250 m
-460.656 717.690 l
+460.656 374.770 m
+460.656 336.210 l
S
[ ] 0 d
1 w
@@ -24978,7 +26229,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 740.2529999999999 Td
+102.792 358.7730000000002 Td
/F2.0 10.5 Tf
<4465736372697074696f6e> Tj
ET
@@ -24986,26 +26237,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 756.000 m
-563.760 756.000 l
+460.656 374.520 m
+563.760 374.520 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-460.656 718.440 m
-563.760 718.440 l
+460.656 336.960 m
+563.760 336.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 756.250 m
-460.656 717.690 l
+460.656 374.770 m
+460.656 336.210 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 756.250 m
-563.760 717.690 l
+563.760 374.770 m
+563.760 336.210 l
S
[ ] 0 d
1 w
@@ -25013,7 +26264,7 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 740.2529999999999 Td
+463.65600000000006 358.7730000000002 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -25021,26 +26272,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 718.440 m
-99.792 718.440 l
+48.240 336.960 m
+99.792 336.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 695.160 m
-99.792 695.160 l
+48.240 313.680 m
+99.792 313.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 718.690 m
-48.240 694.910 l
+48.240 337.210 m
+48.240 313.430 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 718.690 m
-99.792 694.910 l
+99.792 337.210 m
+99.792 313.430 l
S
[ ] 0 d
1 w
@@ -25048,7 +26299,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24 702.193 Td
+51.24 320.7130000000002 Td
/F2.0 10.5 Tf
<323030> Tj
ET
@@ -25056,26 +26307,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 718.440 m
-460.656 718.440 l
+99.792 336.960 m
+460.656 336.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 695.160 m
-460.656 695.160 l
+99.792 313.680 m
+460.656 313.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 718.690 m
-99.792 694.910 l
+99.792 337.210 m
+99.792 313.430 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 718.690 m
-460.656 694.910 l
+460.656 337.210 m
+460.656 313.430 l
S
[ ] 0 d
1 w
@@ -25083,7 +26334,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 702.193 Td
+102.792 320.7130000000002 Td
/F1.0 10.5 Tf
<4f75747075742074797065> Tj
ET
@@ -25091,46 +26342,54 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 718.440 m
-563.760 718.440 l
+460.656 336.960 m
+563.760 336.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 695.160 m
-563.760 695.160 l
+460.656 313.680 m
+563.760 313.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 718.690 m
-460.656 694.910 l
+460.656 337.210 m
+460.656 313.430 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 718.690 m
-563.760 694.910 l
+563.760 337.210 m
+563.760 313.430 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
-463.65600000000006 702.193 Td
+463.65600000000006 320.7130000000002 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<4a736f6e4f626a656374> Tj
ET
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.200 0.200 0.200 scn
0.200 0.200 0.200 SCN
BT
-48.24 665.5760000000001 Td
+48.24 284.0960000000002 Td
/F2.0 13 Tf
-<322e33302e332e2050726f6475636573> Tj
+<322e33312e332e20436f6e73756d6573> Tj
ET
0.000 0.000 0.000 SCN
@@ -25141,7 +26400,7 @@ ET
0.200 0.200 0.200 SCN
BT
-56.88050000000001 638.9160000000002 Td
+56.88050000000001 257.43600000000015 Td
/F1.0 10.5 Tf
<a5> Tj
ET
@@ -25154,7 +26413,7 @@ ET
0.694 0.129 0.275 SCN
BT
-66.24000000000001 641.1000000000003 Td
+66.24000000000001 259.6200000000001 Td
/F4.0 10.5 Tf
<6170706c69636174696f6e2f6a736f6e> Tj
ET
@@ -25165,9 +26424,46 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 603.4560000000002 Td
+48.24000000000001 227.81600000000014 Td
+/F2.0 13 Tf
+<322e33312e342e2050726f6475636573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+-0.500 Tc
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+56.88050000000001 201.15600000000012 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+0.000 Tc
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+66.24000000000001 203.34000000000012 Td
+/F4.0 10.5 Tf
+<6170706c69636174696f6e2f6a736f6e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 165.69600000000008 Td
/F2.0 18 Tf
-<322e33312e20474554> Tj
+<322e33322e2044454c455445> Tj
ET
0.000 0.000 0.000 SCN
@@ -25176,9 +26472,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 575.3760000000003 Td
+48.24000000000001 137.6160000000001 Td
/F2.0 18 Tf
-[<2f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c732f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c>] TJ
+[<2f76322f706f6c69636965732f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c56> 60.05859375 <657273696f6e7d2f7b70>] TJ
ET
0.000 0.000 0.000 SCN
@@ -25187,82 +26483,193 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 547.2960000000003 Td
+48.24000000000001 109.5360000000001 Td
/F2.0 18 Tf
-[<56> 60.05859375 <657273696f6e7d>] TJ
+[<6f6c6963794e616d657d2f7b706f6c69637956> 60.05859375 <657273696f6e7d>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+q
+0.000 0.000 0.000 scn
+0.000 0.000 0.000 SCN
+1 w
+0 J
+0 j
+[ ] 0 d
+/Stamp1 Do
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+49.24 14.388 Td
+/F1.0 9 Tf
+<3136> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
+Q
+Q
+
+endstream
+endobj
+213 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 612.0 792.0]
+/Contents 212 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F2.0 24 0 R
+/F3.0 26 0 R
+/F1.0 8 0 R
+/F4.0 35 0 R
+>>
+/XObject << /Stamp1 717 0 R
+>>
+>>
+/Annots [216 0 R 219 0 R]
+>>
+endobj
+214 0 obj
+[213 0 R /XYZ 0 792.0 null]
+endobj
+215 0 obj
+[213 0 R /XYZ 0 662.1600000000001 null]
+endobj
+216 0 obj
+<< /Border [0 0 0]
+/Dest (_jsonelement)
+/Subtype /Link
+/Rect [337.6397136 429.9070000000002 400.3562136 444.18700000000024]
+/Type /Annot
+>>
+endobj
+217 0 obj
+[213 0 R /XYZ 0 406.80000000000024 null]
+endobj
+218 0 obj
+<< /Limits [(_responses_29) (_uri_scheme)]
+/Names [(_responses_29) 206 0 R (_responses_3) 40 0 R (_responses_30) 210 0 R (_responses_31) 217 0 R (_responses_32) 226 0 R (_responses_33) 228 0 R (_responses_34) 236 0 R (_responses_35) 241 0 R (_responses_36) 247 0 R (_responses_37) 252 0 R (_responses_38) 256 0 R (_responses_4) 46 0 R (_responses_5) 52 0 R (_responses_6) 59 0 R (_responses_7) 65 0 R (_responses_8) 71 0 R (_responses_9) 79 0 R (_service) 366 0 R (_uri_scheme) 27 0 R]
+>>
+endobj
+219 0 obj
+<< /Border [0 0 0]
+/Dest (_jsonobject)
+/Subtype /Link
+/Rect [463.65600000000006 317.6470000000002 516.807 331.9270000000002]
+/Type /Annot
+>>
+endobj
+220 0 obj
+[213 0 R /XYZ 0 301.6800000000002 null]
+endobj
+221 0 obj
+[213 0 R /XYZ 0 245.40000000000015 null]
+endobj
+222 0 obj
+[213 0 R /XYZ 0 189.12000000000012 null]
+endobj
+223 0 obj
+<< /Length 19197
+>>
+stream
+q
+/DeviceRGB cs
0.200 0.200 0.200 scn
+/DeviceRGB CS
0.200 0.200 0.200 SCN
BT
-48.24000000000001 513.0560000000004 Td
+48.24 740.816 Td
/F2.0 13 Tf
-[<322e33312e312e20506172> 20.01953125 <616d6574657273>] TJ
+[<322e33322e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 475.080 114.560 23.280 re
+48.240 702.840 114.560 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 475.080 171.840 23.280 re
+162.800 702.840 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 475.080 229.120 23.280 re
+334.640 702.840 229.120 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 437.520 114.560 37.560 re
+48.240 665.280 114.560 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 437.520 171.840 37.560 re
+162.800 665.280 171.840 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 437.520 229.120 37.560 re
+334.640 665.280 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 399.960 114.560 37.560 re
+48.240 627.720 114.560 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-162.800 399.960 171.840 37.560 re
+162.800 627.720 171.840 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+334.640 627.720 229.120 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 590.160 114.560 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+162.800 590.160 171.840 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+334.640 590.160 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-334.640 399.960 229.120 37.560 re
+48.240 552.600 114.560 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+162.800 552.600 171.840 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+334.640 552.600 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 498.360 m
-162.800 498.360 l
+48.240 726.120 m
+162.800 726.120 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 475.080 m
-162.800 475.080 l
+48.240 702.840 m
+162.800 702.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 498.610 m
-48.240 474.330 l
+48.240 726.370 m
+48.240 702.090 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 498.610 m
-162.800 474.330 l
+162.800 726.370 m
+162.800 702.090 l
S
[ ] 0 d
1 w
@@ -25270,7 +26677,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 482.61300000000034 Td
+51.24 710.373 Td
/F2.0 10.5 Tf
<54797065> Tj
ET
@@ -25278,26 +26685,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 498.360 m
-334.640 498.360 l
+162.800 726.120 m
+334.640 726.120 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-162.800 475.080 m
-334.640 475.080 l
+162.800 702.840 m
+334.640 702.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 498.610 m
-162.800 474.330 l
+162.800 726.370 m
+162.800 702.090 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 498.610 m
-334.640 474.330 l
+334.640 726.370 m
+334.640 702.090 l
S
[ ] 0 d
1 w
@@ -25305,7 +26712,7 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 482.61300000000034 Td
+165.79988544 710.373 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -25313,26 +26720,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 498.360 m
-563.760 498.360 l
+334.640 726.120 m
+563.760 726.120 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-334.640 475.080 m
-563.760 475.080 l
+334.640 702.840 m
+563.760 702.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 498.610 m
-334.640 474.330 l
+334.640 726.370 m
+334.640 702.090 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 498.610 m
-563.760 474.330 l
+563.760 726.370 m
+563.760 702.090 l
S
[ ] 0 d
1 w
@@ -25340,7 +26747,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 482.61300000000034 Td
+337.6397136 710.373 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -25348,26 +26755,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 475.080 m
-162.800 475.080 l
+48.240 702.840 m
+162.800 702.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 437.520 m
-162.800 437.520 l
+48.240 665.280 m
+162.800 665.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 475.330 m
-48.240 437.270 l
+48.240 703.090 m
+48.240 665.030 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 475.330 m
-162.800 437.270 l
+162.800 703.090 m
+162.800 665.030 l
S
[ ] 0 d
1 w
@@ -25375,7 +26782,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 451.6930000000004 Td
+51.24 679.4530000000001 Td
/F2.0 10.5 Tf
<50617468> Tj
ET
@@ -25383,26 +26790,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 475.080 m
-334.640 475.080 l
+162.800 702.840 m
+334.640 702.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 437.520 m
-334.640 437.520 l
+162.800 665.280 m
+334.640 665.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 475.330 m
-162.800 437.270 l
+162.800 703.090 m
+162.800 665.030 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 475.330 m
-334.640 437.270 l
+334.640 703.090 m
+334.640 665.030 l
S
[ ] 0 d
1 w
@@ -25410,19 +26817,19 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 458.83300000000037 Td
+165.79988544 686.5930000000001 Td
/F2.0 10.5 Tf
<706f6c6963794d6f64656c54797065> Tj
ET
BT
-165.79988544000003 444.55300000000034 Td
+165.79988544 672.3130000000001 Td
ET
BT
-165.79988544000003 444.55300000000034 Td
+165.79988544 672.3130000000001 Td
/F3.0 10.5 Tf
<7265717569726564> Tj
ET
@@ -25430,26 +26837,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 475.080 m
-563.760 475.080 l
+334.640 702.840 m
+563.760 702.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 437.520 m
-563.760 437.520 l
+334.640 665.280 m
+563.760 665.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 475.330 m
-334.640 437.270 l
+334.640 703.090 m
+334.640 665.030 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 475.330 m
-563.760 437.270 l
+563.760 703.090 m
+563.760 665.030 l
S
[ ] 0 d
1 w
@@ -25457,7 +26864,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 451.6930000000004 Td
+337.6397136 679.4530000000001 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -25465,26 +26872,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 437.520 m
-162.800 437.520 l
+48.240 665.280 m
+162.800 665.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 399.960 m
-162.800 399.960 l
+48.240 627.720 m
+162.800 627.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 437.770 m
-48.240 399.710 l
+48.240 665.530 m
+48.240 627.470 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 437.770 m
-162.800 399.710 l
+162.800 665.530 m
+162.800 627.470 l
S
[ ] 0 d
1 w
@@ -25492,7 +26899,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 414.1330000000003 Td
+51.24 641.893 Td
/F2.0 10.5 Tf
<50617468> Tj
ET
@@ -25500,26 +26907,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 437.520 m
-334.640 437.520 l
+162.800 665.280 m
+334.640 665.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 399.960 m
-334.640 399.960 l
+162.800 627.720 m
+334.640 627.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 437.770 m
-162.800 399.710 l
+162.800 665.530 m
+162.800 627.470 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 437.770 m
-334.640 399.710 l
+334.640 665.530 m
+334.640 627.470 l
S
[ ] 0 d
1 w
@@ -25527,19 +26934,253 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 421.2730000000003 Td
+165.79988544 649.0330000000001 Td
/F2.0 10.5 Tf
[<706f6c6963794d6f64656c56> 60.05859375 <657273696f6e>] TJ
ET
BT
-165.79988544000003 406.9930000000003 Td
+165.79988544 634.753 Td
+ET
+
+
+BT
+165.79988544 634.753 Td
+/F3.0 10.5 Tf
+<7265717569726564> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 665.280 m
+563.760 665.280 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 627.720 m
+563.760 627.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 665.530 m
+334.640 627.470 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 665.530 m
+563.760 627.470 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+337.6397136 641.893 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 627.720 m
+162.800 627.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 590.160 m
+162.800 590.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 627.970 m
+48.240 589.910 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 627.970 m
+162.800 589.910 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 604.3330000000001 Td
+/F2.0 10.5 Tf
+<50617468> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 627.720 m
+334.640 627.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 590.160 m
+334.640 590.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 627.970 m
+162.800 589.910 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 627.970 m
+334.640 589.910 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+165.79988544 611.4730000000002 Td
+/F2.0 10.5 Tf
+<706f6c6963794e616d65> Tj
+ET
+
+
+BT
+165.79988544 597.1930000000001 Td
+ET
+
+
+BT
+165.79988544 597.1930000000001 Td
+/F3.0 10.5 Tf
+<7265717569726564> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 627.720 m
+563.760 627.720 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 590.160 m
+563.760 590.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 627.970 m
+334.640 589.910 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 627.970 m
+563.760 589.910 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+337.6397136 604.3330000000001 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 590.160 m
+162.800 590.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 552.600 m
+162.800 552.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 590.410 m
+48.240 552.350 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 590.410 m
+162.800 552.350 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 566.773 Td
+/F2.0 10.5 Tf
+<50617468> Tj
ET
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 590.160 m
+334.640 590.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 552.600 m
+334.640 552.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 590.410 m
+162.800 552.350 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 590.410 m
+334.640 552.350 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
BT
-165.79988544000003 406.9930000000003 Td
+165.79988544 573.913 Td
+/F2.0 10.5 Tf
+[<706f6c69637956> 60.05859375 <657273696f6e>] TJ
+ET
+
+
+BT
+165.79988544 559.633 Td
+ET
+
+
+BT
+165.79988544 559.633 Td
/F3.0 10.5 Tf
<7265717569726564> Tj
ET
@@ -25547,26 +27188,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 437.520 m
-563.760 437.520 l
+334.640 590.160 m
+563.760 590.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 399.960 m
-563.760 399.960 l
+334.640 552.600 m
+563.760 552.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 437.770 m
-334.640 399.710 l
+334.640 590.410 m
+334.640 552.350 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 437.770 m
-563.760 399.710 l
+563.760 590.410 m
+563.760 552.350 l
S
[ ] 0 d
1 w
@@ -25574,7 +27215,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 414.1330000000003 Td
+337.6397136 566.773 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -25584,59 +27225,237 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 370.3760000000003 Td
+48.24 523.0160000000002 Td
/F2.0 13 Tf
-<322e33312e322e20526573706f6e736573> Tj
+<322e33322e322e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 318.120 51.552 37.560 re
+48.240 485.040 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 318.120 360.864 37.560 re
+220.080 485.040 343.680 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 318.120 103.104 37.560 re
+48.240 461.760 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 294.840 51.552 23.280 re
+220.080 461.760 343.680 23.280 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 508.320 m
+220.080 508.320 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 485.040 m
+220.080 485.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 508.570 m
+48.240 484.290 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 508.570 m
+220.080 484.290 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 492.57300000000026 Td
+/F2.0 10.5 Tf
+<4854545020436f6465> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 508.320 m
+563.760 508.320 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+220.080 485.040 m
+563.760 485.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 508.570 m
+220.080 484.290 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 508.570 m
+563.760 484.290 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+223.07982816 492.57300000000026 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 485.040 m
+220.080 485.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 461.760 m
+220.080 461.760 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 485.290 m
+48.240 461.510 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 485.290 m
+220.080 461.510 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 468.7930000000003 Td
+/F2.0 10.5 Tf
+<323030> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 485.040 m
+563.760 485.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 461.760 m
+563.760 461.760 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+220.080 485.290 m
+220.080 461.510 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 485.290 m
+563.760 461.510 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+223.07982816 468.7930000000003 Td
+/F1.0 10.5 Tf
+<4e6f20436f6e74656e74> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 426.33600000000035 Td
+/F2.0 18 Tf
+[<322e33332e20474554202f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c73>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 392.0960000000003 Td
+/F2.0 13 Tf
+<322e33332e312e20526573706f6e736573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 339.840 51.552 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+99.792 339.840 360.864 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+460.656 339.840 103.104 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 316.560 51.552 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 294.840 360.864 23.280 re
+99.792 316.560 360.864 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 294.840 103.104 23.280 re
+460.656 316.560 103.104 23.280 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 355.680 m
-99.792 355.680 l
+48.240 377.400 m
+99.792 377.400 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 318.120 m
-99.792 318.120 l
+48.240 339.840 m
+99.792 339.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 355.930 m
-48.240 317.370 l
+48.240 377.650 m
+48.240 339.090 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 355.930 m
-99.792 317.370 l
+99.792 377.650 m
+99.792 339.090 l
S
[ ] 0 d
1 w
@@ -25644,14 +27463,14 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 339.9330000000003 Td
+51.24 361.65300000000025 Td
/F2.0 10.5 Tf
<48545450> Tj
ET
BT
-51.24000000000001 325.65300000000025 Td
+51.24 347.3730000000003 Td
/F2.0 10.5 Tf
<436f6465> Tj
ET
@@ -25659,26 +27478,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 355.680 m
-460.656 355.680 l
+99.792 377.400 m
+460.656 377.400 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-99.792 318.120 m
-460.656 318.120 l
+99.792 339.840 m
+460.656 339.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 355.930 m
-99.792 317.370 l
+99.792 377.650 m
+99.792 339.090 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 355.930 m
-460.656 317.370 l
+460.656 377.650 m
+460.656 339.090 l
S
[ ] 0 d
1 w
@@ -25686,7 +27505,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 339.9330000000003 Td
+102.792 361.65300000000025 Td
/F2.0 10.5 Tf
<4465736372697074696f6e> Tj
ET
@@ -25694,26 +27513,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 355.680 m
-563.760 355.680 l
+460.656 377.400 m
+563.760 377.400 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-460.656 318.120 m
-563.760 318.120 l
+460.656 339.840 m
+563.760 339.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 355.930 m
-460.656 317.370 l
+460.656 377.650 m
+460.656 339.090 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 355.930 m
-563.760 317.370 l
+563.760 377.650 m
+563.760 339.090 l
S
[ ] 0 d
1 w
@@ -25721,7 +27540,7 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 339.9330000000003 Td
+463.65600000000006 361.65300000000025 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -25729,26 +27548,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 318.120 m
-99.792 318.120 l
+48.240 339.840 m
+99.792 339.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 294.840 m
-99.792 294.840 l
+48.240 316.560 m
+99.792 316.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 318.370 m
-48.240 294.590 l
+48.240 340.090 m
+48.240 316.310 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 318.370 m
-99.792 294.590 l
+99.792 340.090 m
+99.792 316.310 l
S
[ ] 0 d
1 w
@@ -25756,7 +27575,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 301.8730000000003 Td
+51.24 323.59300000000025 Td
/F2.0 10.5 Tf
<323030> Tj
ET
@@ -25764,26 +27583,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 318.120 m
-460.656 318.120 l
+99.792 339.840 m
+460.656 339.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 294.840 m
-460.656 294.840 l
+99.792 316.560 m
+460.656 316.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 318.370 m
-99.792 294.590 l
+99.792 340.090 m
+99.792 316.310 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 318.370 m
-460.656 294.590 l
+460.656 340.090 m
+460.656 316.310 l
S
[ ] 0 d
1 w
@@ -25791,7 +27610,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 301.8730000000003 Td
+102.792 323.59300000000025 Td
/F1.0 10.5 Tf
<4f75747075742074797065> Tj
ET
@@ -25799,26 +27618,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 318.120 m
-563.760 318.120 l
+460.656 339.840 m
+563.760 339.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 294.840 m
-563.760 294.840 l
+460.656 316.560 m
+563.760 316.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 318.370 m
-460.656 294.590 l
+460.656 340.090 m
+460.656 316.310 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 318.370 m
-563.760 294.590 l
+563.760 340.090 m
+563.760 316.310 l
S
[ ] 0 d
1 w
@@ -25832,7 +27651,7 @@ S
0.259 0.545 0.792 SCN
BT
-463.65600000000006 301.8730000000003 Td
+463.65600000000006 323.59300000000025 Td
/F1.0 10.5 Tf
<506f6c6963794d6f64656c> Tj
ET
@@ -25844,9 +27663,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 265.25600000000026 Td
+48.24 286.9760000000003 Td
/F2.0 13 Tf
-<322e33312e332e2050726f6475636573> Tj
+<322e33332e322e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -25857,7 +27676,7 @@ ET
0.200 0.200 0.200 SCN
BT
-56.88050000000001 238.59600000000026 Td
+56.88050000000001 260.31600000000026 Td
/F1.0 10.5 Tf
<a5> Tj
ET
@@ -25870,7 +27689,7 @@ ET
0.694 0.129 0.275 SCN
BT
-66.24000000000001 240.78000000000026 Td
+66.24000000000001 262.5000000000002 Td
/F4.0 10.5 Tf
<6170706c69636174696f6e2f6a736f6e> Tj
ET
@@ -25881,9 +27700,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 203.13600000000025 Td
+48.24000000000001 224.85600000000025 Td
/F2.0 18 Tf
-<322e33322e20505554> Tj
+<322e33342e20474554> Tj
ET
0.000 0.000 0.000 SCN
@@ -25892,9 +27711,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 175.05600000000024 Td
+48.24000000000001 196.77600000000024 Td
/F2.0 18 Tf
-[<2f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c732f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c>] TJ
+[<2f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c732f79616d6c2f7b706f6c6963794d6f64656c547970657d2f7b706f6c696379>] TJ
ET
0.000 0.000 0.000 SCN
@@ -25903,9 +27722,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 146.97600000000023 Td
+48.24000000000001 168.69600000000025 Td
/F2.0 18 Tf
-[<56> 60.05859375 <657273696f6e7d>] TJ
+[<4d6f64656c56> 60.05859375 <657273696f6e7d>] TJ
ET
0.000 0.000 0.000 SCN
@@ -25914,13 +27733,259 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 112.73600000000025 Td
+48.24000000000001 134.4560000000002 Td
/F2.0 13 Tf
-[<322e33322e312e20506172> 20.01953125 <616d6574657273>] TJ
+[<322e33342e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 96.480 114.560 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+162.800 96.480 171.840 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+334.640 96.480 229.120 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 58.920 114.560 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+162.800 58.920 171.840 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+334.640 58.920 229.120 37.560 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 119.760 m
+162.800 119.760 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 96.480 m
+162.800 96.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 120.010 m
+48.240 95.730 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 120.010 m
+162.800 95.730 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24000000000001 104.01300000000019 Td
+/F2.0 10.5 Tf
+<54797065> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 119.760 m
+334.640 119.760 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+162.800 96.480 m
+334.640 96.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 120.010 m
+162.800 95.730 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 120.010 m
+334.640 95.730 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+165.79988544000003 104.01300000000019 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 119.760 m
+563.760 119.760 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+334.640 96.480 m
+563.760 96.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 120.010 m
+334.640 95.730 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 120.010 m
+563.760 95.730 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+337.6397136 104.01300000000019 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 96.480 m
+162.800 96.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 58.920 m
+162.800 58.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 96.730 m
+48.240 58.670 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 96.730 m
+162.800 58.670 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24000000000001 73.09300000000019 Td
+/F2.0 10.5 Tf
+<50617468> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 96.480 m
+334.640 96.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 58.920 m
+334.640 58.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 96.730 m
+162.800 58.670 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 96.730 m
+334.640 58.670 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+165.79988544000003 80.23300000000019 Td
+/F2.0 10.5 Tf
+<706f6c6963794d6f64656c54797065> Tj
+ET
+
+
+BT
+165.79988544000003 65.95300000000019 Td
+ET
+
+
+BT
+165.79988544000003 65.95300000000019 Td
+/F3.0 10.5 Tf
+<7265717569726564> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 96.480 m
+563.760 96.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 58.920 m
+563.760 58.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 96.730 m
+334.640 58.670 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 96.730 m
+563.760 58.670 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+337.6397136 73.09300000000019 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
q
0.000 0.000 0.000 scn
0.000 0.000 0.000 SCN
@@ -25933,9 +27998,9 @@ q
0.200 0.200 0.200 SCN
BT
-49.24 14.388 Td
+552.698 14.388 Td
/F1.0 9 Tf
-<3136> Tj
+<3137> Tj
ET
0.000 0.000 0.000 SCN
@@ -25945,59 +28010,59 @@ Q
endstream
endobj
-214 0 obj
+224 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 213 0 R
+/Contents 223 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
+/F3.0 26 0 R
/F1.0 8 0 R
/F4.0 35 0 R
-/F3.0 26 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [219 0 R]
+/Annots [229 0 R]
>>
endobj
-215 0 obj
-[214 0 R /XYZ 0 683.1600000000001 null]
+225 0 obj
+[224 0 R /XYZ 0 792.0 null]
endobj
-216 0 obj
-[214 0 R /XYZ 0 626.8800000000002 null]
+226 0 obj
+[224 0 R /XYZ 0 540.6000000000001 null]
endobj
-217 0 obj
-[214 0 R /XYZ 0 530.6400000000003 null]
+227 0 obj
+[224 0 R /XYZ 0 449.76000000000033 null]
endobj
-218 0 obj
-[214 0 R /XYZ 0 387.9600000000003 null]
+228 0 obj
+[224 0 R /XYZ 0 409.6800000000003 null]
endobj
-219 0 obj
+229 0 obj
<< /Border [0 0 0]
/Dest (_policymodel)
/Subtype /Link
-/Rect [463.65600000000006 298.8070000000003 524.955 313.0870000000003]
+/Rect [463.65600000000006 320.52700000000027 524.955 334.80700000000024]
/Type /Annot
>>
endobj
-220 0 obj
-[214 0 R /XYZ 0 282.84000000000026 null]
+230 0 obj
+[224 0 R /XYZ 0 304.5600000000003 null]
endobj
-221 0 obj
-<< /Limits [(_produces_28) (_responses)]
-/Names [(_produces_28) 208 0 R (_produces_29) 215 0 R (_produces_3) 42 0 R (_produces_30) 220 0 R (_produces_31) 229 0 R (_produces_32) 233 0 R (_produces_33) 238 0 R (_produces_34) 245 0 R (_produces_4) 48 0 R (_produces_5) 55 0 R (_produces_6) 62 0 R (_produces_7) 67 0 R (_produces_8) 76 0 R (_produces_9) 80 0 R (_responses) 32 0 R]
->>
+231 0 obj
+[224 0 R /XYZ 0 248.28000000000026 null]
endobj
-222 0 obj
-[214 0 R /XYZ 0 226.56000000000026 null]
+232 0 obj
+[224 0 R /XYZ 0 152.04000000000022 null]
endobj
-223 0 obj
-[214 0 R /XYZ 0 130.32000000000025 null]
+233 0 obj
+<< /Limits [(_parameters_24) (_paths)]
+/Names [(_parameters_24) 215 0 R (_parameters_25) 225 0 R (_parameters_26) 232 0 R (_parameters_27) 240 0 R (_parameters_28) 255 0 R (_parameters_3) 69 0 R (_parameters_4) 78 0 R (_parameters_5) 82 0 R (_parameters_6) 89 0 R (_parameters_7) 95 0 R (_parameters_8) 103 0 R (_parameters_9) 106 0 R (_paths) 30 0 R]
+>>
endobj
-224 0 obj
-<< /Length 19206
+234 0 obj
+<< /Length 17462
>>
stream
q
@@ -26026,30 +28091,6 @@ f
334.640 695.160 229.120 37.560 re
f
0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 657.600 114.560 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-162.800 657.600 171.840 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-334.640 657.600 229.120 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 620.040 114.560 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-162.800 620.040 171.840 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-334.640 620.040 229.120 37.560 re
-f
-0.000 0.000 0.000 scn
0.5 w
/DeviceRGB CS
0.867 0.867 0.867 SCN
@@ -26222,7 +28263,7 @@ S
BT
165.79988544 716.473 Td
/F2.0 10.5 Tf
-<706f6c6963794d6f64656c54797065> Tj
+[<706f6c6963794d6f64656c56> 60.05859375 <657273696f6e>] TJ
ET
@@ -26273,28 +28314,105 @@ BT
ET
0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 665.5760000000001 Td
+/F2.0 13 Tf
+<322e33342e322e20526573706f6e736573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 613.320 51.552 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+99.792 613.320 360.864 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+460.656 613.320 103.104 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 590.040 51.552 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+99.792 590.040 360.864 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+460.656 590.040 103.104 23.280 re
+f
+0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 695.160 m
-162.800 695.160 l
+48.240 650.880 m
+99.792 650.880 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 613.320 m
+99.792 613.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 657.600 m
-162.800 657.600 l
+48.240 651.130 m
+48.240 612.570 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 695.410 m
-48.240 657.350 l
+99.792 651.130 m
+99.792 612.570 l
S
[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 635.1330000000003 Td
+/F2.0 10.5 Tf
+<48545450> Tj
+ET
+
+
+BT
+51.24 620.8530000000002 Td
+/F2.0 10.5 Tf
+<436f6465> Tj
+ET
+
+0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 695.410 m
-162.800 657.350 l
+99.792 650.880 m
+460.656 650.880 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+99.792 613.320 m
+460.656 613.320 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 651.130 m
+99.792 612.570 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 651.130 m
+460.656 612.570 l
S
[ ] 0 d
1 w
@@ -26302,7 +28420,404 @@ S
0.200 0.200 0.200 scn
BT
-51.24 671.7729999999999 Td
+102.792 635.1330000000003 Td
+/F2.0 10.5 Tf
+<4465736372697074696f6e> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 650.880 m
+563.760 650.880 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+460.656 613.320 m
+563.760 613.320 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 651.130 m
+460.656 612.570 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 651.130 m
+563.760 612.570 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+463.65600000000006 635.1330000000003 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 613.320 m
+99.792 613.320 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 590.040 m
+99.792 590.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 613.570 m
+48.240 589.790 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 613.570 m
+99.792 589.790 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 597.0730000000001 Td
+/F2.0 10.5 Tf
+<323030> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 613.320 m
+460.656 613.320 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 590.040 m
+460.656 590.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 613.570 m
+99.792 589.790 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 613.570 m
+460.656 589.790 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+102.792 597.0730000000001 Td
+/F1.0 10.5 Tf
+<4f75747075742074797065> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 613.320 m
+563.760 613.320 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 590.040 m
+563.760 590.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 613.570 m
+460.656 589.790 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 613.570 m
+563.760 589.790 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+463.65600000000006 597.0730000000001 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 560.4560000000002 Td
+/F2.0 13 Tf
+<322e33342e332e2050726f6475636573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+-0.500 Tc
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+56.88050000000001 533.7960000000003 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+0.000 Tc
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+66.24000000000001 535.9800000000004 Td
+/F4.0 10.5 Tf
+<6170706c69636174696f6e2f6a736f6e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 498.3360000000004 Td
+/F2.0 18 Tf
+<322e33352e20474554> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 470.2560000000004 Td
+/F2.0 18 Tf
+[<2f76322f706f6c69637954> 29.78515625 <6f7363614d6f64656c732f7b706f6c6963794d6f64656c547970657d2f7b706f6c6963794d6f64656c>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 442.1760000000004 Td
+/F2.0 18 Tf
+[<56> 60.05859375 <657273696f6e7d>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 407.9360000000004 Td
+/F2.0 13 Tf
+[<322e33352e312e20506172> 20.01953125 <616d6574657273>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 369.960 114.560 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+162.800 369.960 171.840 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+334.640 369.960 229.120 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 332.400 114.560 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+162.800 332.400 171.840 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+334.640 332.400 229.120 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 294.840 114.560 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+162.800 294.840 171.840 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+334.640 294.840 229.120 37.560 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 393.240 m
+162.800 393.240 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 369.960 m
+162.800 369.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 393.490 m
+48.240 369.210 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 393.490 m
+162.800 369.210 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24000000000001 377.49300000000034 Td
+/F2.0 10.5 Tf
+<54797065> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 393.240 m
+334.640 393.240 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+162.800 369.960 m
+334.640 369.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 393.490 m
+162.800 369.210 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 393.490 m
+334.640 369.210 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+165.79988544000003 377.49300000000034 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 393.240 m
+563.760 393.240 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+334.640 369.960 m
+563.760 369.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 393.490 m
+334.640 369.210 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 393.490 m
+563.760 369.210 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+337.6397136 377.49300000000034 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 369.960 m
+162.800 369.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 332.400 m
+162.800 332.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 370.210 m
+48.240 332.150 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 370.210 m
+162.800 332.150 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24000000000001 346.5730000000004 Td
/F2.0 10.5 Tf
<50617468> Tj
ET
@@ -26310,26 +28825,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 695.160 m
-334.640 695.160 l
+162.800 369.960 m
+334.640 369.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 657.600 m
-334.640 657.600 l
+162.800 332.400 m
+334.640 332.400 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 695.410 m
-162.800 657.350 l
+162.800 370.210 m
+162.800 332.150 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 695.410 m
-334.640 657.350 l
+334.640 370.210 m
+334.640 332.150 l
S
[ ] 0 d
1 w
@@ -26337,19 +28852,19 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544 678.913 Td
+165.79988544000003 353.71300000000036 Td
/F2.0 10.5 Tf
-[<706f6c6963794d6f64656c56> 60.05859375 <657273696f6e>] TJ
+<706f6c6963794d6f64656c54797065> Tj
ET
BT
-165.79988544 664.6329999999999 Td
+165.79988544000003 339.43300000000033 Td
ET
BT
-165.79988544 664.6329999999999 Td
+165.79988544000003 339.43300000000033 Td
/F3.0 10.5 Tf
<7265717569726564> Tj
ET
@@ -26357,26 +28872,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 695.160 m
-563.760 695.160 l
+334.640 369.960 m
+563.760 369.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 657.600 m
-563.760 657.600 l
+334.640 332.400 m
+563.760 332.400 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 695.410 m
-334.640 657.350 l
+334.640 370.210 m
+334.640 332.150 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 695.410 m
-563.760 657.350 l
+563.760 370.210 m
+563.760 332.150 l
S
[ ] 0 d
1 w
@@ -26384,7 +28899,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 671.7729999999999 Td
+337.6397136 346.5730000000004 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -26392,26 +28907,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 657.600 m
-162.800 657.600 l
+48.240 332.400 m
+162.800 332.400 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 620.040 m
-162.800 620.040 l
+48.240 294.840 m
+162.800 294.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 657.850 m
-48.240 619.790 l
+48.240 332.650 m
+48.240 294.590 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 657.850 m
-162.800 619.790 l
+162.800 332.650 m
+162.800 294.590 l
S
[ ] 0 d
1 w
@@ -26419,34 +28934,34 @@ S
0.200 0.200 0.200 scn
BT
-51.24 634.213 Td
+51.24000000000001 309.0130000000003 Td
/F2.0 10.5 Tf
-<426f6479> Tj
+<50617468> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 657.600 m
-334.640 657.600 l
+162.800 332.400 m
+334.640 332.400 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 620.040 m
-334.640 620.040 l
+162.800 294.840 m
+334.640 294.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 657.850 m
-162.800 619.790 l
+162.800 332.650 m
+162.800 294.590 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 657.850 m
-334.640 619.790 l
+334.640 332.650 m
+334.640 294.590 l
S
[ ] 0 d
1 w
@@ -26454,19 +28969,19 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544 641.3530000000001 Td
+165.79988544000003 316.1530000000003 Td
/F2.0 10.5 Tf
-<626f6479> Tj
+[<706f6c6963794d6f64656c56> 60.05859375 <657273696f6e>] TJ
ET
BT
-165.79988544 627.073 Td
+165.79988544000003 301.8730000000003 Td
ET
BT
-165.79988544 627.073 Td
+165.79988544000003 301.8730000000003 Td
/F3.0 10.5 Tf
<7265717569726564> Tj
ET
@@ -26474,26 +28989,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 657.600 m
-563.760 657.600 l
+334.640 332.400 m
+563.760 332.400 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 620.040 m
-563.760 620.040 l
+334.640 294.840 m
+563.760 294.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 657.850 m
-334.640 619.790 l
+334.640 332.650 m
+334.640 294.590 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 657.850 m
-563.760 619.790 l
+563.760 332.650 m
+563.760 294.590 l
S
[ ] 0 d
1 w
@@ -26501,7 +29016,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 634.213 Td
+337.6397136 309.0130000000003 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -26511,59 +29026,59 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24 590.456 Td
+48.24000000000001 265.2560000000003 Td
/F2.0 13 Tf
-<322e33322e322e20526573706f6e736573> Tj
+<322e33352e322e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 538.200 51.552 37.560 re
+48.240 213.000 51.552 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 538.200 360.864 37.560 re
+99.792 213.000 360.864 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 538.200 103.104 37.560 re
+460.656 213.000 103.104 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 514.920 51.552 23.280 re
+48.240 189.720 51.552 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 514.920 360.864 23.280 re
+99.792 189.720 360.864 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 514.920 103.104 23.280 re
+460.656 189.720 103.104 23.280 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 575.760 m
-99.792 575.760 l
+48.240 250.560 m
+99.792 250.560 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 538.200 m
-99.792 538.200 l
+48.240 213.000 m
+99.792 213.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 576.010 m
-48.240 537.450 l
+48.240 250.810 m
+48.240 212.250 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 576.010 m
-99.792 537.450 l
+99.792 250.810 m
+99.792 212.250 l
S
[ ] 0 d
1 w
@@ -26571,14 +29086,14 @@ S
0.200 0.200 0.200 scn
BT
-51.24 560.0130000000001 Td
+51.24000000000001 234.81300000000033 Td
/F2.0 10.5 Tf
<48545450> Tj
ET
BT
-51.24 545.7330000000001 Td
+51.24000000000001 220.53300000000033 Td
/F2.0 10.5 Tf
<436f6465> Tj
ET
@@ -26586,26 +29101,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 575.760 m
-460.656 575.760 l
+99.792 250.560 m
+460.656 250.560 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-99.792 538.200 m
-460.656 538.200 l
+99.792 213.000 m
+460.656 213.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 576.010 m
-99.792 537.450 l
+99.792 250.810 m
+99.792 212.250 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 576.010 m
-460.656 537.450 l
+460.656 250.810 m
+460.656 212.250 l
S
[ ] 0 d
1 w
@@ -26613,7 +29128,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 560.0130000000001 Td
+102.792 234.81300000000033 Td
/F2.0 10.5 Tf
<4465736372697074696f6e> Tj
ET
@@ -26621,26 +29136,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 575.760 m
-563.760 575.760 l
+460.656 250.560 m
+563.760 250.560 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-460.656 538.200 m
-563.760 538.200 l
+460.656 213.000 m
+563.760 213.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 576.010 m
-460.656 537.450 l
+460.656 250.810 m
+460.656 212.250 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 576.010 m
-563.760 537.450 l
+563.760 250.810 m
+563.760 212.250 l
S
[ ] 0 d
1 w
@@ -26648,7 +29163,7 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 560.0130000000001 Td
+463.65600000000006 234.81300000000033 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -26656,26 +29171,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 538.200 m
-99.792 538.200 l
+48.240 213.000 m
+99.792 213.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 514.920 m
-99.792 514.920 l
+48.240 189.720 m
+99.792 189.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 538.450 m
-48.240 514.670 l
+48.240 213.250 m
+48.240 189.470 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 538.450 m
-99.792 514.670 l
+99.792 213.250 m
+99.792 189.470 l
S
[ ] 0 d
1 w
@@ -26683,7 +29198,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24 521.953 Td
+51.24000000000001 196.75300000000033 Td
/F2.0 10.5 Tf
<323030> Tj
ET
@@ -26691,26 +29206,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 538.200 m
-460.656 538.200 l
+99.792 213.000 m
+460.656 213.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 514.920 m
-460.656 514.920 l
+99.792 189.720 m
+460.656 189.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 538.450 m
-99.792 514.670 l
+99.792 213.250 m
+99.792 189.470 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 538.450 m
-460.656 514.670 l
+460.656 213.250 m
+460.656 189.470 l
S
[ ] 0 d
1 w
@@ -26718,7 +29233,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 521.953 Td
+102.792 196.75300000000033 Td
/F1.0 10.5 Tf
<4f75747075742074797065> Tj
ET
@@ -26726,26 +29241,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 538.200 m
-563.760 538.200 l
+460.656 213.000 m
+563.760 213.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 514.920 m
-563.760 514.920 l
+460.656 189.720 m
+563.760 189.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 538.450 m
-460.656 514.670 l
+460.656 213.250 m
+460.656 189.470 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 538.450 m
-563.760 514.670 l
+563.760 213.250 m
+563.760 189.470 l
S
[ ] 0 d
1 w
@@ -26759,9 +29274,9 @@ S
0.259 0.545 0.792 SCN
BT
-463.65600000000006 521.953 Td
+463.65600000000006 196.75300000000033 Td
/F1.0 10.5 Tf
-<506f6c6963794d6f64656c> Tj
+<4a736f6e4f626a656374> Tj
ET
0.000 0.000 0.000 SCN
@@ -26771,9 +29286,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24 485.33600000000007 Td
+48.24000000000001 160.1360000000003 Td
/F2.0 13 Tf
-<322e33322e332e20436f6e73756d6573> Tj
+<322e33352e332e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -26784,7 +29299,7 @@ ET
0.200 0.200 0.200 SCN
BT
-56.88050000000001 458.67600000000004 Td
+56.88050000000001 133.47600000000028 Td
/F1.0 10.5 Tf
<a5> Tj
ET
@@ -26797,9 +29312,9 @@ ET
0.694 0.129 0.275 SCN
BT
-66.24000000000001 460.86000000000007 Td
+66.24000000000001 135.66000000000028 Td
/F4.0 10.5 Tf
-<706c61696e2f74657874> Tj
+<6170706c69636174696f6e2f6a736f6e> Tj
ET
0.000 0.000 0.000 SCN
@@ -26808,107 +29323,152 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 429.05600000000004 Td
-/F2.0 13 Tf
-<322e33322e342e2050726f6475636573> Tj
+48.24000000000001 98.01600000000028 Td
+/F2.0 18 Tf
+<322e33362e20474554202f76322f74656d706c61746573> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
-
--0.500 Tc
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-BT
-56.88050000000001 402.396 Td
-/F1.0 10.5 Tf
-<a5> Tj
-ET
-
-0.000 0.000 0.000 SCN
+q
0.000 0.000 0.000 scn
-
-0.000 Tc
-0.694 0.129 0.275 scn
-0.694 0.129 0.275 SCN
-
-BT
-66.24000000000001 404.58000000000004 Td
-/F4.0 10.5 Tf
-<6170706c69636174696f6e2f6a736f6e> Tj
-ET
-
0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
+1 w
+0 J
+0 j
+[ ] 0 d
+/Stamp1 Do
0.200 0.200 0.200 scn
0.200 0.200 0.200 SCN
BT
-48.24000000000001 366.93600000000004 Td
-/F2.0 18 Tf
-<322e33332e20474554202f76322f74656d706c61746573> Tj
+49.24 14.388 Td
+/F1.0 9 Tf
+<3138> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
+Q
+Q
+
+endstream
+endobj
+235 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 612.0 792.0]
+/Contents 234 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F2.0 24 0 R
+/F3.0 26 0 R
+/F1.0 8 0 R
+/F4.0 35 0 R
+>>
+/XObject << /Stamp1 717 0 R
+>>
+>>
+/Annots [242 0 R]
+>>
+endobj
+236 0 obj
+[235 0 R /XYZ 0 683.1600000000001 null]
+endobj
+237 0 obj
+[235 0 R /XYZ 0 578.0400000000002 null]
+endobj
+238 0 obj
+<< /Limits [(_produces_28) (_responses)]
+/Names [(_produces_28) 221 0 R (_produces_29) 230 0 R (_produces_3) 42 0 R (_produces_30) 237 0 R (_produces_31) 243 0 R (_produces_32) 249 0 R (_produces_33) 253 0 R (_produces_34) 258 0 R (_produces_4) 48 0 R (_produces_5) 55 0 R (_produces_6) 62 0 R (_produces_7) 67 0 R (_produces_8) 76 0 R (_produces_9) 80 0 R (_responses) 32 0 R]
+>>
+endobj
+239 0 obj
+[235 0 R /XYZ 0 521.7600000000003 null]
+endobj
+240 0 obj
+[235 0 R /XYZ 0 425.5200000000004 null]
+endobj
+241 0 obj
+[235 0 R /XYZ 0 282.8400000000003 null]
+endobj
+242 0 obj
+<< /Border [0 0 0]
+/Dest (_jsonobject)
+/Subtype /Link
+/Rect [463.65600000000006 193.68700000000032 516.807 207.96700000000033]
+/Type /Annot
+>>
+endobj
+243 0 obj
+[235 0 R /XYZ 0 177.7200000000003 null]
+endobj
+244 0 obj
+[235 0 R /XYZ 0 121.44000000000028 null]
+endobj
+245 0 obj
+<< /Length 16308
+>>
+stream
+q
+/DeviceRGB cs
0.200 0.200 0.200 scn
+/DeviceRGB CS
0.200 0.200 0.200 SCN
BT
-48.24000000000001 332.69599999999997 Td
+48.24 740.816 Td
/F2.0 13 Tf
-<322e33332e312e20526573706f6e736573> Tj
+<322e33362e312e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 280.440 51.552 37.560 re
+48.240 688.560 51.552 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 280.440 360.864 37.560 re
+99.792 688.560 360.864 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 280.440 103.104 37.560 re
+460.656 688.560 103.104 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 257.160 51.552 23.280 re
+48.240 665.280 51.552 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 257.160 360.864 23.280 re
+99.792 665.280 360.864 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 257.160 103.104 23.280 re
+460.656 665.280 103.104 23.280 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 318.000 m
-99.792 318.000 l
+48.240 726.120 m
+99.792 726.120 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 280.440 m
-99.792 280.440 l
+48.240 688.560 m
+99.792 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 318.250 m
-48.240 279.690 l
+48.240 726.370 m
+48.240 687.810 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 318.250 m
-99.792 279.690 l
+99.792 726.370 m
+99.792 687.810 l
S
[ ] 0 d
1 w
@@ -26916,14 +29476,14 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 302.25299999999993 Td
+51.24 710.373 Td
/F2.0 10.5 Tf
<48545450> Tj
ET
BT
-51.24000000000001 287.97299999999996 Td
+51.24 696.0930000000001 Td
/F2.0 10.5 Tf
<436f6465> Tj
ET
@@ -26931,26 +29491,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 318.000 m
-460.656 318.000 l
+99.792 726.120 m
+460.656 726.120 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-99.792 280.440 m
-460.656 280.440 l
+99.792 688.560 m
+460.656 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 318.250 m
-99.792 279.690 l
+99.792 726.370 m
+99.792 687.810 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 318.250 m
-460.656 279.690 l
+460.656 726.370 m
+460.656 687.810 l
S
[ ] 0 d
1 w
@@ -26958,7 +29518,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 302.25299999999993 Td
+102.792 710.373 Td
/F2.0 10.5 Tf
<4465736372697074696f6e> Tj
ET
@@ -26966,26 +29526,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 318.000 m
-563.760 318.000 l
+460.656 726.120 m
+563.760 726.120 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-460.656 280.440 m
-563.760 280.440 l
+460.656 688.560 m
+563.760 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 318.250 m
-460.656 279.690 l
+460.656 726.370 m
+460.656 687.810 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 318.250 m
-563.760 279.690 l
+563.760 726.370 m
+563.760 687.810 l
S
[ ] 0 d
1 w
@@ -26993,7 +29553,7 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 302.25299999999993 Td
+463.65600000000006 710.373 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -27001,26 +29561,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 280.440 m
-99.792 280.440 l
+48.240 688.560 m
+99.792 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 257.160 m
-99.792 257.160 l
+48.240 665.280 m
+99.792 665.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 280.690 m
-48.240 256.910 l
+48.240 688.810 m
+48.240 665.030 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 280.690 m
-99.792 256.910 l
+99.792 688.810 m
+99.792 665.030 l
S
[ ] 0 d
1 w
@@ -27028,7 +29588,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 264.1929999999999 Td
+51.24 672.3130000000001 Td
/F2.0 10.5 Tf
<323030> Tj
ET
@@ -27036,26 +29596,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 280.440 m
-460.656 280.440 l
+99.792 688.560 m
+460.656 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 257.160 m
-460.656 257.160 l
+99.792 665.280 m
+460.656 665.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 280.690 m
-99.792 256.910 l
+99.792 688.810 m
+99.792 665.030 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 280.690 m
-460.656 256.910 l
+460.656 688.810 m
+460.656 665.030 l
S
[ ] 0 d
1 w
@@ -27063,7 +29623,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 264.1929999999999 Td
+102.792 672.3130000000001 Td
/F1.0 10.5 Tf
<4f75747075742074797065> Tj
ET
@@ -27071,26 +29631,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 280.440 m
-563.760 280.440 l
+460.656 688.560 m
+563.760 688.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 257.160 m
-563.760 257.160 l
+460.656 665.280 m
+563.760 665.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 280.690 m
-460.656 256.910 l
+460.656 688.810 m
+460.656 665.030 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 280.690 m
-563.760 256.910 l
+563.760 688.810 m
+563.760 665.030 l
S
[ ] 0 d
1 w
@@ -27104,7 +29664,7 @@ S
0.259 0.545 0.792 SCN
BT
-463.65600000000006 264.1929999999999 Td
+463.65600000000006 672.3130000000001 Td
/F1.0 10.5 Tf
[<4c6f6f7054> 29.78515625 <656d706c617465>] TJ
ET
@@ -27116,9 +29676,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 227.57599999999996 Td
+48.24 635.6960000000003 Td
/F2.0 13 Tf
-<322e33332e322e2050726f6475636573> Tj
+<322e33362e322e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -27129,7 +29689,7 @@ ET
0.200 0.200 0.200 SCN
BT
-56.88050000000001 200.91599999999994 Td
+56.88050000000001 609.0360000000003 Td
/F1.0 10.5 Tf
<a5> Tj
ET
@@ -27142,7 +29702,7 @@ ET
0.694 0.129 0.275 SCN
BT
-66.24000000000001 203.09999999999994 Td
+66.24000000000001 611.2200000000004 Td
/F4.0 10.5 Tf
<6170706c69636174696f6e2f6a736f6e> Tj
ET
@@ -27153,9 +29713,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 165.4559999999999 Td
+48.24000000000001 573.5760000000004 Td
/F2.0 18 Tf
-<322e33342e20474554202f76322f74656d706c617465732f6e616d6573> Tj
+<322e33372e20474554202f76322f74656d706c617465732f6e616d6573> Tj
ET
0.000 0.000 0.000 SCN
@@ -27164,59 +29724,59 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 131.2159999999999 Td
+48.24000000000001 539.3360000000005 Td
/F2.0 13 Tf
-<322e33342e312e20526573706f6e736573> Tj
+<322e33372e312e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 78.960 51.552 37.560 re
+48.240 487.080 51.552 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 78.960 360.864 37.560 re
+99.792 487.080 360.864 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 78.960 103.104 37.560 re
+460.656 487.080 103.104 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 55.680 51.552 23.280 re
+48.240 463.800 51.552 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 55.680 360.864 23.280 re
+99.792 463.800 360.864 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 55.680 103.104 23.280 re
+460.656 463.800 103.104 23.280 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 116.520 m
-99.792 116.520 l
+48.240 524.640 m
+99.792 524.640 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 78.960 m
-99.792 78.960 l
+48.240 487.080 m
+99.792 487.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 116.770 m
-48.240 78.210 l
+48.240 524.890 m
+48.240 486.330 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 116.770 m
-99.792 78.210 l
+99.792 524.890 m
+99.792 486.330 l
S
[ ] 0 d
1 w
@@ -27224,14 +29784,14 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 100.7729999999999 Td
+51.24000000000001 508.89300000000054 Td
/F2.0 10.5 Tf
<48545450> Tj
ET
BT
-51.24000000000001 86.4929999999999 Td
+51.24000000000001 494.6130000000005 Td
/F2.0 10.5 Tf
<436f6465> Tj
ET
@@ -27239,26 +29799,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 116.520 m
-460.656 116.520 l
+99.792 524.640 m
+460.656 524.640 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-99.792 78.960 m
-460.656 78.960 l
+99.792 487.080 m
+460.656 487.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 116.770 m
-99.792 78.210 l
+99.792 524.890 m
+99.792 486.330 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 116.770 m
-460.656 78.210 l
+460.656 524.890 m
+460.656 486.330 l
S
[ ] 0 d
1 w
@@ -27266,7 +29826,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 100.7729999999999 Td
+102.792 508.89300000000054 Td
/F2.0 10.5 Tf
<4465736372697074696f6e> Tj
ET
@@ -27274,26 +29834,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 116.520 m
-563.760 116.520 l
+460.656 524.640 m
+563.760 524.640 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-460.656 78.960 m
-563.760 78.960 l
+460.656 487.080 m
+563.760 487.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 116.770 m
-460.656 78.210 l
+460.656 524.890 m
+460.656 486.330 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 116.770 m
-563.760 78.210 l
+563.760 524.890 m
+563.760 486.330 l
S
[ ] 0 d
1 w
@@ -27301,7 +29861,7 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 100.7729999999999 Td
+463.65600000000006 508.89300000000054 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -27309,26 +29869,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 78.960 m
-99.792 78.960 l
+48.240 487.080 m
+99.792 487.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 55.680 m
-99.792 55.680 l
+48.240 463.800 m
+99.792 463.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 79.210 m
-48.240 55.430 l
+48.240 487.330 m
+48.240 463.550 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 79.210 m
-99.792 55.430 l
+99.792 487.330 m
+99.792 463.550 l
S
[ ] 0 d
1 w
@@ -27336,7 +29896,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 62.712999999999894 Td
+51.24000000000001 470.83300000000054 Td
/F2.0 10.5 Tf
<323030> Tj
ET
@@ -27344,26 +29904,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 78.960 m
-460.656 78.960 l
+99.792 487.080 m
+460.656 487.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 55.680 m
-460.656 55.680 l
+99.792 463.800 m
+460.656 463.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 79.210 m
-99.792 55.430 l
+99.792 487.330 m
+99.792 463.550 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 79.210 m
-460.656 55.430 l
+460.656 487.330 m
+460.656 463.550 l
S
[ ] 0 d
1 w
@@ -27371,7 +29931,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 62.712999999999894 Td
+102.792 470.83300000000054 Td
/F1.0 10.5 Tf
<4f75747075742074797065> Tj
ET
@@ -27379,26 +29939,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 78.960 m
-563.760 78.960 l
+460.656 487.080 m
+563.760 487.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 55.680 m
-563.760 55.680 l
+460.656 463.800 m
+563.760 463.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 79.210 m
-460.656 55.430 l
+460.656 487.330 m
+460.656 463.550 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 79.210 m
-563.760 55.430 l
+563.760 487.330 m
+563.760 463.550 l
S
[ ] 0 d
1 w
@@ -27406,107 +29966,19 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 62.712999999999894 Td
+463.65600000000006 470.83300000000054 Td
/F1.0 10.5 Tf
[<3c20737472696e67203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
0.000 0.000 0.000 scn
-q
-0.000 0.000 0.000 scn
-0.000 0.000 0.000 SCN
-1 w
-0 J
-0 j
-[ ] 0 d
-/Stamp1 Do
0.200 0.200 0.200 scn
0.200 0.200 0.200 SCN
BT
-552.698 14.388 Td
-/F1.0 9 Tf
-<3137> Tj
-ET
-
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-Q
-Q
-
-endstream
-endobj
-225 0 obj
-<< /Type /Page
-/Parent 3 0 R
-/MediaBox [0 0 612.0 792.0]
-/Contents 224 0 R
-/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
-/Font << /F2.0 24 0 R
-/F3.0 26 0 R
-/F1.0 8 0 R
-/F4.0 35 0 R
->>
-/XObject << /Stamp1 676 0 R
->>
->>
-/Annots [227 0 R 232 0 R]
->>
-endobj
-226 0 obj
-[225 0 R /XYZ 0 608.04 null]
-endobj
-227 0 obj
-<< /Border [0 0 0]
-/Dest (_policymodel)
-/Subtype /Link
-/Rect [463.65600000000006 518.8870000000001 524.955 533.167]
-/Type /Annot
->>
-endobj
-228 0 obj
-[225 0 R /XYZ 0 502.9200000000001 null]
-endobj
-229 0 obj
-[225 0 R /XYZ 0 446.64000000000004 null]
-endobj
-230 0 obj
-[225 0 R /XYZ 0 390.36 null]
-endobj
-231 0 obj
-[225 0 R /XYZ 0 350.28 null]
-endobj
-232 0 obj
-<< /Border [0 0 0]
-/Dest (_looptemplate)
-/Subtype /Link
-/Rect [463.65600000000006 261.12699999999995 535.2997558593751 275.4069999999999]
-/Type /Annot
->>
-endobj
-233 0 obj
-[225 0 R /XYZ 0 245.15999999999997 null]
-endobj
-234 0 obj
-[225 0 R /XYZ 0 188.87999999999994 null]
-endobj
-235 0 obj
-[225 0 R /XYZ 0 148.79999999999993 null]
-endobj
-236 0 obj
-<< /Length 8598
->>
-stream
-q
-/DeviceRGB cs
-0.200 0.200 0.200 scn
-/DeviceRGB CS
-0.200 0.200 0.200 SCN
-
-BT
-48.24 740.816 Td
+48.24000000000001 434.2160000000005 Td
/F2.0 13 Tf
-<322e33342e322e2050726f6475636573> Tj
+<322e33372e322e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -27517,7 +29989,7 @@ ET
0.200 0.200 0.200 SCN
BT
-56.88050000000001 714.1560000000001 Td
+56.88050000000001 407.5560000000005 Td
/F1.0 10.5 Tf
<a5> Tj
ET
@@ -27530,7 +30002,7 @@ ET
0.694 0.129 0.275 SCN
BT
-66.24000000000001 716.3400000000001 Td
+66.24000000000001 409.7400000000005 Td
/F4.0 10.5 Tf
<6170706c69636174696f6e2f6a736f6e> Tj
ET
@@ -27541,9 +30013,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 678.6960000000001 Td
+48.24000000000001 372.0960000000005 Td
/F2.0 18 Tf
-<322e33352e20474554202f76322f74656d706c617465732f7b74656d706c6174654e616d657d> Tj
+<322e33382e20474554202f76322f74656d706c617465732f7b74656d706c6174654e616d657d> Tj
ET
0.000 0.000 0.000 SCN
@@ -27552,59 +30024,59 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 644.4560000000002 Td
+48.24000000000001 337.85600000000045 Td
/F2.0 13 Tf
-[<322e33352e312e20506172> 20.01953125 <616d6574657273>] TJ
+[<322e33382e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 606.480 114.560 23.280 re
+48.240 299.880 114.560 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 606.480 171.840 23.280 re
+162.800 299.880 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 606.480 229.120 23.280 re
+334.640 299.880 229.120 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 568.920 114.560 37.560 re
+48.240 262.320 114.560 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-162.800 568.920 171.840 37.560 re
+162.800 262.320 171.840 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-334.640 568.920 229.120 37.560 re
+334.640 262.320 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 629.760 m
-162.800 629.760 l
+48.240 323.160 m
+162.800 323.160 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 606.480 m
-162.800 606.480 l
+48.240 299.880 m
+162.800 299.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 630.010 m
-48.240 605.730 l
+48.240 323.410 m
+48.240 299.130 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 630.010 m
-162.800 605.730 l
+162.800 323.410 m
+162.800 299.130 l
S
[ ] 0 d
1 w
@@ -27612,7 +30084,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 614.0130000000003 Td
+51.24000000000001 307.4130000000004 Td
/F2.0 10.5 Tf
<54797065> Tj
ET
@@ -27620,26 +30092,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 629.760 m
-334.640 629.760 l
+162.800 323.160 m
+334.640 323.160 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-162.800 606.480 m
-334.640 606.480 l
+162.800 299.880 m
+334.640 299.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 630.010 m
-162.800 605.730 l
+162.800 323.410 m
+162.800 299.130 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 630.010 m
-334.640 605.730 l
+334.640 323.410 m
+334.640 299.130 l
S
[ ] 0 d
1 w
@@ -27647,7 +30119,7 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 614.0130000000003 Td
+165.79988544000003 307.4130000000004 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -27655,26 +30127,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 629.760 m
-563.760 629.760 l
+334.640 323.160 m
+563.760 323.160 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-334.640 606.480 m
-563.760 606.480 l
+334.640 299.880 m
+563.760 299.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 630.010 m
-334.640 605.730 l
+334.640 323.410 m
+334.640 299.130 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 630.010 m
-563.760 605.730 l
+563.760 323.410 m
+563.760 299.130 l
S
[ ] 0 d
1 w
@@ -27682,7 +30154,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 614.0130000000003 Td
+337.6397136 307.4130000000004 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -27690,26 +30162,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 606.480 m
-162.800 606.480 l
+48.240 299.880 m
+162.800 299.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 568.920 m
-162.800 568.920 l
+48.240 262.320 m
+162.800 262.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 606.730 m
-48.240 568.670 l
+48.240 300.130 m
+48.240 262.070 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 606.730 m
-162.800 568.670 l
+162.800 300.130 m
+162.800 262.070 l
S
[ ] 0 d
1 w
@@ -27717,7 +30189,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 583.0930000000003 Td
+51.24000000000001 276.49300000000045 Td
/F2.0 10.5 Tf
<50617468> Tj
ET
@@ -27725,26 +30197,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-162.800 606.480 m
-334.640 606.480 l
+162.800 299.880 m
+334.640 299.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 568.920 m
-334.640 568.920 l
+162.800 262.320 m
+334.640 262.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-162.800 606.730 m
-162.800 568.670 l
+162.800 300.130 m
+162.800 262.070 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 606.730 m
-334.640 568.670 l
+334.640 300.130 m
+334.640 262.070 l
S
[ ] 0 d
1 w
@@ -27752,19 +30224,19 @@ S
0.200 0.200 0.200 scn
BT
-165.79988544000003 590.2330000000004 Td
+165.79988544000003 283.63300000000044 Td
/F2.0 10.5 Tf
<74656d706c6174654e616d65> Tj
ET
BT
-165.79988544000003 575.9530000000003 Td
+165.79988544000003 269.3530000000004 Td
ET
BT
-165.79988544000003 575.9530000000003 Td
+165.79988544000003 269.3530000000004 Td
/F3.0 10.5 Tf
<7265717569726564> Tj
ET
@@ -27772,26 +30244,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-334.640 606.480 m
-563.760 606.480 l
+334.640 299.880 m
+563.760 299.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 568.920 m
-563.760 568.920 l
+334.640 262.320 m
+563.760 262.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-334.640 606.730 m
-334.640 568.670 l
+334.640 300.130 m
+334.640 262.070 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 606.730 m
-563.760 568.670 l
+563.760 300.130 m
+563.760 262.070 l
S
[ ] 0 d
1 w
@@ -27799,7 +30271,7 @@ S
0.200 0.200 0.200 scn
BT
-337.6397136 583.0930000000003 Td
+337.6397136 276.49300000000045 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -27809,59 +30281,59 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 539.3360000000004 Td
+48.24000000000001 232.73600000000044 Td
/F2.0 13 Tf
-<322e33352e322e20526573706f6e736573> Tj
+<322e33382e322e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 487.080 51.552 37.560 re
+48.240 180.480 51.552 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 487.080 360.864 37.560 re
+99.792 180.480 360.864 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 487.080 103.104 37.560 re
+460.656 180.480 103.104 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 463.800 51.552 23.280 re
+48.240 157.200 51.552 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 463.800 360.864 23.280 re
+99.792 157.200 360.864 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 463.800 103.104 23.280 re
+460.656 157.200 103.104 23.280 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 524.640 m
-99.792 524.640 l
+48.240 218.040 m
+99.792 218.040 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 487.080 m
-99.792 487.080 l
+48.240 180.480 m
+99.792 180.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 524.890 m
-48.240 486.330 l
+48.240 218.290 m
+48.240 179.730 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 524.890 m
-99.792 486.330 l
+99.792 218.290 m
+99.792 179.730 l
S
[ ] 0 d
1 w
@@ -27869,14 +30341,14 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 508.8930000000004 Td
+51.24000000000001 202.29300000000043 Td
/F2.0 10.5 Tf
<48545450> Tj
ET
BT
-51.24000000000001 494.6130000000004 Td
+51.24000000000001 188.01300000000043 Td
/F2.0 10.5 Tf
<436f6465> Tj
ET
@@ -27884,26 +30356,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 524.640 m
-460.656 524.640 l
+99.792 218.040 m
+460.656 218.040 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-99.792 487.080 m
-460.656 487.080 l
+99.792 180.480 m
+460.656 180.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 524.890 m
-99.792 486.330 l
+99.792 218.290 m
+99.792 179.730 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 524.890 m
-460.656 486.330 l
+460.656 218.290 m
+460.656 179.730 l
S
[ ] 0 d
1 w
@@ -27911,7 +30383,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 508.8930000000004 Td
+102.792 202.29300000000043 Td
/F2.0 10.5 Tf
<4465736372697074696f6e> Tj
ET
@@ -27919,26 +30391,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 524.640 m
-563.760 524.640 l
+460.656 218.040 m
+563.760 218.040 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-460.656 487.080 m
-563.760 487.080 l
+460.656 180.480 m
+563.760 180.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 524.890 m
-460.656 486.330 l
+460.656 218.290 m
+460.656 179.730 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 524.890 m
-563.760 486.330 l
+563.760 218.290 m
+563.760 179.730 l
S
[ ] 0 d
1 w
@@ -27946,7 +30418,7 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 508.8930000000004 Td
+463.65600000000006 202.29300000000043 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -27954,26 +30426,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 487.080 m
-99.792 487.080 l
+48.240 180.480 m
+99.792 180.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 463.800 m
-99.792 463.800 l
+48.240 157.200 m
+99.792 157.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 487.330 m
-48.240 463.550 l
+48.240 180.730 m
+48.240 156.950 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 487.330 m
-99.792 463.550 l
+99.792 180.730 m
+99.792 156.950 l
S
[ ] 0 d
1 w
@@ -27981,7 +30453,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24000000000001 470.8330000000004 Td
+51.24000000000001 164.23300000000043 Td
/F2.0 10.5 Tf
<323030> Tj
ET
@@ -27989,26 +30461,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 487.080 m
-460.656 487.080 l
+99.792 180.480 m
+460.656 180.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 463.800 m
-460.656 463.800 l
+99.792 157.200 m
+460.656 157.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 487.330 m
-99.792 463.550 l
+99.792 180.730 m
+99.792 156.950 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 487.330 m
-460.656 463.550 l
+460.656 180.730 m
+460.656 156.950 l
S
[ ] 0 d
1 w
@@ -28016,7 +30488,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 470.8330000000004 Td
+102.792 164.23300000000043 Td
/F1.0 10.5 Tf
<4f75747075742074797065> Tj
ET
@@ -28024,26 +30496,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 487.080 m
-563.760 487.080 l
+460.656 180.480 m
+563.760 180.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 463.800 m
-563.760 463.800 l
+460.656 157.200 m
+563.760 157.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 487.330 m
-460.656 463.550 l
+460.656 180.730 m
+460.656 156.950 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 487.330 m
-563.760 463.550 l
+563.760 180.730 m
+563.760 156.950 l
S
[ ] 0 d
1 w
@@ -28057,7 +30529,7 @@ S
0.259 0.545 0.792 SCN
BT
-463.65600000000006 470.8330000000004 Td
+463.65600000000006 164.23300000000043 Td
/F1.0 10.5 Tf
[<4c6f6f7054> 29.78515625 <656d706c617465>] TJ
ET
@@ -28069,9 +30541,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 434.2160000000004 Td
+48.24000000000001 127.6160000000004 Td
/F2.0 13 Tf
-<322e33352e332e2050726f6475636573> Tj
+<322e33382e332e2050726f6475636573> Tj
ET
0.000 0.000 0.000 SCN
@@ -28082,7 +30554,7 @@ ET
0.200 0.200 0.200 SCN
BT
-56.88050000000001 407.5560000000004 Td
+56.88050000000001 100.95600000000039 Td
/F1.0 10.5 Tf
<a5> Tj
ET
@@ -28095,7 +30567,7 @@ ET
0.694 0.129 0.275 SCN
BT
-66.24000000000001 409.7400000000004 Td
+66.24000000000001 103.14000000000038 Td
/F4.0 10.5 Tf
<6170706c69636174696f6e2f6a736f6e> Tj
ET
@@ -28114,9 +30586,9 @@ q
0.200 0.200 0.200 SCN
BT
-49.24 14.388 Td
+552.698 14.388 Td
/F1.0 9 Tf
-<3138> Tj
+<3139> Tj
ET
0.000 0.000 0.000 SCN
@@ -28126,58 +30598,73 @@ Q
endstream
endobj
-237 0 obj
+246 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 236 0 R
+/Contents 245 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F1.0 8 0 R
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [244 0 R]
+/Annots [248 0 R 257 0 R]
>>
endobj
-238 0 obj
-[237 0 R /XYZ 0 792.0 null]
+247 0 obj
+[246 0 R /XYZ 0 792.0 null]
endobj
-239 0 obj
-[237 0 R /XYZ 0 702.1200000000001 null]
+248 0 obj
+<< /Border [0 0 0]
+/Dest (_looptemplate)
+/Subtype /Link
+/Rect [463.65600000000006 669.2470000000002 535.2997558593751 683.5270000000002]
+/Type /Annot
+>>
endobj
-240 0 obj
-[237 0 R /XYZ 0 662.0400000000002 null]
+249 0 obj
+[246 0 R /XYZ 0 653.2800000000002 null]
endobj
-241 0 obj
-<< /Limits [(_parameters_24) (_paths)]
-/Names [(_parameters_24) 217 0 R (_parameters_25) 223 0 R (_parameters_26) 240 0 R (_parameters_3) 69 0 R (_parameters_4) 78 0 R (_parameters_5) 82 0 R (_parameters_6) 89 0 R (_parameters_7) 95 0 R (_parameters_8) 103 0 R (_parameters_9) 106 0 R (_paths) 30 0 R]
+250 0 obj
+[246 0 R /XYZ 0 597.0000000000003 null]
+endobj
+251 0 obj
+<< /Limits [(_verb181) (_version_information)]
+/Names [(_verb181) 239 0 R (_verb182) 231 0 R (_verb183) 197 0 R (_verb184) 214 0 R (_verb185) 222 0 R (_verb186) 203 0 R (_verb187) 208 0 R (_verb188) 39 0 R (_verb189) 31 0 R (_verb190) 36 0 R (_version_information) 25 0 R]
>>
endobj
-242 0 obj
-[237 0 R /XYZ 0 556.9200000000003 null]
+252 0 obj
+[246 0 R /XYZ 0 556.9200000000004 null]
endobj
-243 0 obj
-<< /Limits [(_responses_6) (_route106)]
-/Names [(_responses_6) 59 0 R (_responses_7) 65 0 R (_responses_8) 71 0 R (_responses_9) 79 0 R (_route100) 209 0 R (_route101) 197 0 R (_route102) 222 0 R (_route103) 230 0 R (_route104) 239 0 R (_route105) 234 0 R (_route106) 39 0 R]
->>
+253 0 obj
+[246 0 R /XYZ 0 451.8000000000005 null]
endobj
-244 0 obj
+254 0 obj
+[246 0 R /XYZ 0 395.5200000000005 null]
+endobj
+255 0 obj
+[246 0 R /XYZ 0 355.44000000000045 null]
+endobj
+256 0 obj
+[246 0 R /XYZ 0 250.32000000000045 null]
+endobj
+257 0 obj
<< /Border [0 0 0]
/Dest (_looptemplate)
/Subtype /Link
-/Rect [463.65600000000006 467.76700000000045 535.2997558593751 482.0470000000004]
+/Rect [463.65600000000006 161.16700000000043 535.2997558593751 175.44700000000043]
/Type /Annot
>>
endobj
-245 0 obj
-[237 0 R /XYZ 0 451.8000000000004 null]
+258 0 obj
+[246 0 R /XYZ 0 145.20000000000041 null]
endobj
-246 0 obj
-<< /Length 17145
+259 0 obj
+<< /Length 17143
>>
stream
q
@@ -29485,9 +31972,9 @@ q
0.200 0.200 0.200 SCN
BT
-552.698 14.388 Td
+49.24 14.388 Td
/F1.0 9 Tf
-<3139> Tj
+<3230> Tj
ET
0.000 0.000 0.000 SCN
@@ -29497,35 +31984,35 @@ Q
endstream
endobj
-247 0 obj
+260 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 246 0 R
+/Contents 259 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [252 0 R]
+/Annots [265 0 R]
>>
endobj
-248 0 obj
-[247 0 R /XYZ 0 792.0 null]
+261 0 obj
+[260 0 R /XYZ 0 792.0 null]
endobj
-249 0 obj
-[247 0 R /XYZ 0 712.0799999999999 null]
+262 0 obj
+[260 0 R /XYZ 0 712.0799999999999 null]
endobj
-250 0 obj
-[247 0 R /XYZ 0 524.04 null]
+263 0 obj
+[260 0 R /XYZ 0 524.04 null]
endobj
-251 0 obj
-[247 0 R /XYZ 0 335.99999999999994 null]
+264 0 obj
+[260 0 R /XYZ 0 335.99999999999994 null]
endobj
-252 0 obj
+265 0 obj
<< /Border [0 0 0]
/Dest (_dictionaryelement)
/Subtype /Link
@@ -29533,8 +32020,8 @@ endobj
/Type /Annot
>>
endobj
-253 0 obj
-<< /Length 19851
+266 0 obj
+<< /Length 19853
>>
stream
q
@@ -31090,9 +33577,9 @@ q
0.200 0.200 0.200 SCN
BT
-49.24 14.388 Td
+552.698 14.388 Td
/F1.0 9 Tf
-<3230> Tj
+<3231> Tj
ET
0.000 0.000 0.000 SCN
@@ -31102,26 +33589,31 @@ Q
endstream
endobj
-254 0 obj
+267 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 253 0 R
+/Contents 266 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [256 0 R]
+/Annots [270 0 R]
>>
endobj
-255 0 obj
-[254 0 R /XYZ 0 608.04 null]
+268 0 obj
+[267 0 R /XYZ 0 608.04 null]
endobj
-256 0 obj
+269 0 obj
+<< /Limits [(_consumes_9) (_jsonobject)]
+/Names [(_consumes_9) 220 0 R (_definitions) 261 0 R (_dictionary) 264 0 R (_dictionaryelement) 268 0 R (_externalcomponent) 271 0 R (_externalcomponentstate) 275 0 R (_jsonarray) 276 0 R (_jsonelement) 284 0 R (_jsonnull) 292 0 R (_jsonobject) 302 0 R]
+>>
+endobj
+270 0 obj
<< /Border [0 0 0]
/Dest (_dictionary)
/Subtype /Link
@@ -31129,16 +33621,11 @@ endobj
/Type /Annot
>>
endobj
-257 0 obj
-[254 0 R /XYZ 0 157.07999999999998 null]
-endobj
-258 0 obj
-<< /Limits [(_definitions) (_loop)]
-/Names [(_definitions) 248 0 R (_dictionary) 251 0 R (_dictionaryelement) 255 0 R (_externalcomponent) 257 0 R (_externalcomponentstate) 262 0 R (_jsonarray) 263 0 R (_jsonnull) 271 0 R (_jsonobject) 279 0 R (_jsonprimitive) 289 0 R (_loop) 297 0 R]
->>
+271 0 obj
+[267 0 R /XYZ 0 157.07999999999998 null]
endobj
-259 0 obj
-<< /Length 20493
+272 0 obj
+<< /Length 20491
>>
stream
q
@@ -32696,9 +35183,9 @@ q
0.200 0.200 0.200 SCN
BT
-552.698 14.388 Td
+49.24 14.388 Td
/F1.0 9 Tf
-<3231> Tj
+<3232> Tj
ET
0.000 0.000 0.000 SCN
@@ -32708,23 +35195,23 @@ Q
endstream
endobj
-260 0 obj
+273 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 259 0 R
+/Contents 272 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [261 0 R 264 0 R 265 0 R]
+/Annots [274 0 R 277 0 R 278 0 R]
>>
endobj
-261 0 obj
+274 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponentstate)
/Subtype /Link
@@ -32732,13 +35219,13 @@ endobj
/Type /Annot
>>
endobj
-262 0 obj
-[260 0 R /XYZ 0 683.1600000000001 null]
+275 0 obj
+[273 0 R /XYZ 0 683.1600000000001 null]
endobj
-263 0 obj
-[260 0 R /XYZ 0 495.1200000000002 null]
+276 0 obj
+[273 0 R /XYZ 0 495.1200000000002 null]
endobj
-264 0 obj
+277 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
@@ -32746,7 +35233,7 @@ endobj
/Type /Annot
>>
endobj
-265 0 obj
+278 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
@@ -32754,8 +35241,8 @@ endobj
/Type /Annot
>>
endobj
-266 0 obj
-<< /Length 21348
+279 0 obj
+<< /Length 21356
>>
stream
q
@@ -33769,7 +36256,7 @@ ET
BT
48.24 321.6960000000003 Td
/F2.0 18 Tf
-<332e382e204a736f6e4e756c6c> Tj
+<332e382e204a736f6e456c656d656e74> Tj
ET
0.000 0.000 0.000 SCN
@@ -34404,9 +36891,9 @@ q
0.200 0.200 0.200 SCN
BT
-49.24 14.388 Td
+552.698 14.388 Td
/F1.0 9 Tf
-<3232> Tj
+<3233> Tj
ET
0.000 0.000 0.000 SCN
@@ -34416,23 +36903,23 @@ Q
endstream
endobj
-267 0 obj
+280 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 266 0 R
+/Contents 279 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [268 0 R 269 0 R 270 0 R]
+/Annots [281 0 R 282 0 R 283 0 R]
>>
endobj
-268 0 obj
+281 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -34440,7 +36927,7 @@ endobj
/Type /Annot
>>
endobj
-269 0 obj
+282 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
@@ -34448,7 +36935,7 @@ endobj
/Type /Annot
>>
endobj
-270 0 obj
+283 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
@@ -34456,11 +36943,11 @@ endobj
/Type /Annot
>>
endobj
-271 0 obj
-[267 0 R /XYZ 0 345.1200000000003 null]
+284 0 obj
+[280 0 R /XYZ 0 345.1200000000003 null]
endobj
-272 0 obj
-<< /Length 21776
+285 0 obj
+<< /Length 21770
>>
stream
q
@@ -35850,7 +38337,7 @@ ET
BT
48.24 171.45600000000013 Td
/F2.0 18 Tf
-<332e392e204a736f6e4f626a656374> Tj
+<332e392e204a736f6e4e756c6c> Tj
ET
0.000 0.000 0.000 SCN
@@ -36125,9 +38612,9 @@ q
0.200 0.200 0.200 SCN
BT
-552.698 14.388 Td
+49.24 14.388 Td
/F1.0 9 Tf
-<3233> Tj
+<3234> Tj
ET
0.000 0.000 0.000 SCN
@@ -36137,23 +38624,23 @@ Q
endstream
endobj
-273 0 obj
+286 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 272 0 R
+/Contents 285 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [274 0 R 275 0 R 276 0 R 277 0 R 278 0 R]
+/Annots [287 0 R 288 0 R 289 0 R 290 0 R 291 0 R]
>>
endobj
-274 0 obj
+287 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
@@ -36161,7 +38648,7 @@ endobj
/Type /Annot
>>
endobj
-275 0 obj
+288 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
@@ -36169,7 +38656,7 @@ endobj
/Type /Annot
>>
endobj
-276 0 obj
+289 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -36177,7 +38664,7 @@ endobj
/Type /Annot
>>
endobj
-277 0 obj
+290 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
@@ -36185,7 +38672,7 @@ endobj
/Type /Annot
>>
endobj
-278 0 obj
+291 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
@@ -36193,11 +38680,11 @@ endobj
/Type /Annot
>>
endobj
-279 0 obj
-[273 0 R /XYZ 0 194.88000000000017 null]
+292 0 obj
+[286 0 R /XYZ 0 194.88000000000017 null]
endobj
-280 0 obj
-<< /Length 22905
+293 0 obj
+<< /Length 22907
>>
stream
q
@@ -37953,9 +40440,9 @@ q
0.200 0.200 0.200 SCN
BT
-49.24 14.388 Td
+552.698 14.388 Td
/F1.0 9 Tf
-<3234> Tj
+<3235> Tj
ET
0.000 0.000 0.000 SCN
@@ -37965,23 +40452,23 @@ Q
endstream
endobj
-281 0 obj
+294 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 280 0 R
+/Contents 293 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [282 0 R 283 0 R 284 0 R 285 0 R 286 0 R]
+/Annots [295 0 R 296 0 R 297 0 R 298 0 R 299 0 R]
>>
endobj
-282 0 obj
+295 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
@@ -37989,7 +40476,7 @@ endobj
/Type /Annot
>>
endobj
-283 0 obj
+296 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
@@ -37997,7 +40484,7 @@ endobj
/Type /Annot
>>
endobj
-284 0 obj
+297 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -38005,7 +40492,7 @@ endobj
/Type /Annot
>>
endobj
-285 0 obj
+298 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
@@ -38013,7 +40500,7 @@ endobj
/Type /Annot
>>
endobj
-286 0 obj
+299 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
@@ -38021,8 +40508,8 @@ endobj
/Type /Annot
>>
endobj
-287 0 obj
-<< /Length 21594
+300 0 obj
+<< /Length 21622
>>
stream
q
@@ -38034,7 +40521,7 @@ q
BT
48.24 734.976 Td
/F2.0 18 Tf
-<332e31302e204a736f6e5072696d6974697665> Tj
+<332e31302e204a736f6e4f626a656374> Tj
ET
0.000 0.000 0.000 SCN
@@ -39636,7 +42123,7 @@ S
BT
51.24 77.83300000000004 Td
/F2.0 10.5 Tf
-<626f6f6c65616e> Tj
+[<6a736f6e417272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
@@ -39699,9 +42186,9 @@ q
0.200 0.200 0.200 SCN
BT
-552.698 14.388 Td
+49.24 14.388 Td
/F1.0 9 Tf
-<3235> Tj
+<3236> Tj
ET
0.000 0.000 0.000 SCN
@@ -39711,26 +42198,26 @@ Q
endstream
endobj
-288 0 obj
+301 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 287 0 R
+/Contents 300 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [290 0 R 291 0 R 292 0 R 293 0 R 294 0 R]
+/Annots [303 0 R 304 0 R 305 0 R 306 0 R 307 0 R]
>>
endobj
-289 0 obj
-[288 0 R /XYZ 0 792.0 null]
+302 0 obj
+[301 0 R /XYZ 0 792.0 null]
endobj
-290 0 obj
+303 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
@@ -39738,7 +42225,7 @@ endobj
/Type /Annot
>>
endobj
-291 0 obj
+304 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
@@ -39746,7 +42233,7 @@ endobj
/Type /Annot
>>
endobj
-292 0 obj
+305 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -39754,7 +42241,7 @@ endobj
/Type /Annot
>>
endobj
-293 0 obj
+306 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
@@ -39762,7 +42249,7 @@ endobj
/Type /Annot
>>
endobj
-294 0 obj
+307 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
@@ -39770,8 +42257,8 @@ endobj
/Type /Annot
>>
endobj
-295 0 obj
-<< /Length 22743
+308 0 obj
+<< /Length 21703
>>
stream
q
@@ -39808,30 +42295,6 @@ f
269.177 620.040 294.583 37.560 re
f
0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 582.480 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 582.480 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 544.920 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 544.920 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 507.360 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 507.360 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
0.5 w
/DeviceRGB CS
0.867 0.867 0.867 SCN
@@ -39934,7 +42397,7 @@ S
BT
51.24 716.473 Td
/F2.0 10.5 Tf
-[<6a736f6e417272> 20.01953125 <61> 20.01953125 <79>] TJ
+<6a736f6e4e756c6c> Tj
ET
@@ -40016,7 +42479,7 @@ S
BT
51.24 678.913 Td
/F2.0 10.5 Tf
-<6a736f6e4e756c6c> Tj
+<6a736f6e4f626a656374> Tj
ET
@@ -40098,7 +42561,7 @@ S
BT
51.24 641.3530000000001 Td
/F2.0 10.5 Tf
-<6a736f6e4f626a656374> Tj
+<6a736f6e5072696d6974697665> Tj
ET
@@ -40149,28 +42612,151 @@ BT
ET
0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 584.6160000000002 Td
+/F2.0 18 Tf
+<332e31312e204a736f6e5072696d6974697665> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 544.680 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 544.680 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 507.120 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 507.120 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 469.560 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 469.560 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 432.000 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 432.000 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 394.440 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 394.440 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 356.880 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 356.880 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 319.320 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 319.320 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 281.760 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 281.760 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 244.200 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 244.200 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 206.640 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 206.640 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 169.080 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 169.080 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 131.520 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 131.520 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 93.960 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 93.960 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 56.400 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 56.400 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 620.040 m
-269.177 620.040 l
+48.240 567.960 m
+269.177 567.960 l
S
[ ] 0 d
-0.5 w
+1.5 w
0.867 0.867 0.867 SCN
-48.240 582.480 m
-269.177 582.480 l
+48.240 544.680 m
+269.177 544.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 620.290 m
-48.240 582.230 l
+48.240 568.210 m
+48.240 543.930 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 620.290 m
-269.177 582.230 l
+269.177 568.210 m
+269.177 543.930 l
S
[ ] 0 d
1 w
@@ -40178,46 +42764,34 @@ S
0.200 0.200 0.200 scn
BT
-51.24 603.7930000000001 Td
+51.24 552.2130000000002 Td
/F2.0 10.5 Tf
-<6a736f6e5072696d6974697665> Tj
-ET
-
-
-BT
-51.24 589.5130000000001 Td
-ET
-
-
-BT
-51.24 589.5130000000001 Td
-/F3.0 10.5 Tf
-<6f7074696f6e616c> Tj
+<4e616d65> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 620.040 m
-563.760 620.040 l
+269.177 567.960 m
+563.760 567.960 l
S
[ ] 0 d
-0.5 w
+1.5 w
0.867 0.867 0.867 SCN
-269.177 582.480 m
-563.760 582.480 l
+269.177 544.680 m
+563.760 544.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 620.290 m
-269.177 582.230 l
+269.177 568.210 m
+269.177 543.930 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 620.290 m
-563.760 582.230 l
+563.760 568.210 m
+563.760 543.930 l
S
[ ] 0 d
1 w
@@ -40225,34 +42799,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 596.6530000000001 Td
-/F1.0 10.5 Tf
-<626f6f6c65616e> Tj
+272.17692192000004 552.2130000000002 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 582.480 m
-269.177 582.480 l
+48.240 544.680 m
+269.177 544.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 544.920 m
-269.177 544.920 l
+48.240 507.120 m
+269.177 507.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 582.730 m
-48.240 544.670 l
+48.240 544.930 m
+48.240 506.870 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 582.730 m
-269.177 544.670 l
+269.177 544.930 m
+269.177 506.870 l
S
[ ] 0 d
1 w
@@ -40260,19 +42834,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 566.2330000000002 Td
+51.24 528.4330000000002 Td
/F2.0 10.5 Tf
-<6e756d626572> Tj
+<6173426967446563696d616c> Tj
ET
BT
-51.24 551.9530000000002 Td
+51.24 514.1530000000002 Td
ET
BT
-51.24 551.9530000000002 Td
+51.24 514.1530000000002 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -40280,26 +42854,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 582.480 m
-563.760 582.480 l
+269.177 544.680 m
+563.760 544.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 544.920 m
-563.760 544.920 l
+269.177 507.120 m
+563.760 507.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 582.730 m
-269.177 544.670 l
+269.177 544.930 m
+269.177 506.870 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 582.730 m
-563.760 544.670 l
+563.760 544.930 m
+563.760 506.870 l
S
[ ] 0 d
1 w
@@ -40307,34 +42881,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 559.0930000000002 Td
+272.17692192000004 521.2930000000002 Td
/F1.0 10.5 Tf
-<626f6f6c65616e> Tj
+<6e756d626572> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 544.920 m
-269.177 544.920 l
+48.240 507.120 m
+269.177 507.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 507.360 m
-269.177 507.360 l
+48.240 469.560 m
+269.177 469.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 545.170 m
-48.240 507.110 l
+48.240 507.370 m
+48.240 469.310 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 545.170 m
-269.177 507.110 l
+269.177 507.370 m
+269.177 469.310 l
S
[ ] 0 d
1 w
@@ -40342,19 +42916,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 528.6730000000002 Td
+51.24 490.8730000000002 Td
/F2.0 10.5 Tf
-<737472696e67> Tj
+<6173426967496e7465676572> Tj
ET
BT
-51.24 514.3930000000003 Td
+51.24 476.5930000000002 Td
ET
BT
-51.24 514.3930000000003 Td
+51.24 476.5930000000002 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -40362,26 +42936,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 544.920 m
-563.760 544.920 l
+269.177 507.120 m
+563.760 507.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 507.360 m
-563.760 507.360 l
+269.177 469.560 m
+563.760 469.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 545.170 m
-269.177 507.110 l
+269.177 507.370 m
+269.177 469.310 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 545.170 m
-563.760 507.110 l
+563.760 507.370 m
+563.760 469.310 l
S
[ ] 0 d
1 w
@@ -40389,118 +42963,19 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 521.5330000000002 Td
+272.17692192000004 483.73300000000023 Td
/F1.0 10.5 Tf
-<626f6f6c65616e> Tj
-ET
-
-0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-BT
-48.24 471.9360000000003 Td
-/F2.0 18 Tf
-<332e31312e204c6f6f70> Tj
+<696e7465676572> Tj
ET
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 432.000 220.937 23.280 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 432.000 294.583 23.280 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 394.440 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 394.440 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 356.880 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 356.880 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 319.320 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 319.320 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 281.760 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 281.760 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 244.200 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 244.200 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 206.640 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 206.640 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 169.080 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 169.080 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 131.520 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 131.520 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 93.960 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 93.960 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 56.400 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 56.400 294.583 37.560 re
-f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 455.280 m
-269.177 455.280 l
+48.240 469.560 m
+269.177 469.560 l
S
[ ] 0 d
-1.5 w
+0.5 w
0.867 0.867 0.867 SCN
48.240 432.000 m
269.177 432.000 l
@@ -40508,14 +42983,14 @@ S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 455.530 m
-48.240 431.250 l
+48.240 469.810 m
+48.240 431.750 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 455.530 m
-269.177 431.250 l
+269.177 469.810 m
+269.177 431.750 l
S
[ ] 0 d
1 w
@@ -40523,19 +42998,31 @@ S
0.200 0.200 0.200 scn
BT
-51.24 439.53300000000024 Td
+51.24 453.3130000000003 Td
/F2.0 10.5 Tf
-<4e616d65> Tj
+<6173426f6f6c65616e> Tj
+ET
+
+
+BT
+51.24 439.03300000000024 Td
+ET
+
+
+BT
+51.24 439.03300000000024 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 455.280 m
-563.760 455.280 l
+269.177 469.560 m
+563.760 469.560 l
S
[ ] 0 d
-1.5 w
+0.5 w
0.867 0.867 0.867 SCN
269.177 432.000 m
563.760 432.000 l
@@ -40543,14 +43030,14 @@ S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 455.530 m
-269.177 431.250 l
+269.177 469.810 m
+269.177 431.750 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 455.530 m
-563.760 431.250 l
+563.760 469.810 m
+563.760 431.750 l
S
[ ] 0 d
1 w
@@ -40558,9 +43045,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 439.53300000000024 Td
-/F2.0 10.5 Tf
-<536368656d61> Tj
+272.17692192000004 446.1730000000003 Td
+/F1.0 10.5 Tf
+<626f6f6c65616e> Tj
ET
0.000 0.000 0.000 scn
@@ -40595,7 +43082,7 @@ S
BT
51.24 415.7530000000002 Td
/F2.0 10.5 Tf
-<636f6d706f6e656e7473> Tj
+[<617342> 20.01953125 <797465>] TJ
ET
@@ -40638,33 +43125,11 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
BT
272.17692192000004 408.6130000000002 Td
/F1.0 10.5 Tf
-<3c20737472696e672c20> Tj
-ET
-
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-
-BT
-315.25842192000005 408.6130000000002 Td
-/F1.0 10.5 Tf
-<45787465726e616c436f6d706f6e656e74> Tj
-ET
-
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-
-BT
-415.81692192 408.6130000000002 Td
-/F1.0 10.5 Tf
-<203e206d6170> Tj
+[<737472696e67202862> 20.01953125 <79746529>] TJ
ET
0.000 0.000 0.000 scn
@@ -40699,7 +43164,7 @@ S
BT
51.24 378.19300000000027 Td
/F2.0 10.5 Tf
-[<6372656174656442> 20.01953125 <79>] TJ
+[<617343686172> 20.01953125 <6163746572>] TJ
ET
@@ -40781,7 +43246,7 @@ S
BT
51.24 340.6330000000002 Td
/F2.0 10.5 Tf
-<6372656174656444617465> Tj
+<6173446f75626c65> Tj
ET
@@ -40828,7 +43293,7 @@ S
BT
272.17692192000004 333.4930000000002 Td
/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
+<6e756d6265722028646f75626c6529> Tj
ET
0.000 0.000 0.000 scn
@@ -40863,7 +43328,7 @@ S
BT
51.24 303.07300000000026 Td
/F2.0 10.5 Tf
-[<646361654465706c6f> 20.01953125 <796d656e744964>] TJ
+<6173466c6f6174> Tj
ET
@@ -40910,7 +43375,7 @@ S
BT
272.17692192000004 295.9330000000003 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<6e756d6265722028666c6f617429> Tj
ET
0.000 0.000 0.000 scn
@@ -40945,7 +43410,7 @@ S
BT
51.24 265.5130000000002 Td
/F2.0 10.5 Tf
-[<646361654465706c6f> 20.01953125 <796d656e7453746174757355726c>] TJ
+<6173496e74> Tj
ET
@@ -40992,7 +43457,7 @@ S
BT
272.17692192000004 258.3730000000002 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<696e74656765722028696e74333229> Tj
ET
0.000 0.000 0.000 scn
@@ -41025,19 +43490,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 227.95300000000026 Td
+51.24 227.95300000000023 Td
/F2.0 10.5 Tf
-<676c6f62616c50726f706572746965734a736f6e> Tj
+[<61734a736f6e417272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
BT
-51.24 213.67300000000026 Td
+51.24 213.67300000000023 Td
ET
BT
-51.24 213.67300000000026 Td
+51.24 213.67300000000023 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -41078,9 +43543,9 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 220.81300000000024 Td
+272.17692192000004 220.81300000000022 Td
/F1.0 10.5 Tf
-<4a736f6e4f626a656374> Tj
+[<4a736f6e417272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
0.000 0.000 0.000 SCN
@@ -41115,19 +43580,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 190.39300000000026 Td
+51.24 190.39300000000023 Td
/F2.0 10.5 Tf
-<6c617374436f6d70757465645374617465> Tj
+<61734a736f6e4e756c6c> Tj
ET
BT
-51.24 176.11300000000026 Td
+51.24 176.11300000000023 Td
ET
BT
-51.24 176.11300000000026 Td
+51.24 176.11300000000023 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -41160,20 +43625,21 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
-272.17692192000004 190.39300000000026 Td
-/F1.0 10.5 Tf
-[<656e756d202844455349474e2c205355424d49545445442c204445504c4f> 29.78515625 <5945442c2052> 9.765625 <554e4e494e472c>] TJ
-ET
-
-
-BT
-272.17692192000004 176.11300000000026 Td
+272.17692192000004 183.2530000000002 Td
/F1.0 10.5 Tf
-[<53> 20.01953125 <54> 20.01953125 <4f505045442c20494e5f455252> 20.01953125 <4f522c2057> 60.05859375 <414954494e4729>] TJ
+<4a736f6e4e756c6c> Tj
ET
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -41206,7 +43672,7 @@ S
BT
51.24 152.83300000000023 Td
/F2.0 10.5 Tf
-<6c6f6f704c6f6773> Tj
+<61734a736f6e4f626a656374> Tj
ET
@@ -41253,31 +43719,17 @@ S
0.259 0.545 0.792 SCN
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-
-BT
-272.17692192000004 145.6930000000002 Td
-/F1.0 10.5 Tf
-<3c20> Tj
-ET
-
0.259 0.545 0.792 scn
0.259 0.545 0.792 SCN
BT
-280.76592192000004 145.6930000000002 Td
+272.17692192000004 145.6930000000002 Td
/F1.0 10.5 Tf
-<4c6f6f704c6f67> Tj
+<4a736f6e4f626a656374> Tj
ET
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-
-BT
-324.10992192000003 145.6930000000002 Td
-/F1.0 10.5 Tf
-[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
-ET
-
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -41310,7 +43762,7 @@ S
BT
51.24 115.27300000000021 Td
/F2.0 10.5 Tf
-[<6c6f6f7054> 29.78515625 <656d706c617465>] TJ
+<61734a736f6e5072696d6974697665> Tj
ET
@@ -41363,7 +43815,7 @@ S
BT
272.17692192000004 108.13300000000021 Td
/F1.0 10.5 Tf
-[<4c6f6f7054> 29.78515625 <656d706c617465>] TJ
+<4a736f6e5072696d6974697665> Tj
ET
0.000 0.000 0.000 SCN
@@ -41400,7 +43852,7 @@ S
BT
51.24 77.7130000000002 Td
/F2.0 10.5 Tf
-<6d6963726f53657276696365506f6c6963696573> Tj
+<61734c6f6e67> Tj
ET
@@ -41443,33 +43895,11 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
BT
272.17692192000004 70.5730000000002 Td
/F1.0 10.5 Tf
-<3c20> Tj
-ET
-
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-
-BT
-280.76592192000004 70.5730000000002 Td
-/F1.0 10.5 Tf
-<4d6963726f53657276696365506f6c696379> Tj
-ET
-
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-
-BT
-376.69392192000004 70.5730000000002 Td
-/F1.0 10.5 Tf
-[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
@@ -41485,9 +43915,9 @@ q
0.200 0.200 0.200 SCN
BT
-49.24 14.388 Td
+552.698 14.388 Td
/F1.0 9 Tf
-<3236> Tj
+<3237> Tj
ET
0.000 0.000 0.000 SCN
@@ -41497,67 +43927,59 @@ Q
endstream
endobj
-296 0 obj
+309 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 295 0 R
+/Contents 308 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [298 0 R 299 0 R 300 0 R 301 0 R 302 0 R]
+/Annots [311 0 R 312 0 R 313 0 R 314 0 R]
>>
endobj
-297 0 obj
-[296 0 R /XYZ 0 495.3600000000003 null]
-endobj
-298 0 obj
-<< /Border [0 0 0]
-/Dest (_externalcomponent)
-/Subtype /Link
-/Rect [315.25842192000005 405.5470000000002 415.81692192 419.8270000000002]
-/Type /Annot
->>
+310 0 obj
+[309 0 R /XYZ 0 608.0400000000002 null]
endobj
-299 0 obj
+311 0 obj
<< /Border [0 0 0]
-/Dest (_jsonobject)
+/Dest (_jsonarray)
/Subtype /Link
-/Rect [272.17692192000004 217.74700000000027 325.32792192000005 232.02700000000027]
+/Rect [272.17692192000004 217.74700000000024 322.17751176375003 232.0270000000002]
/Type /Annot
>>
endobj
-300 0 obj
+312 0 obj
<< /Border [0 0 0]
-/Dest (_looplog)
+/Dest (_jsonnull)
/Subtype /Link
-/Rect [280.76592192000004 142.62700000000024 324.10992192000003 156.9070000000002]
+/Rect [272.17692192000004 180.18700000000024 314.65992192000004 194.4670000000002]
/Type /Annot
>>
endobj
-301 0 obj
+313 0 obj
<< /Border [0 0 0]
-/Dest (_looptemplate)
+/Dest (_jsonobject)
/Subtype /Link
-/Rect [272.17692192000004 105.0670000000002 343.82067777937505 119.34700000000021]
+/Rect [272.17692192000004 142.62700000000024 325.32792192000005 156.9070000000002]
/Type /Annot
>>
endobj
-302 0 obj
+314 0 obj
<< /Border [0 0 0]
-/Dest (_microservicepolicy)
+/Dest (_jsonprimitive)
/Subtype /Link
-/Rect [280.76592192000004 67.5070000000002 376.69392192000004 81.7870000000002]
+/Rect [272.17692192000004 105.0670000000002 340.1224219200001 119.34700000000021]
/Type /Annot
>>
endobj
-303 0 obj
-<< /Length 22218
+315 0 obj
+<< /Length 21616
>>
stream
q
@@ -41610,6 +44032,46 @@ f
269.177 544.920 294.583 37.560 re
f
0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 507.360 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 507.360 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 469.800 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 469.800 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 432.240 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 432.240 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 394.680 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 394.680 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 357.120 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 357.120 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
0.5 w
/DeviceRGB CS
0.867 0.867 0.867 SCN
@@ -41712,17 +44174,17 @@ S
BT
51.24 716.473 Td
/F2.0 10.5 Tf
-<6d6f64656c53657276696365> Tj
+<61734e756d626572> Tj
ET
BT
-51.24 702.193 Td
+51.24 702.1929999999999 Td
ET
BT
-51.24 702.193 Td
+51.24 702.1929999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -41763,9 +44225,9 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 709.333 Td
+272.17692192000004 709.3329999999999 Td
/F1.0 10.5 Tf
-<53657276696365> Tj
+<4e756d626572> Tj
ET
0.000 0.000 0.000 SCN
@@ -41800,19 +44262,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 678.913 Td
+51.24 678.9129999999998 Td
/F2.0 10.5 Tf
-<6e616d65> Tj
+<617353686f7274> Tj
ET
BT
-51.24 664.633 Td
+51.24 664.6329999999998 Td
ET
BT
-51.24 664.633 Td
+51.24 664.6329999999998 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -41847,9 +44309,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 671.773 Td
+272.17692192000004 671.7729999999998 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<696e74656765722028696e74333229> Tj
ET
0.000 0.000 0.000 scn
@@ -41882,19 +44344,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 641.3530000000001 Td
+51.24 641.3529999999998 Td
/F2.0 10.5 Tf
-[<6f706572> 20.01953125 <6174696f6e616c506f6c6963696573>] TJ
+<6173537472696e67> Tj
ET
BT
-51.24 627.0730000000001 Td
+51.24 627.0729999999999 Td
ET
BT
-51.24 627.0730000000001 Td
+51.24 627.0729999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -41927,33 +44389,11 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-
-BT
-272.17692192000004 634.2130000000001 Td
-/F1.0 10.5 Tf
-<3c20> Tj
-ET
-
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
-280.76592192000004 634.2130000000001 Td
-/F1.0 10.5 Tf
-[<4f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
-ET
-
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-
-BT
-370.37271684187505 634.2130000000001 Td
+272.17692192000004 634.2129999999999 Td
/F1.0 10.5 Tf
-[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
@@ -41986,19 +44426,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 603.7930000000001 Td
+51.24 603.7929999999999 Td
/F2.0 10.5 Tf
-[<7570646174656442> 20.01953125 <79>] TJ
+<626f6f6c65616e> Tj
ET
BT
-51.24 589.513 Td
+51.24 589.5129999999999 Td
ET
BT
-51.24 589.513 Td
+51.24 589.5129999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -42033,9 +44473,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 596.653 Td
+272.17692192000004 596.6529999999999 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<626f6f6c65616e> Tj
ET
0.000 0.000 0.000 scn
@@ -42070,7 +44510,7 @@ S
BT
51.24 566.233 Td
/F2.0 10.5 Tf
-<7570646174656444617465> Tj
+[<6a736f6e417272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
@@ -42117,139 +44557,32 @@ S
BT
272.17692192000004 559.093 Td
/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
-ET
-
-0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-BT
-48.24 509.49600000000015 Td
-/F2.0 18 Tf
-<332e31322e204c6f6f70456c656d656e744d6f64656c> Tj
+<626f6f6c65616e> Tj
ET
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 469.560 220.937 23.280 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 469.560 294.583 23.280 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 432.000 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 432.000 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 394.440 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 394.440 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 356.880 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 356.880 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 319.320 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 319.320 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 281.760 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 281.760 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 244.200 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 244.200 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 206.640 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 206.640 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 169.080 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 169.080 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 131.520 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 131.520 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 93.960 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 93.960 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 56.400 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 56.400 294.583 37.560 re
-f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 492.840 m
-269.177 492.840 l
+48.240 544.920 m
+269.177 544.920 l
S
[ ] 0 d
-1.5 w
+0.5 w
0.867 0.867 0.867 SCN
-48.240 469.560 m
-269.177 469.560 l
+48.240 507.360 m
+269.177 507.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 493.090 m
-48.240 468.810 l
+48.240 545.170 m
+48.240 507.110 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 493.090 m
-269.177 468.810 l
+269.177 545.170 m
+269.177 507.110 l
S
[ ] 0 d
1 w
@@ -42257,34 +44590,46 @@ S
0.200 0.200 0.200 scn
BT
-51.24 477.0930000000001 Td
+51.24 528.673 Td
/F2.0 10.5 Tf
-<4e616d65> Tj
+<6a736f6e4e756c6c> Tj
+ET
+
+
+BT
+51.24 514.393 Td
+ET
+
+
+BT
+51.24 514.393 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 492.840 m
-563.760 492.840 l
+269.177 544.920 m
+563.760 544.920 l
S
[ ] 0 d
-1.5 w
+0.5 w
0.867 0.867 0.867 SCN
-269.177 469.560 m
-563.760 469.560 l
+269.177 507.360 m
+563.760 507.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 493.090 m
-269.177 468.810 l
+269.177 545.170 m
+269.177 507.110 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 493.090 m
-563.760 468.810 l
+563.760 545.170 m
+563.760 507.110 l
S
[ ] 0 d
1 w
@@ -42292,34 +44637,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 477.0930000000001 Td
-/F2.0 10.5 Tf
-<536368656d61> Tj
+272.17692192000004 521.533 Td
+/F1.0 10.5 Tf
+<626f6f6c65616e> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 469.560 m
-269.177 469.560 l
+48.240 507.360 m
+269.177 507.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 432.000 m
-269.177 432.000 l
+48.240 469.800 m
+269.177 469.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 469.810 m
-48.240 431.750 l
+48.240 507.610 m
+48.240 469.550 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 469.810 m
-269.177 431.750 l
+269.177 507.610 m
+269.177 469.550 l
S
[ ] 0 d
1 w
@@ -42327,19 +44672,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 453.31300000000005 Td
+51.24 491.1130000000001 Td
/F2.0 10.5 Tf
-<626c75657072696e74> Tj
+<6a736f6e4f626a656374> Tj
ET
BT
-51.24 439.033 Td
+51.24 476.8330000000001 Td
ET
BT
-51.24 439.033 Td
+51.24 476.8330000000001 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -42347,26 +44692,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 469.560 m
-563.760 469.560 l
+269.177 507.360 m
+563.760 507.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 432.000 m
-563.760 432.000 l
+269.177 469.800 m
+563.760 469.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 469.810 m
-269.177 431.750 l
+269.177 507.610 m
+269.177 469.550 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 469.810 m
-563.760 431.750 l
+563.760 507.610 m
+563.760 469.550 l
S
[ ] 0 d
1 w
@@ -42374,34 +44719,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 446.17300000000006 Td
+272.17692192000004 483.9730000000001 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<626f6f6c65616e> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 432.000 m
-269.177 432.000 l
+48.240 469.800 m
+269.177 469.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 394.440 m
-269.177 394.440 l
+48.240 432.240 m
+269.177 432.240 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 432.250 m
-48.240 394.190 l
+48.240 470.050 m
+48.240 431.990 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 432.250 m
-269.177 394.190 l
+269.177 470.050 m
+269.177 431.990 l
S
[ ] 0 d
1 w
@@ -42409,19 +44754,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 415.7530000000001 Td
+51.24 453.55300000000017 Td
/F2.0 10.5 Tf
-[<6372656174656442> 20.01953125 <79>] TJ
+<6a736f6e5072696d6974697665> Tj
ET
BT
-51.24 401.47300000000007 Td
+51.24 439.27300000000014 Td
ET
BT
-51.24 401.47300000000007 Td
+51.24 439.27300000000014 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -42429,26 +44774,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 432.000 m
-563.760 432.000 l
+269.177 469.800 m
+563.760 469.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.440 m
-563.760 394.440 l
+269.177 432.240 m
+563.760 432.240 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 432.250 m
-269.177 394.190 l
+269.177 470.050 m
+269.177 431.990 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 432.250 m
-563.760 394.190 l
+563.760 470.050 m
+563.760 431.990 l
S
[ ] 0 d
1 w
@@ -42456,34 +44801,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 408.6130000000001 Td
+272.17692192000004 446.4130000000002 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<626f6f6c65616e> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 394.440 m
-269.177 394.440 l
+48.240 432.240 m
+269.177 432.240 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 356.880 m
-269.177 356.880 l
+48.240 394.680 m
+269.177 394.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 394.690 m
-48.240 356.630 l
+48.240 432.490 m
+48.240 394.430 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.690 m
-269.177 356.630 l
+269.177 432.490 m
+269.177 394.430 l
S
[ ] 0 d
1 w
@@ -42491,19 +44836,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 378.19300000000004 Td
+51.24 415.9930000000002 Td
/F2.0 10.5 Tf
-<6372656174656444617465> Tj
+<6e756d626572> Tj
ET
BT
-51.24 363.913 Td
+51.24 401.7130000000002 Td
ET
BT
-51.24 363.913 Td
+51.24 401.7130000000002 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -42511,26 +44856,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.440 m
-563.760 394.440 l
+269.177 432.240 m
+563.760 432.240 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 356.880 m
-563.760 356.880 l
+269.177 394.680 m
+563.760 394.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.690 m
-269.177 356.630 l
+269.177 432.490 m
+269.177 394.430 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 394.690 m
-563.760 356.630 l
+563.760 432.490 m
+563.760 394.430 l
S
[ ] 0 d
1 w
@@ -42538,34 +44883,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 371.05300000000005 Td
+272.17692192000004 408.85300000000024 Td
/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
+<626f6f6c65616e> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 356.880 m
-269.177 356.880 l
+48.240 394.680 m
+269.177 394.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.320 m
-269.177 319.320 l
+48.240 357.120 m
+269.177 357.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 357.130 m
-48.240 319.070 l
+48.240 394.930 m
+48.240 356.870 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 357.130 m
-269.177 319.070 l
+269.177 394.930 m
+269.177 356.870 l
S
[ ] 0 d
1 w
@@ -42573,19 +44918,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 340.6330000000001 Td
+51.24 378.4330000000003 Td
/F2.0 10.5 Tf
-<64636165426c75657072696e744964> Tj
+<737472696e67> Tj
ET
BT
-51.24 326.35300000000007 Td
+51.24 364.15300000000025 Td
ET
BT
-51.24 326.35300000000007 Td
+51.24 364.15300000000025 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -42593,26 +44938,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 356.880 m
-563.760 356.880 l
+269.177 394.680 m
+563.760 394.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.320 m
-563.760 319.320 l
+269.177 357.120 m
+563.760 357.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 357.130 m
-269.177 319.070 l
+269.177 394.930 m
+269.177 356.870 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 357.130 m
-563.760 319.070 l
+563.760 394.930 m
+563.760 356.870 l
S
[ ] 0 d
1 w
@@ -42620,19 +44965,86 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 333.4930000000001 Td
+272.17692192000004 371.2930000000003 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<626f6f6c65616e> Tj
ET
0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 321.6960000000003 Td
+/F2.0 18 Tf
+<332e31322e204c6f6f70> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 281.760 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 281.760 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 244.200 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 244.200 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 206.640 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 206.640 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 169.080 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 169.080 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 131.520 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 131.520 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 93.960 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 93.960 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 56.400 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 56.400 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.320 m
-269.177 319.320 l
+48.240 305.040 m
+269.177 305.040 l
S
[ ] 0 d
-0.5 w
+1.5 w
0.867 0.867 0.867 SCN
48.240 281.760 m
269.177 281.760 l
@@ -42640,14 +45052,14 @@ S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.570 m
-48.240 281.510 l
+48.240 305.290 m
+48.240 281.010 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.570 m
-269.177 281.510 l
+269.177 305.290 m
+269.177 281.010 l
S
[ ] 0 d
1 w
@@ -42655,31 +45067,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 303.07300000000004 Td
+51.24 289.29300000000023 Td
/F2.0 10.5 Tf
-<6c6f6f70456c656d656e7454797065> Tj
-ET
-
-
-BT
-51.24 288.793 Td
-ET
-
-
-BT
-51.24 288.793 Td
-/F3.0 10.5 Tf
-<6f7074696f6e616c> Tj
+<4e616d65> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.320 m
-563.760 319.320 l
+269.177 305.040 m
+563.760 305.040 l
S
[ ] 0 d
-0.5 w
+1.5 w
0.867 0.867 0.867 SCN
269.177 281.760 m
563.760 281.760 l
@@ -42687,14 +45087,14 @@ S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.570 m
-269.177 281.510 l
+269.177 305.290 m
+269.177 281.010 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 319.570 m
-563.760 281.510 l
+563.760 305.290 m
+563.760 281.010 l
S
[ ] 0 d
1 w
@@ -42702,9 +45102,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 295.93300000000005 Td
-/F1.0 10.5 Tf
-<737472696e67> Tj
+272.17692192000004 289.29300000000023 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
ET
0.000 0.000 0.000 scn
@@ -42737,19 +45137,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 265.5130000000001 Td
+51.24 265.5130000000002 Td
/F2.0 10.5 Tf
-<6e616d65> Tj
+<636f6d706f6e656e7473> Tj
ET
BT
-51.24 251.2330000000001 Td
+51.24 251.2330000000002 Td
ET
BT
-51.24 251.2330000000001 Td
+51.24 251.2330000000002 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -42782,11 +45182,33 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
BT
-272.17692192000004 258.3730000000001 Td
+272.17692192000004 258.3730000000002 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<3c20737472696e672c20> Tj
+ET
+
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+315.25842192000005 258.3730000000002 Td
+/F1.0 10.5 Tf
+<45787465726e616c436f6d706f6e656e74> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+415.81692192 258.3730000000002 Td
+/F1.0 10.5 Tf
+<203e206d6170> Tj
ET
0.000 0.000 0.000 scn
@@ -42819,19 +45241,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 227.9530000000001 Td
+51.24 227.95300000000026 Td
/F2.0 10.5 Tf
-<706f6c6963794d6f64656c73> Tj
+[<6372656174656442> 20.01953125 <79>] TJ
ET
BT
-51.24 213.6730000000001 Td
+51.24 213.67300000000026 Td
ET
BT
-51.24 213.6730000000001 Td
+51.24 213.67300000000026 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -42864,33 +45286,11 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-
-BT
-272.17692192000004 220.81300000000007 Td
-/F1.0 10.5 Tf
-<3c20> Tj
-ET
-
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-
-BT
-280.76592192000004 220.81300000000007 Td
-/F1.0 10.5 Tf
-<506f6c6963794d6f64656c> Tj
-ET
-
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
BT
-342.0649219200001 220.81300000000007 Td
+272.17692192000004 220.81300000000024 Td
/F1.0 10.5 Tf
-[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
@@ -42923,19 +45323,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 190.39300000000006 Td
+51.24 190.39300000000026 Td
/F2.0 10.5 Tf
-<73686f72744e616d65> Tj
+<6372656174656444617465> Tj
ET
BT
-51.24 176.11300000000006 Td
+51.24 176.11300000000026 Td
ET
BT
-51.24 176.11300000000006 Td
+51.24 176.11300000000026 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -42970,9 +45370,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 183.25300000000004 Td
+272.17692192000004 183.25300000000024 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
@@ -43005,19 +45405,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 152.83300000000006 Td
+51.24 152.83300000000025 Td
/F2.0 10.5 Tf
-[<7570646174656442> 20.01953125 <79>] TJ
+[<646361654465706c6f> 20.01953125 <796d656e744964>] TJ
ET
BT
-51.24 138.55300000000005 Td
+51.24 138.55300000000025 Td
ET
BT
-51.24 138.55300000000005 Td
+51.24 138.55300000000025 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -43052,7 +45452,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 145.69300000000004 Td
+272.17692192000004 145.69300000000024 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -43087,19 +45487,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 115.27300000000004 Td
+51.24 115.27300000000024 Td
/F2.0 10.5 Tf
-<7570646174656444617465> Tj
+[<646361654465706c6f> 20.01953125 <796d656e7453746174757355726c>] TJ
ET
BT
-51.24 100.99300000000004 Td
+51.24 100.99300000000024 Td
ET
BT
-51.24 100.99300000000004 Td
+51.24 100.99300000000024 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -43134,9 +45534,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 108.13300000000004 Td
+272.17692192000004 108.13300000000024 Td
/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
@@ -43169,19 +45569,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 77.71300000000004 Td
+51.24 77.71300000000024 Td
/F2.0 10.5 Tf
-[<7573656442> 20.01953125 <794c6f6f7054> 29.78515625 <656d706c61746573>] TJ
+<676c6f62616c50726f706572746965734a736f6e> Tj
ET
BT
-51.24 63.433000000000035 Td
+51.24 63.433000000000234 Td
ET
BT
-51.24 63.433000000000035 Td
+51.24 63.433000000000234 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -43218,31 +45618,17 @@ S
0.259 0.545 0.792 SCN
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-
-BT
-272.17692192000004 70.57300000000004 Td
-/F1.0 10.5 Tf
-<3c20> Tj
-ET
-
0.259 0.545 0.792 scn
0.259 0.545 0.792 SCN
BT
-280.76592192000004 70.57300000000004 Td
+272.17692192000004 70.57300000000023 Td
/F1.0 10.5 Tf
-[<4c6f6f7054> 29.78515625 <656d706c6174654c6f6f70456c656d656e744d6f64656c>] TJ
+<4a736f6e4f626a656374> Tj
ET
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-
-BT
-450.12267777937507 70.57300000000004 Td
-/F1.0 10.5 Tf
-[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
-ET
-
0.000 0.000 0.000 scn
q
0.000 0.000 0.000 scn
@@ -43256,9 +45642,9 @@ q
0.200 0.200 0.200 SCN
BT
-552.698 14.388 Td
+49.24 14.388 Td
/F1.0 9 Tf
-<3237> Tj
+<3238> Tj
ET
0.000 0.000 0.000 SCN
@@ -43268,153 +45654,158 @@ Q
endstream
endobj
-304 0 obj
+316 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 303 0 R
+/Contents 315 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [305 0 R 306 0 R 308 0 R 309 0 R]
+/Annots [317 0 R 319 0 R 320 0 R]
>>
endobj
-305 0 obj
-<< /Border [0 0 0]
-/Dest (_service)
-/Subtype /Link
-/Rect [272.17692192000004 706.267 308.65392192 720.547]
-/Type /Annot
->>
-endobj
-306 0 obj
+317 0 obj
<< /Border [0 0 0]
-/Dest (_operationalpolicy)
+/Dest (_number)
/Subtype /Link
-/Rect [280.76592192000004 631.1470000000002 370.37271684187505 645.4270000000001]
+/Rect [272.17692192000004 706.2669999999999 313.75692192 720.5469999999999]
/Type /Annot
>>
endobj
-307 0 obj
-[304 0 R /XYZ 0 532.9200000000001 null]
+318 0 obj
+[316 0 R /XYZ 0 345.1200000000003 null]
endobj
-308 0 obj
+319 0 obj
<< /Border [0 0 0]
-/Dest (_policymodel)
+/Dest (_externalcomponent)
/Subtype /Link
-/Rect [280.76592192000004 217.7470000000001 342.0649219200001 232.0270000000001]
+/Rect [315.25842192000005 255.30700000000022 415.81692192 269.5870000000002]
/Type /Annot
>>
endobj
-309 0 obj
+320 0 obj
<< /Border [0 0 0]
-/Dest (_looptemplateloopelementmodel)
+/Dest (_jsonobject)
/Subtype /Link
-/Rect [280.76592192000004 67.50700000000003 450.12267777937507 81.78700000000003]
+/Rect [272.17692192000004 67.50700000000023 325.32792192000005 81.78700000000023]
/Type /Annot
>>
endobj
-310 0 obj
-<< /Length 20618
+321 0 obj
+<< /Length 23112
>>
stream
q
/DeviceRGB cs
-0.200 0.200 0.200 scn
-/DeviceRGB CS
-0.200 0.200 0.200 SCN
-
-BT
-48.24 734.976 Td
-/F2.0 18 Tf
-<332e31332e204c6f6f704c6f67> Tj
-ET
-
-0.000 0.000 0.000 SCN
+1.000 1.000 1.000 scn
+48.240 732.720 220.937 23.280 re
+f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 695.040 220.937 23.280 re
+269.177 732.720 294.583 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 695.040 294.583 23.280 re
+48.240 695.160 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 657.480 220.937 37.560 re
+269.177 695.160 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 657.600 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 657.600 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 657.480 294.583 37.560 re
+48.240 620.040 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 620.040 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 619.920 220.937 37.560 re
+48.240 582.480 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 619.920 294.583 37.560 re
+269.177 582.480 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 582.360 220.937 37.560 re
+48.240 544.920 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 582.360 294.583 37.560 re
+269.177 544.920 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 544.800 220.937 37.560 re
+48.240 507.360 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 544.800 294.583 37.560 re
+269.177 507.360 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 507.240 220.937 37.560 re
+48.240 469.800 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 507.240 294.583 37.560 re
+269.177 469.800 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 469.680 220.937 37.560 re
+48.240 432.240 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 469.680 294.583 37.560 re
+269.177 432.240 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 394.680 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 394.680 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
+/DeviceRGB CS
0.867 0.867 0.867 SCN
-48.240 718.320 m
-269.177 718.320 l
+48.240 756.000 m
+269.177 756.000 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 695.040 m
-269.177 695.040 l
+48.240 732.720 m
+269.177 732.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 718.570 m
-48.240 694.290 l
+48.240 756.250 m
+48.240 731.970 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 718.570 m
-269.177 694.290 l
+269.177 756.250 m
+269.177 731.970 l
S
[ ] 0 d
1 w
@@ -43422,7 +45813,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24 702.573 Td
+51.24 740.2529999999999 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -43430,26 +45821,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 718.320 m
-563.760 718.320 l
+269.177 756.000 m
+563.760 756.000 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-269.177 695.040 m
-563.760 695.040 l
+269.177 732.720 m
+563.760 732.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 718.570 m
-269.177 694.290 l
+269.177 756.250 m
+269.177 731.970 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 718.570 m
-563.760 694.290 l
+563.760 756.250 m
+563.760 731.970 l
S
[ ] 0 d
1 w
@@ -43457,7 +45848,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 702.573 Td
+272.17692192000004 740.2529999999999 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -43465,26 +45856,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 695.040 m
-269.177 695.040 l
+48.240 732.720 m
+269.177 732.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 657.480 m
-269.177 657.480 l
+48.240 695.160 m
+269.177 695.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 695.290 m
-48.240 657.230 l
+48.240 732.970 m
+48.240 694.910 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 695.290 m
-269.177 657.230 l
+269.177 732.970 m
+269.177 694.910 l
S
[ ] 0 d
1 w
@@ -43492,19 +45883,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 678.7930000000001 Td
+51.24 716.473 Td
/F2.0 10.5 Tf
-<6964> Tj
+<6c617374436f6d70757465645374617465> Tj
ET
BT
-51.24 664.513 Td
+51.24 702.193 Td
ET
BT
-51.24 664.513 Td
+51.24 702.193 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -43512,26 +45903,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 695.040 m
-563.760 695.040 l
+269.177 732.720 m
+563.760 732.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 657.480 m
-563.760 657.480 l
+269.177 695.160 m
+563.760 695.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 695.290 m
-269.177 657.230 l
+269.177 732.970 m
+269.177 694.910 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 695.290 m
-563.760 657.230 l
+563.760 732.970 m
+563.760 694.910 l
S
[ ] 0 d
1 w
@@ -43539,34 +45930,41 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 671.653 Td
+272.17692192000004 716.473 Td
/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
+[<656e756d202844455349474e2c205355424d49545445442c204445504c4f> 29.78515625 <5945442c2052> 9.765625 <554e4e494e472c>] TJ
+ET
+
+
+BT
+272.17692192000004 702.193 Td
+/F1.0 10.5 Tf
+[<53> 20.01953125 <54> 20.01953125 <4f505045442c20494e5f455252> 20.01953125 <4f522c2057> 60.05859375 <414954494e4729>] TJ
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 657.480 m
-269.177 657.480 l
+48.240 695.160 m
+269.177 695.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 619.920 m
-269.177 619.920 l
+48.240 657.600 m
+269.177 657.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 657.730 m
-48.240 619.670 l
+48.240 695.410 m
+48.240 657.350 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 657.730 m
-269.177 619.670 l
+269.177 695.410 m
+269.177 657.350 l
S
[ ] 0 d
1 w
@@ -43574,19 +45972,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 641.233 Td
+51.24 678.913 Td
/F2.0 10.5 Tf
-<6c6f67436f6d706f6e656e74> Tj
+<6c6f6f704c6f6773> Tj
ET
BT
-51.24 626.953 Td
+51.24 664.6329999999999 Td
ET
BT
-51.24 626.953 Td
+51.24 664.6329999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -43594,61 +45992,83 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 657.480 m
-563.760 657.480 l
+269.177 695.160 m
+563.760 695.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 619.920 m
-563.760 619.920 l
+269.177 657.600 m
+563.760 657.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 657.730 m
-269.177 619.670 l
+269.177 695.410 m
+269.177 657.350 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 657.730 m
-563.760 619.670 l
+563.760 695.410 m
+563.760 657.350 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
BT
-272.17692192000004 634.093 Td
+272.17692192000004 671.7729999999999 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<3c20> Tj
+ET
+
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+280.76592192000004 671.7729999999999 Td
+/F1.0 10.5 Tf
+<4c6f6f704c6f67> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+324.10992192000003 671.7729999999999 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 619.920 m
-269.177 619.920 l
+48.240 657.600 m
+269.177 657.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 582.360 m
-269.177 582.360 l
+48.240 620.040 m
+269.177 620.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 620.170 m
-48.240 582.110 l
+48.240 657.850 m
+48.240 619.790 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 620.170 m
-269.177 582.110 l
+269.177 657.850 m
+269.177 619.790 l
S
[ ] 0 d
1 w
@@ -43656,19 +46076,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 603.673 Td
+51.24 641.3529999999998 Td
/F2.0 10.5 Tf
-<6c6f67496e7374616e74> Tj
+[<6c6f6f7054> 29.78515625 <656d706c617465>] TJ
ET
BT
-51.24 589.393 Td
+51.24 627.0729999999999 Td
ET
BT
-51.24 589.393 Td
+51.24 627.0729999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -43676,61 +46096,69 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 619.920 m
-563.760 619.920 l
+269.177 657.600 m
+563.760 657.600 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 582.360 m
-563.760 582.360 l
+269.177 620.040 m
+563.760 620.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 620.170 m
-269.177 582.110 l
+269.177 657.850 m
+269.177 619.790 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 620.170 m
-563.760 582.110 l
+563.760 657.850 m
+563.760 619.790 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
-272.17692192000004 596.533 Td
+272.17692192000004 634.2129999999999 Td
/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
+[<4c6f6f7054> 29.78515625 <656d706c617465>] TJ
ET
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 582.360 m
-269.177 582.360 l
+48.240 620.040 m
+269.177 620.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 544.800 m
-269.177 544.800 l
+48.240 582.480 m
+269.177 582.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 582.610 m
-48.240 544.550 l
+48.240 620.290 m
+48.240 582.230 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 582.610 m
-269.177 544.550 l
+269.177 620.290 m
+269.177 582.230 l
S
[ ] 0 d
1 w
@@ -43738,19 +46166,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 566.113 Td
+51.24 603.7929999999999 Td
/F2.0 10.5 Tf
-<6c6f6754797065> Tj
+<6d6963726f53657276696365506f6c6963696573> Tj
ET
BT
-51.24 551.833 Td
+51.24 589.5129999999999 Td
ET
BT
-51.24 551.833 Td
+51.24 589.5129999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -43758,61 +46186,83 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 582.360 m
-563.760 582.360 l
+269.177 620.040 m
+563.760 620.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 544.800 m
-563.760 544.800 l
+269.177 582.480 m
+563.760 582.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 582.610 m
-269.177 544.550 l
+269.177 620.290 m
+269.177 582.230 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 582.610 m
-563.760 544.550 l
+563.760 620.290 m
+563.760 582.230 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
BT
-272.17692192000004 558.973 Td
+272.17692192000004 596.6529999999999 Td
/F1.0 10.5 Tf
-[<656e756d2028494e464f2c2057> 60.05859375 <41524e494e472c20455252> 20.01953125 <4f5229>] TJ
+<3c20> Tj
+ET
+
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+280.76592192000004 596.6529999999999 Td
+/F1.0 10.5 Tf
+<4d6963726f53657276696365506f6c696379> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+376.69392192000004 596.6529999999999 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 544.800 m
-269.177 544.800 l
+48.240 582.480 m
+269.177 582.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 507.240 m
-269.177 507.240 l
+48.240 544.920 m
+269.177 544.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 545.050 m
-48.240 506.990 l
+48.240 582.730 m
+48.240 544.670 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 545.050 m
-269.177 506.990 l
+269.177 582.730 m
+269.177 544.670 l
S
[ ] 0 d
1 w
@@ -43820,19 +46270,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 528.5530000000001 Td
+51.24 566.233 Td
/F2.0 10.5 Tf
-<6c6f6f70> Tj
+<6d6f64656c53657276696365> Tj
ET
BT
-51.24 514.273 Td
+51.24 551.953 Td
ET
BT
-51.24 514.273 Td
+51.24 551.953 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -43840,26 +46290,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 544.800 m
-563.760 544.800 l
+269.177 582.480 m
+563.760 582.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 507.240 m
-563.760 507.240 l
+269.177 544.920 m
+563.760 544.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 545.050 m
-269.177 506.990 l
+269.177 582.730 m
+269.177 544.670 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 545.050 m
-563.760 506.990 l
+563.760 582.730 m
+563.760 544.670 l
S
[ ] 0 d
1 w
@@ -43873,9 +46323,9 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 521.413 Td
+272.17692192000004 559.093 Td
/F1.0 10.5 Tf
-<4c6f6f70> Tj
+<53657276696365> Tj
ET
0.000 0.000 0.000 SCN
@@ -43883,26 +46333,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 507.240 m
-269.177 507.240 l
+48.240 544.920 m
+269.177 544.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 469.680 m
-269.177 469.680 l
+48.240 507.360 m
+269.177 507.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 507.490 m
-48.240 469.430 l
+48.240 545.170 m
+48.240 507.110 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 507.490 m
-269.177 469.430 l
+269.177 545.170 m
+269.177 507.110 l
S
[ ] 0 d
1 w
@@ -43910,19 +46360,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 490.993 Td
+51.24 528.673 Td
/F2.0 10.5 Tf
-<6d657373616765> Tj
+<6e616d65> Tj
ET
BT
-51.24 476.71299999999997 Td
+51.24 514.3929999999999 Td
ET
BT
-51.24 476.71299999999997 Td
+51.24 514.3929999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -43930,26 +46380,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 507.240 m
-563.760 507.240 l
+269.177 544.920 m
+563.760 544.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 469.680 m
-563.760 469.680 l
+269.177 507.360 m
+563.760 507.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 507.490 m
-269.177 469.430 l
+269.177 545.170 m
+269.177 507.110 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 507.490 m
-563.760 469.430 l
+563.760 545.170 m
+563.760 507.110 l
S
[ ] 0 d
1 w
@@ -43957,125 +46407,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 483.853 Td
+272.17692192000004 521.5329999999999 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-BT
-48.24 434.25600000000003 Td
-/F2.0 18 Tf
-[<332e31342e204c6f6f7054> 29.78515625 <656d706c617465>] TJ
-ET
-
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 394.320 220.937 23.280 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 394.320 294.583 23.280 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 356.760 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 356.760 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 319.200 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 319.200 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 281.640 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 281.640 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 244.080 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 244.080 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 206.520 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 206.520 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 168.960 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 168.960 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 131.400 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 131.400 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 93.840 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 93.840 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 56.280 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 56.280 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 417.600 m
-269.177 417.600 l
+48.240 507.360 m
+269.177 507.360 l
S
[ ] 0 d
-1.5 w
+0.5 w
0.867 0.867 0.867 SCN
-48.240 394.320 m
-269.177 394.320 l
+48.240 469.800 m
+269.177 469.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 417.850 m
-48.240 393.570 l
+48.240 507.610 m
+48.240 469.550 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 417.850 m
-269.177 393.570 l
+269.177 507.610 m
+269.177 469.550 l
S
[ ] 0 d
1 w
@@ -44083,69 +46442,103 @@ S
0.200 0.200 0.200 scn
BT
-51.24 401.85299999999995 Td
+51.24 491.11299999999994 Td
/F2.0 10.5 Tf
-<4e616d65> Tj
+[<6f706572> 20.01953125 <6174696f6e616c506f6c6963696573>] TJ
+ET
+
+
+BT
+51.24 476.83299999999997 Td
+ET
+
+
+BT
+51.24 476.83299999999997 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 417.600 m
-563.760 417.600 l
+269.177 507.360 m
+563.760 507.360 l
S
[ ] 0 d
-1.5 w
+0.5 w
0.867 0.867 0.867 SCN
-269.177 394.320 m
-563.760 394.320 l
+269.177 469.800 m
+563.760 469.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 417.850 m
-269.177 393.570 l
+269.177 507.610 m
+269.177 469.550 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 417.850 m
-563.760 393.570 l
+563.760 507.610 m
+563.760 469.550 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
BT
-272.17692192000004 401.85299999999995 Td
-/F2.0 10.5 Tf
-<536368656d61> Tj
+272.17692192000004 483.97299999999996 Td
+/F1.0 10.5 Tf
+<3c20> Tj
+ET
+
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+280.76592192000004 483.97299999999996 Td
+/F1.0 10.5 Tf
+[<4f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+370.37271684187505 483.97299999999996 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 394.320 m
-269.177 394.320 l
+48.240 469.800 m
+269.177 469.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 356.760 m
-269.177 356.760 l
+48.240 432.240 m
+269.177 432.240 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 394.570 m
-48.240 356.510 l
+48.240 470.050 m
+48.240 431.990 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.570 m
-269.177 356.510 l
+269.177 470.050 m
+269.177 431.990 l
S
[ ] 0 d
1 w
@@ -44153,19 +46546,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 378.0729999999999 Td
+51.24 453.55299999999994 Td
/F2.0 10.5 Tf
-<616c6c6f7765644c6f6f7054797065> Tj
+[<7570646174656442> 20.01953125 <79>] TJ
ET
BT
-51.24 363.7929999999999 Td
+51.24 439.2729999999999 Td
ET
BT
-51.24 363.7929999999999 Td
+51.24 439.2729999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -44173,26 +46566,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.320 m
-563.760 394.320 l
+269.177 469.800 m
+563.760 469.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 356.760 m
-563.760 356.760 l
+269.177 432.240 m
+563.760 432.240 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.570 m
-269.177 356.510 l
+269.177 470.050 m
+269.177 431.990 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 394.570 m
-563.760 356.510 l
+563.760 470.050 m
+563.760 431.990 l
S
[ ] 0 d
1 w
@@ -44200,34 +46593,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 370.93299999999994 Td
+272.17692192000004 446.41299999999995 Td
/F1.0 10.5 Tf
-<656e756d20284f50454e2c20434c4f5345442c2048594252494429> Tj
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 356.760 m
-269.177 356.760 l
+48.240 432.240 m
+269.177 432.240 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.200 m
-269.177 319.200 l
+48.240 394.680 m
+269.177 394.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 357.010 m
-48.240 318.950 l
+48.240 432.490 m
+48.240 394.430 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 357.010 m
-269.177 318.950 l
+269.177 432.490 m
+269.177 394.430 l
S
[ ] 0 d
1 w
@@ -44235,19 +46628,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 340.513 Td
+51.24 415.9929999999999 Td
/F2.0 10.5 Tf
-<626c75657072696e74> Tj
+<7570646174656444617465> Tj
ET
BT
-51.24 326.23299999999995 Td
+51.24 401.71299999999985 Td
ET
BT
-51.24 326.23299999999995 Td
+51.24 401.71299999999985 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -44255,26 +46648,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 356.760 m
-563.760 356.760 l
+269.177 432.240 m
+563.760 432.240 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.200 m
-563.760 319.200 l
+269.177 394.680 m
+563.760 394.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 357.010 m
-269.177 318.950 l
+269.177 432.490 m
+269.177 394.430 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 357.010 m
-563.760 318.950 l
+563.760 432.490 m
+563.760 394.430 l
S
[ ] 0 d
1 w
@@ -44282,34 +46675,179 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 333.373 Td
+272.17692192000004 408.8529999999999 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 359.2559999999999 Td
+/F2.0 18 Tf
+<332e31332e204c6f6f70456c656d656e744d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 319.320 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 319.320 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 281.760 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 281.760 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 244.200 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 244.200 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 206.640 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 206.640 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 169.080 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 169.080 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 131.520 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 131.520 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 93.960 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 93.960 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 56.400 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 56.400 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 342.600 m
+269.177 342.600 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 319.320 m
+269.177 319.320 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 342.850 m
+48.240 318.570 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 342.850 m
+269.177 318.570 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 326.85299999999984 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.200 m
-269.177 319.200 l
+269.177 342.600 m
+563.760 342.600 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+269.177 319.320 m
+563.760 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 281.640 m
-269.177 281.640 l
+269.177 342.850 m
+269.177 318.570 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.450 m
-48.240 281.390 l
+563.760 342.850 m
+563.760 318.570 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 326.85299999999984 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 319.320 m
+269.177 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.450 m
-269.177 281.390 l
+48.240 281.760 m
+269.177 281.760 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 319.570 m
+48.240 281.510 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 319.570 m
+269.177 281.510 l
S
[ ] 0 d
1 w
@@ -44317,19 +46855,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 302.9529999999999 Td
+51.24 303.0729999999998 Td
/F2.0 10.5 Tf
-[<6372656174656442> 20.01953125 <79>] TJ
+<626c75657072696e74> Tj
ET
BT
-51.24 288.6729999999999 Td
+51.24 288.7929999999998 Td
ET
BT
-51.24 288.6729999999999 Td
+51.24 288.7929999999998 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -44337,26 +46875,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.200 m
-563.760 319.200 l
+269.177 319.320 m
+563.760 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 281.640 m
-563.760 281.640 l
+269.177 281.760 m
+563.760 281.760 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.450 m
-269.177 281.390 l
+269.177 319.570 m
+269.177 281.510 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 319.450 m
-563.760 281.390 l
+563.760 319.570 m
+563.760 281.510 l
S
[ ] 0 d
1 w
@@ -44364,7 +46902,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 295.81299999999993 Td
+272.17692192000004 295.9329999999998 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -44372,26 +46910,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 281.640 m
-269.177 281.640 l
+48.240 281.760 m
+269.177 281.760 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 244.080 m
-269.177 244.080 l
+48.240 244.200 m
+269.177 244.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 281.890 m
-48.240 243.830 l
+48.240 282.010 m
+48.240 243.950 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 281.890 m
-269.177 243.830 l
+269.177 282.010 m
+269.177 243.950 l
S
[ ] 0 d
1 w
@@ -44399,19 +46937,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 265.393 Td
+51.24 265.51299999999986 Td
/F2.0 10.5 Tf
-<6372656174656444617465> Tj
+[<6372656174656442> 20.01953125 <79>] TJ
ET
BT
-51.24 251.11299999999997 Td
+51.24 251.23299999999986 Td
ET
BT
-51.24 251.11299999999997 Td
+51.24 251.23299999999986 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -44419,26 +46957,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 281.640 m
-563.760 281.640 l
+269.177 281.760 m
+563.760 281.760 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 244.080 m
-563.760 244.080 l
+269.177 244.200 m
+563.760 244.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 281.890 m
-269.177 243.830 l
+269.177 282.010 m
+269.177 243.950 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 281.890 m
-563.760 243.830 l
+563.760 282.010 m
+563.760 243.950 l
S
[ ] 0 d
1 w
@@ -44446,34 +46984,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 258.253 Td
+272.17692192000004 258.3729999999999 Td
/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 244.080 m
-269.177 244.080 l
+48.240 244.200 m
+269.177 244.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 206.520 m
-269.177 206.520 l
+48.240 206.640 m
+269.177 206.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 244.330 m
-48.240 206.270 l
+48.240 244.450 m
+48.240 206.390 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 244.330 m
-269.177 206.270 l
+269.177 244.450 m
+269.177 206.390 l
S
[ ] 0 d
1 w
@@ -44481,19 +47019,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 227.83299999999997 Td
+51.24 227.95299999999986 Td
/F2.0 10.5 Tf
-<64636165426c75657072696e744964> Tj
+<6372656174656444617465> Tj
ET
BT
-51.24 213.55299999999997 Td
+51.24 213.67299999999986 Td
ET
BT
-51.24 213.55299999999997 Td
+51.24 213.67299999999986 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -44501,26 +47039,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 244.080 m
-563.760 244.080 l
+269.177 244.200 m
+563.760 244.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 206.520 m
-563.760 206.520 l
+269.177 206.640 m
+563.760 206.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 244.330 m
-269.177 206.270 l
+269.177 244.450 m
+269.177 206.390 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 244.330 m
-563.760 206.270 l
+563.760 244.450 m
+563.760 206.390 l
S
[ ] 0 d
1 w
@@ -44528,34 +47066,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 220.69299999999996 Td
+272.17692192000004 220.81299999999985 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 206.520 m
-269.177 206.520 l
+48.240 206.640 m
+269.177 206.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 168.960 m
-269.177 168.960 l
+48.240 169.080 m
+269.177 169.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 206.770 m
-48.240 168.710 l
+48.240 206.890 m
+48.240 168.830 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 206.770 m
-269.177 168.710 l
+269.177 206.890 m
+269.177 168.830 l
S
[ ] 0 d
1 w
@@ -44563,19 +47101,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 190.27299999999997 Td
+51.24 190.39299999999986 Td
/F2.0 10.5 Tf
-<6c6f6f70456c656d656e744d6f64656c7355736564> Tj
+<64636165426c75657072696e744964> Tj
ET
BT
-51.24 175.99299999999997 Td
+51.24 176.11299999999986 Td
ET
BT
-51.24 175.99299999999997 Td
+51.24 176.11299999999986 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -44583,83 +47121,61 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 206.520 m
-563.760 206.520 l
+269.177 206.640 m
+563.760 206.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 168.960 m
-563.760 168.960 l
+269.177 169.080 m
+563.760 169.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 206.770 m
-269.177 168.710 l
+269.177 206.890 m
+269.177 168.830 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 206.770 m
-563.760 168.710 l
+563.760 206.890 m
+563.760 168.830 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
BT
-272.17692192000004 183.13299999999995 Td
+272.17692192000004 183.25299999999984 Td
/F1.0 10.5 Tf
-<3c20> Tj
-ET
-
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-
-BT
-280.76592192000004 183.13299999999995 Td
-/F1.0 10.5 Tf
-[<4c6f6f7054> 29.78515625 <656d706c6174654c6f6f70456c656d656e744d6f64656c>] TJ
-ET
-
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-
-BT
-450.12267777937507 183.13299999999995 Td
-/F1.0 10.5 Tf
-[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 168.960 m
-269.177 168.960 l
+48.240 169.080 m
+269.177 169.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 131.400 m
-269.177 131.400 l
+48.240 131.520 m
+269.177 131.520 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 169.210 m
-48.240 131.150 l
+48.240 169.330 m
+48.240 131.270 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 169.210 m
-269.177 131.150 l
+269.177 169.330 m
+269.177 131.270 l
S
[ ] 0 d
1 w
@@ -44667,19 +47183,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 152.71299999999997 Td
+51.24 152.83299999999986 Td
/F2.0 10.5 Tf
-<6d6178696d756d496e7374616e636573416c6c6f776564> Tj
+<6c6f6f70456c656d656e7454797065> Tj
ET
BT
-51.24 138.43299999999996 Td
+51.24 138.55299999999986 Td
ET
BT
-51.24 138.43299999999996 Td
+51.24 138.55299999999986 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -44687,26 +47203,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 168.960 m
-563.760 168.960 l
+269.177 169.080 m
+563.760 169.080 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.400 m
-563.760 131.400 l
+269.177 131.520 m
+563.760 131.520 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 169.210 m
-269.177 131.150 l
+269.177 169.330 m
+269.177 131.270 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 169.210 m
-563.760 131.150 l
+563.760 169.330 m
+563.760 131.270 l
S
[ ] 0 d
1 w
@@ -44714,34 +47230,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 145.57299999999995 Td
+272.17692192000004 145.69299999999984 Td
/F1.0 10.5 Tf
-<696e74656765722028696e74333229> Tj
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 131.400 m
-269.177 131.400 l
+48.240 131.520 m
+269.177 131.520 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 93.840 m
-269.177 93.840 l
+48.240 93.960 m
+269.177 93.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 131.650 m
-48.240 93.590 l
+48.240 131.770 m
+48.240 93.710 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.650 m
-269.177 93.590 l
+269.177 131.770 m
+269.177 93.710 l
S
[ ] 0 d
1 w
@@ -44749,19 +47265,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 115.15299999999992 Td
+51.24 115.27299999999984 Td
/F2.0 10.5 Tf
-<6d6f64656c53657276696365> Tj
+<6e616d65> Tj
ET
BT
-51.24 100.87299999999992 Td
+51.24 100.99299999999984 Td
ET
BT
-51.24 100.87299999999992 Td
+51.24 100.99299999999984 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -44769,69 +47285,61 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.400 m
-563.760 131.400 l
+269.177 131.520 m
+563.760 131.520 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 93.840 m
-563.760 93.840 l
+269.177 93.960 m
+563.760 93.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.650 m
-269.177 93.590 l
+269.177 131.770 m
+269.177 93.710 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 131.650 m
-563.760 93.590 l
+563.760 131.770 m
+563.760 93.710 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
-272.17692192000004 108.01299999999992 Td
+272.17692192000004 108.13299999999984 Td
/F1.0 10.5 Tf
-<53657276696365> Tj
+<737472696e67> Tj
ET
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 93.840 m
-269.177 93.840 l
+48.240 93.960 m
+269.177 93.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 56.280 m
-269.177 56.280 l
+48.240 56.400 m
+269.177 56.400 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 94.090 m
-48.240 56.030 l
+48.240 94.210 m
+48.240 56.150 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 94.090 m
-269.177 56.030 l
+269.177 94.210 m
+269.177 56.150 l
S
[ ] 0 d
1 w
@@ -44839,19 +47347,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 77.59299999999992 Td
+51.24 77.71299999999984 Td
/F2.0 10.5 Tf
-<6e616d65> Tj
+<706f6c6963794d6f64656c73> Tj
ET
BT
-51.24 63.31299999999992 Td
+51.24 63.432999999999836 Td
ET
BT
-51.24 63.31299999999992 Td
+51.24 63.432999999999836 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -44859,36 +47367,58 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 93.840 m
-563.760 93.840 l
+269.177 93.960 m
+563.760 93.960 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 56.280 m
-563.760 56.280 l
+269.177 56.400 m
+563.760 56.400 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 94.090 m
-269.177 56.030 l
+269.177 94.210 m
+269.177 56.150 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 94.090 m
-563.760 56.030 l
+563.760 94.210 m
+563.760 56.150 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
BT
-272.17692192000004 70.45299999999992 Td
+272.17692192000004 70.57299999999984 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<3c20> Tj
+ET
+
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+280.76592192000004 70.57299999999984 Td
+/F1.0 10.5 Tf
+<506f6c6963794d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+342.0649219200001 70.57299999999984 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
0.000 0.000 0.000 scn
@@ -44904,9 +47434,9 @@ q
0.200 0.200 0.200 SCN
BT
-49.24 14.388 Td
+552.698 14.388 Td
/F1.0 9 Tf
-<3238> Tj
+<3239> Tj
ET
0.000 0.000 0.000 SCN
@@ -44916,54 +47446,75 @@ Q
endstream
endobj
-311 0 obj
+322 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 310 0 R
+/Contents 321 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [313 0 R 315 0 R 316 0 R]
+/Annots [323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 329 0 R]
>>
endobj
-312 0 obj
-[311 0 R /XYZ 0 792.0 null]
-endobj
-313 0 obj
+323 0 obj
<< /Border [0 0 0]
-/Dest (_loop)
+/Dest (_looplog)
/Subtype /Link
-/Rect [272.17692192000004 518.3470000000001 297.27192192000007 532.6270000000001]
+/Rect [280.76592192000004 668.707 324.10992192000003 682.987]
/Type /Annot
>>
endobj
-314 0 obj
-[311 0 R /XYZ 0 457.68 null]
+324 0 obj
+<< /Border [0 0 0]
+/Dest (_looptemplate)
+/Subtype /Link
+/Rect [272.17692192000004 631.1469999999999 343.82067777937505 645.4269999999999]
+/Type /Annot
+>>
endobj
-315 0 obj
+325 0 obj
<< /Border [0 0 0]
-/Dest (_looptemplateloopelementmodel)
+/Dest (_microservicepolicy)
/Subtype /Link
-/Rect [280.76592192000004 180.06699999999998 450.12267777937507 194.34699999999998]
+/Rect [280.76592192000004 593.587 376.69392192000004 607.867]
/Type /Annot
>>
endobj
-316 0 obj
+326 0 obj
<< /Border [0 0 0]
/Dest (_service)
/Subtype /Link
-/Rect [272.17692192000004 104.94699999999992 308.65392192 119.22699999999992]
+/Rect [272.17692192000004 556.027 308.65392192 570.307]
/Type /Annot
>>
endobj
-317 0 obj
-<< /Length 20611
+327 0 obj
+<< /Border [0 0 0]
+/Dest (_operationalpolicy)
+/Subtype /Link
+/Rect [280.76592192000004 480.9069999999999 370.37271684187505 495.18699999999995]
+/Type /Annot
+>>
+endobj
+328 0 obj
+[322 0 R /XYZ 0 382.6799999999999 null]
+endobj
+329 0 obj
+<< /Border [0 0 0]
+/Dest (_policymodel)
+/Subtype /Link
+/Rect [280.76592192000004 67.50699999999983 342.0649219200001 81.78699999999984]
+/Type /Annot
+>>
+endobj
+330 0 obj
+<< /Length 20405
>>
stream
q
@@ -45000,6 +47551,14 @@ f
269.177 620.040 294.583 37.560 re
f
0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 582.480 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 582.480 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
0.5 w
/DeviceRGB CS
0.867 0.867 0.867 SCN
@@ -45100,19 +47659,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 716.4730000000002 Td
+51.24 716.473 Td
/F2.0 10.5 Tf
-<756e69717565426c75657072696e74> Tj
+<73686f72744e616d65> Tj
ET
BT
-51.24 702.1930000000001 Td
+51.24 702.193 Td
ET
BT
-51.24 702.1930000000001 Td
+51.24 702.193 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -45147,9 +47706,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 709.3330000000001 Td
+272.17692192000004 709.333 Td
/F1.0 10.5 Tf
-<626f6f6c65616e> Tj
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
@@ -45271,12 +47830,12 @@ ET
BT
-51.24 627.0730000000001 Td
+51.24 627.073 Td
ET
BT
-51.24 627.0730000000001 Td
+51.24 627.073 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -45311,77 +47870,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 634.2130000000001 Td
+272.17692192000004 634.213 Td
/F1.0 10.5 Tf
<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-BT
-48.24 584.6160000000002 Td
-/F2.0 18 Tf
-[<332e31352e204c6f6f7054> 29.78515625 <656d706c6174654c6f6f70456c656d656e744d6f64656c>] TJ
-ET
-
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 544.680 220.937 23.280 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 544.680 294.583 23.280 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 507.120 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 507.120 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 469.560 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 469.560 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 432.000 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 432.000 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 567.960 m
-269.177 567.960 l
+48.240 620.040 m
+269.177 620.040 l
S
[ ] 0 d
-1.5 w
+0.5 w
0.867 0.867 0.867 SCN
-48.240 544.680 m
-269.177 544.680 l
+48.240 582.480 m
+269.177 582.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 568.210 m
-48.240 543.930 l
+48.240 620.290 m
+48.240 582.230 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 568.210 m
-269.177 543.930 l
+269.177 620.290 m
+269.177 582.230 l
S
[ ] 0 d
1 w
@@ -45389,54 +47905,155 @@ S
0.200 0.200 0.200 scn
BT
-51.24 552.2130000000002 Td
+51.24 603.7929999999999 Td
/F2.0 10.5 Tf
-<4e616d65> Tj
+[<7573656442> 20.01953125 <794c6f6f7054> 29.78515625 <656d706c61746573>] TJ
+ET
+
+
+BT
+51.24 589.5129999999999 Td
+ET
+
+
+BT
+51.24 589.5129999999999 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 567.960 m
-563.760 567.960 l
+269.177 620.040 m
+563.760 620.040 l
S
[ ] 0 d
-1.5 w
+0.5 w
0.867 0.867 0.867 SCN
-269.177 544.680 m
-563.760 544.680 l
+269.177 582.480 m
+563.760 582.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 568.210 m
-269.177 543.930 l
+269.177 620.290 m
+269.177 582.230 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 568.210 m
-563.760 543.930 l
+563.760 620.290 m
+563.760 582.230 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
BT
-272.17692192000004 552.2130000000002 Td
-/F2.0 10.5 Tf
-<536368656d61> Tj
+272.17692192000004 596.6529999999999 Td
+/F1.0 10.5 Tf
+<3c20> Tj
+ET
+
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+280.76592192000004 596.6529999999999 Td
+/F1.0 10.5 Tf
+[<4c6f6f7054> 29.78515625 <656d706c6174654c6f6f70456c656d656e744d6f64656c>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+450.12267777937507 596.6529999999999 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 547.056 Td
+/F2.0 18 Tf
+<332e31342e204c6f6f704c6f67> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 507.120 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 507.120 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 469.560 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 469.560 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 432.000 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 432.000 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 394.440 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 394.440 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 356.880 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 356.880 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 319.320 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 319.320 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 281.760 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 281.760 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 544.680 m
-269.177 544.680 l
+48.240 530.400 m
+269.177 530.400 l
S
[ ] 0 d
-0.5 w
+1.5 w
0.867 0.867 0.867 SCN
48.240 507.120 m
269.177 507.120 l
@@ -45444,14 +48061,14 @@ S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 544.930 m
-48.240 506.870 l
+48.240 530.650 m
+48.240 506.370 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 544.930 m
-269.177 506.870 l
+269.177 530.650 m
+269.177 506.370 l
S
[ ] 0 d
1 w
@@ -45459,31 +48076,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 528.4330000000002 Td
+51.24 514.653 Td
/F2.0 10.5 Tf
-<666c6f774f72646572> Tj
-ET
-
-
-BT
-51.24 514.1530000000002 Td
-ET
-
-
-BT
-51.24 514.1530000000002 Td
-/F3.0 10.5 Tf
-<6f7074696f6e616c> Tj
+<4e616d65> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 544.680 m
-563.760 544.680 l
+269.177 530.400 m
+563.760 530.400 l
S
[ ] 0 d
-0.5 w
+1.5 w
0.867 0.867 0.867 SCN
269.177 507.120 m
563.760 507.120 l
@@ -45491,14 +48096,14 @@ S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 544.930 m
-269.177 506.870 l
+269.177 530.650 m
+269.177 506.370 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 544.930 m
-563.760 506.870 l
+563.760 530.650 m
+563.760 506.370 l
S
[ ] 0 d
1 w
@@ -45506,9 +48111,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 521.2930000000002 Td
-/F1.0 10.5 Tf
-<696e74656765722028696e74333229> Tj
+272.17692192000004 514.653 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
ET
0.000 0.000 0.000 scn
@@ -45541,19 +48146,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 490.8730000000002 Td
+51.24 490.8730000000001 Td
/F2.0 10.5 Tf
-<6c6f6f70456c656d656e744d6f64656c> Tj
+<6964> Tj
ET
BT
-51.24 476.5930000000002 Td
+51.24 476.5930000000001 Td
ET
BT
-51.24 476.5930000000002 Td
+51.24 476.5930000000001 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -45586,21 +48191,13 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
-272.17692192000004 483.73300000000023 Td
+272.17692192000004 483.7330000000001 Td
/F1.0 10.5 Tf
-<4c6f6f70456c656d656e744d6f64656c> Tj
+<696e74656765722028696e74363429> Tj
ET
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -45631,19 +48228,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 453.3130000000003 Td
+51.24 453.31300000000005 Td
/F2.0 10.5 Tf
-[<6c6f6f7054> 29.78515625 <656d706c617465>] TJ
+<6c6f67436f6d706f6e656e74> Tj
ET
BT
-51.24 439.03300000000024 Td
+51.24 439.033 Td
ET
BT
-51.24 439.03300000000024 Td
+51.24 439.033 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -45676,127 +48273,36 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
-272.17692192000004 446.1730000000003 Td
+272.17692192000004 446.17300000000006 Td
/F1.0 10.5 Tf
-[<4c6f6f7054> 29.78515625 <656d706c617465>] TJ
-ET
-
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-BT
-48.24 396.5760000000003 Td
-/F2.0 18 Tf
-<332e31362e204d6963726f53657276696365506f6c696379> Tj
+<737472696e67> Tj
ET
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 356.640 220.937 23.280 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 356.640 294.583 23.280 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 319.080 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 319.080 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 281.520 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 281.520 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 243.960 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 243.960 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 206.400 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 206.400 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 168.840 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 168.840 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 131.280 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 131.280 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 93.720 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 93.720 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 56.160 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 56.160 294.583 37.560 re
-f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 379.920 m
-269.177 379.920 l
+48.240 432.000 m
+269.177 432.000 l
S
[ ] 0 d
-1.5 w
+0.5 w
0.867 0.867 0.867 SCN
-48.240 356.640 m
-269.177 356.640 l
+48.240 394.440 m
+269.177 394.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 380.170 m
-48.240 355.890 l
+48.240 432.250 m
+48.240 394.190 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 380.170 m
-269.177 355.890 l
+269.177 432.250 m
+269.177 394.190 l
S
[ ] 0 d
1 w
@@ -45804,34 +48310,46 @@ S
0.200 0.200 0.200 scn
BT
-51.24 364.17300000000023 Td
+51.24 415.7530000000001 Td
/F2.0 10.5 Tf
-<4e616d65> Tj
+<6c6f67496e7374616e74> Tj
+ET
+
+
+BT
+51.24 401.47300000000007 Td
+ET
+
+
+BT
+51.24 401.47300000000007 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 379.920 m
-563.760 379.920 l
+269.177 432.000 m
+563.760 432.000 l
S
[ ] 0 d
-1.5 w
+0.5 w
0.867 0.867 0.867 SCN
-269.177 356.640 m
-563.760 356.640 l
+269.177 394.440 m
+563.760 394.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 380.170 m
-269.177 355.890 l
+269.177 432.250 m
+269.177 394.190 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 380.170 m
-563.760 355.890 l
+563.760 432.250 m
+563.760 394.190 l
S
[ ] 0 d
1 w
@@ -45839,34 +48357,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 364.17300000000023 Td
-/F2.0 10.5 Tf
-<536368656d61> Tj
+272.17692192000004 408.6130000000001 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 356.640 m
-269.177 356.640 l
+48.240 394.440 m
+269.177 394.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.080 m
-269.177 319.080 l
+48.240 356.880 m
+269.177 356.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 356.890 m
-48.240 318.830 l
+48.240 394.690 m
+48.240 356.630 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 356.890 m
-269.177 318.830 l
+269.177 394.690 m
+269.177 356.630 l
S
[ ] 0 d
1 w
@@ -45874,19 +48392,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 340.3930000000002 Td
+51.24 378.19300000000004 Td
/F2.0 10.5 Tf
-[<636f6e6669677572> 20.01953125 <6174696f6e734a736f6e>] TJ
+<6c6f6754797065> Tj
ET
BT
-51.24 326.11300000000017 Td
+51.24 363.913 Td
ET
BT
-51.24 326.11300000000017 Td
+51.24 363.913 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -45894,69 +48412,61 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 356.640 m
-563.760 356.640 l
+269.177 394.440 m
+563.760 394.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.080 m
-563.760 319.080 l
+269.177 356.880 m
+563.760 356.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 356.890 m
-269.177 318.830 l
+269.177 394.690 m
+269.177 356.630 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 356.890 m
-563.760 318.830 l
+563.760 394.690 m
+563.760 356.630 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
-272.17692192000004 333.2530000000002 Td
+272.17692192000004 371.05300000000005 Td
/F1.0 10.5 Tf
-<4a736f6e4f626a656374> Tj
+[<656e756d2028494e464f2c2057> 60.05859375 <41524e494e472c20455252> 20.01953125 <4f5229>] TJ
ET
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.080 m
-269.177 319.080 l
+48.240 356.880 m
+269.177 356.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 281.520 m
-269.177 281.520 l
+48.240 319.320 m
+269.177 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.330 m
-48.240 281.270 l
+48.240 357.130 m
+48.240 319.070 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.330 m
-269.177 281.270 l
+269.177 357.130 m
+269.177 319.070 l
S
[ ] 0 d
1 w
@@ -45964,19 +48474,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 302.83300000000025 Td
+51.24 340.6330000000001 Td
/F2.0 10.5 Tf
-<636f6e74657874> Tj
+<6c6f6f70> Tj
ET
BT
-51.24 288.5530000000002 Td
+51.24 326.35300000000007 Td
ET
BT
-51.24 288.5530000000002 Td
+51.24 326.35300000000007 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -45984,61 +48494,69 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.080 m
-563.760 319.080 l
+269.177 356.880 m
+563.760 356.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 281.520 m
-563.760 281.520 l
+269.177 319.320 m
+563.760 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.330 m
-269.177 281.270 l
+269.177 357.130 m
+269.177 319.070 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 319.330 m
-563.760 281.270 l
+563.760 357.130 m
+563.760 319.070 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
-272.17692192000004 295.69300000000027 Td
+272.17692192000004 333.4930000000001 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<4c6f6f70> Tj
ET
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 281.520 m
-269.177 281.520 l
+48.240 319.320 m
+269.177 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 243.960 m
-269.177 243.960 l
+48.240 281.760 m
+269.177 281.760 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 281.770 m
-48.240 243.710 l
+48.240 319.570 m
+48.240 281.510 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 281.770 m
-269.177 243.710 l
+269.177 319.570 m
+269.177 281.510 l
S
[ ] 0 d
1 w
@@ -46046,19 +48564,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 265.2730000000002 Td
+51.24 303.07300000000004 Td
/F2.0 10.5 Tf
-[<6372656174656442> 20.01953125 <79>] TJ
+<6d657373616765> Tj
ET
BT
-51.24 250.9930000000002 Td
+51.24 288.793 Td
ET
BT
-51.24 250.9930000000002 Td
+51.24 288.793 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -46066,26 +48584,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 281.520 m
-563.760 281.520 l
+269.177 319.320 m
+563.760 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 243.960 m
-563.760 243.960 l
+269.177 281.760 m
+563.760 281.760 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 281.770 m
-269.177 243.710 l
+269.177 319.570 m
+269.177 281.510 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 281.770 m
-563.760 243.710 l
+563.760 319.570 m
+563.760 281.510 l
S
[ ] 0 d
1 w
@@ -46093,19 +48611,70 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 258.1330000000002 Td
+272.17692192000004 295.93300000000005 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 246.33600000000007 Td
+/F2.0 18 Tf
+[<332e31352e204c6f6f7054> 29.78515625 <656d706c617465>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 206.400 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 206.400 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 168.840 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 168.840 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 131.280 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 131.280 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 93.720 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 93.720 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 56.160 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 56.160 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 243.960 m
-269.177 243.960 l
+48.240 229.680 m
+269.177 229.680 l
S
[ ] 0 d
-0.5 w
+1.5 w
0.867 0.867 0.867 SCN
48.240 206.400 m
269.177 206.400 l
@@ -46113,14 +48682,14 @@ S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 244.210 m
-48.240 206.150 l
+48.240 229.930 m
+48.240 205.650 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 244.210 m
-269.177 206.150 l
+269.177 229.930 m
+269.177 205.650 l
S
[ ] 0 d
1 w
@@ -46128,31 +48697,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 227.71300000000025 Td
+51.24 213.93300000000008 Td
/F2.0 10.5 Tf
-<6372656174656444617465> Tj
-ET
-
-
-BT
-51.24 213.43300000000025 Td
-ET
-
-
-BT
-51.24 213.43300000000025 Td
-/F3.0 10.5 Tf
-<6f7074696f6e616c> Tj
+<4e616d65> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 243.960 m
-563.760 243.960 l
+269.177 229.680 m
+563.760 229.680 l
S
[ ] 0 d
-0.5 w
+1.5 w
0.867 0.867 0.867 SCN
269.177 206.400 m
563.760 206.400 l
@@ -46160,14 +48717,14 @@ S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 244.210 m
-269.177 206.150 l
+269.177 229.930 m
+269.177 205.650 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 244.210 m
-563.760 206.150 l
+563.760 229.930 m
+563.760 205.650 l
S
[ ] 0 d
1 w
@@ -46175,9 +48732,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 220.57300000000023 Td
-/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
+272.17692192000004 213.93300000000008 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
ET
0.000 0.000 0.000 scn
@@ -46210,19 +48767,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 190.15300000000025 Td
+51.24 190.15300000000008 Td
/F2.0 10.5 Tf
-<64636165426c75657072696e744964> Tj
+<616c6c6f7765644c6f6f7054797065> Tj
ET
BT
-51.24 175.87300000000025 Td
+51.24 175.87300000000008 Td
ET
BT
-51.24 175.87300000000025 Td
+51.24 175.87300000000008 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -46257,9 +48814,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 183.01300000000023 Td
+272.17692192000004 183.01300000000006 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<656e756d20284f50454e2c20434c4f5345442c2048594252494429> Tj
ET
0.000 0.000 0.000 scn
@@ -46292,19 +48849,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 152.59300000000025 Td
+51.24 152.59300000000007 Td
/F2.0 10.5 Tf
-[<646361654465706c6f> 20.01953125 <796d656e744964>] TJ
+<626c75657072696e74> Tj
ET
BT
-51.24 138.31300000000024 Td
+51.24 138.31300000000007 Td
ET
BT
-51.24 138.31300000000024 Td
+51.24 138.31300000000007 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -46339,7 +48896,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 145.45300000000023 Td
+272.17692192000004 145.45300000000006 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -46374,19 +48931,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 115.03300000000023 Td
+51.24 115.03300000000006 Td
/F2.0 10.5 Tf
-[<646361654465706c6f> 20.01953125 <796d656e7453746174757355726c>] TJ
+[<6372656174656442> 20.01953125 <79>] TJ
ET
BT
-51.24 100.75300000000023 Td
+51.24 100.75300000000006 Td
ET
BT
-51.24 100.75300000000023 Td
+51.24 100.75300000000006 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -46421,7 +48978,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 107.89300000000023 Td
+272.17692192000004 107.89300000000006 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -46456,19 +49013,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 77.4730000000002 Td
+51.24 77.47300000000006 Td
/F2.0 10.5 Tf
-<6465766963655479706553636f7065> Tj
+<6372656174656444617465> Tj
ET
BT
-51.24 63.1930000000002 Td
+51.24 63.193000000000055 Td
ET
BT
-51.24 63.1930000000002 Td
+51.24 63.193000000000055 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -46503,9 +49060,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 70.3330000000002 Td
+272.17692192000004 70.33300000000006 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
@@ -46521,9 +49078,9 @@ q
0.200 0.200 0.200 SCN
BT
-552.698 14.388 Td
+49.24 14.388 Td
/F1.0 9 Tf
-<3239> Tj
+<3330> Tj
ET
0.000 0.000 0.000 SCN
@@ -46533,59 +49090,51 @@ Q
endstream
endobj
-318 0 obj
+331 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 317 0 R
+/Contents 330 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [321 0 R 322 0 R 324 0 R]
+/Annots [332 0 R 335 0 R]
>>
endobj
-319 0 obj
-[318 0 R /XYZ 0 608.0400000000002 null]
-endobj
-320 0 obj
-<< /Limits [(_loopelementmodel) (_parameters_14)]
-/Names [(_loopelementmodel) 307 0 R (_looplog) 312 0 R (_looptemplate) 314 0 R (_looptemplateloopelementmodel) 319 0 R (_microservicepolicy) 323 0 R (_number) 331 0 R (_operationalpolicy) 332 0 R (_overview) 21 0 R (_parameters) 50 0 R (_parameters_10) 116 0 R (_parameters_11) 121 0 R (_parameters_12) 128 0 R (_parameters_13) 135 0 R (_parameters_14) 141 0 R]
->>
-endobj
-321 0 obj
+332 0 obj
<< /Border [0 0 0]
-/Dest (_loopelementmodel)
+/Dest (_looptemplateloopelementmodel)
/Subtype /Link
-/Rect [272.17692192000004 480.6670000000002 369.88992192000006 494.94700000000023]
+/Rect [280.76592192000004 593.587 450.12267777937507 607.867]
/Type /Annot
>>
endobj
-322 0 obj
-<< /Border [0 0 0]
-/Dest (_looptemplate)
-/Subtype /Link
-/Rect [272.17692192000004 443.10700000000026 343.82067777937505 457.3870000000003]
-/Type /Annot
->>
+333 0 obj
+[331 0 R /XYZ 0 570.48 null]
endobj
-323 0 obj
-[318 0 R /XYZ 0 420.0000000000003 null]
+334 0 obj
+<< /Limits [(_jsonprimitive) (_parameters_14)]
+/Names [(_jsonprimitive) 310 0 R (_loop) 318 0 R (_loopelementmodel) 328 0 R (_looplog) 333 0 R (_looptemplate) 336 0 R (_looptemplateloopelementmodel) 341 0 R (_microservicepolicy) 344 0 R (_number) 352 0 R (_operationalpolicy) 355 0 R (_overview) 21 0 R (_parameters) 50 0 R (_parameters_10) 116 0 R (_parameters_11) 121 0 R (_parameters_12) 128 0 R (_parameters_13) 135 0 R (_parameters_14) 141 0 R]
+>>
endobj
-324 0 obj
+335 0 obj
<< /Border [0 0 0]
-/Dest (_jsonobject)
+/Dest (_loop)
/Subtype /Link
-/Rect [272.17692192000004 330.1870000000002 325.32792192000005 344.4670000000002]
+/Rect [272.17692192000004 330.4270000000001 297.27192192000007 344.7070000000001]
/Type /Annot
>>
endobj
-325 0 obj
-<< /Length 20279
+336 0 obj
+[331 0 R /XYZ 0 269.76000000000005 null]
+endobj
+337 0 obj
+<< /Length 21075
>>
stream
q
@@ -46662,22 +49211,6 @@ f
269.177 432.240 294.583 37.560 re
f
0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-48.240 394.680 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-1.000 1.000 1.000 scn
-269.177 394.680 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 357.120 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 357.120 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
0.5 w
/DeviceRGB CS
0.867 0.867 0.867 SCN
@@ -46780,7 +49313,7 @@ S
BT
51.24 716.473 Td
/F2.0 10.5 Tf
-<6a736f6e526570726573656e746174696f6e> Tj
+<64636165426c75657072696e744964> Tj
ET
@@ -46823,21 +49356,13 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
272.17692192000004 709.333 Td
/F1.0 10.5 Tf
-<4a736f6e4f626a656374> Tj
+<737472696e67> Tj
ET
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -46870,7 +49395,7 @@ S
BT
51.24 678.913 Td
/F2.0 10.5 Tf
-<6c6f6f70456c656d656e744d6f64656c> Tj
+<6c6f6f70456c656d656e744d6f64656c7355736564> Tj
ET
@@ -46917,17 +49442,31 @@ S
0.259 0.545 0.792 SCN
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 671.7729999999999 Td
+/F1.0 10.5 Tf
+<3c20> Tj
+ET
+
0.259 0.545 0.792 scn
0.259 0.545 0.792 SCN
BT
-272.17692192000004 671.7729999999999 Td
+280.76592192000004 671.7729999999999 Td
/F1.0 10.5 Tf
-<4c6f6f70456c656d656e744d6f64656c> Tj
+[<4c6f6f7054> 29.78515625 <656d706c6174654c6f6f70456c656d656e744d6f64656c>] TJ
ET
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+
+BT
+450.12267777937507 671.7729999999999 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+ET
+
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -46958,19 +49497,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 641.3529999999998 Td
+51.24 641.3530000000001 Td
/F2.0 10.5 Tf
-<6e616d65> Tj
+<6d6178696d756d496e7374616e636573416c6c6f776564> Tj
ET
BT
-51.24 627.0729999999999 Td
+51.24 627.073 Td
ET
BT
-51.24 627.0729999999999 Td
+51.24 627.073 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -47005,9 +49544,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 634.2129999999999 Td
+272.17692192000004 634.213 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<696e74656765722028696e74333229> Tj
ET
0.000 0.000 0.000 scn
@@ -47042,7 +49581,7 @@ S
BT
51.24 603.7929999999999 Td
/F2.0 10.5 Tf
-<70647047726f7570> Tj
+<6d6f64656c53657276696365> Tj
ET
@@ -47085,13 +49624,21 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
272.17692192000004 596.6529999999999 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<53657276696365> Tj
ET
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -47124,7 +49671,7 @@ S
BT
51.24 566.233 Td
/F2.0 10.5 Tf
-<70647053756267726f7570> Tj
+<6e616d65> Tj
ET
@@ -47206,7 +49753,7 @@ S
BT
51.24 528.673 Td
/F2.0 10.5 Tf
-<706f6c6963794d6f64656c> Tj
+<756e69717565426c75657072696e74> Tj
ET
@@ -47249,21 +49796,13 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
272.17692192000004 521.5329999999999 Td
/F1.0 10.5 Tf
-<506f6c6963794d6f64656c> Tj
+<626f6f6c65616e> Tj
ET
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -47294,19 +49833,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 491.1129999999999 Td
+51.24 491.11299999999994 Td
/F2.0 10.5 Tf
-<736861726564> Tj
+[<7570646174656442> 20.01953125 <79>] TJ
ET
BT
-51.24 476.83299999999986 Td
+51.24 476.83299999999997 Td
ET
BT
-51.24 476.83299999999986 Td
+51.24 476.83299999999997 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -47341,9 +49880,9 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 483.9729999999999 Td
+272.17692192000004 483.97299999999996 Td
/F1.0 10.5 Tf
-<626f6f6c65616e> Tj
+<737472696e67> Tj
ET
0.000 0.000 0.000 scn
@@ -47378,7 +49917,7 @@ S
BT
51.24 453.55299999999994 Td
/F2.0 10.5 Tf
-[<7570646174656442> 20.01953125 <79>] TJ
+<7570646174656444617465> Tj
ET
@@ -47425,32 +49964,110 @@ S
BT
272.17692192000004 446.41299999999995 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 396.816 Td
+/F2.0 18 Tf
+[<332e31362e204c6f6f7054> 29.78515625 <656d706c6174654c6f6f70456c656d656e744d6f64656c>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 356.880 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 356.880 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 319.320 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 319.320 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 281.760 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 281.760 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 244.200 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 244.200 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 432.240 m
-269.177 432.240 l
+48.240 380.160 m
+269.177 380.160 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 356.880 m
+269.177 356.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 394.680 m
-269.177 394.680 l
+48.240 380.410 m
+48.240 356.130 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 432.490 m
-48.240 394.430 l
+269.177 380.410 m
+269.177 356.130 l
S
[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 364.4129999999999 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 432.490 m
-269.177 394.430 l
+269.177 380.160 m
+563.760 380.160 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+269.177 356.880 m
+563.760 356.880 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 380.410 m
+269.177 356.130 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 380.410 m
+563.760 356.130 l
S
[ ] 0 d
1 w
@@ -47458,19 +50075,54 @@ S
0.200 0.200 0.200 scn
BT
-51.24 415.993 Td
+272.17692192000004 364.4129999999999 Td
/F2.0 10.5 Tf
-<7570646174656444617465> Tj
+<536368656d61> Tj
ET
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 356.880 m
+269.177 356.880 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 319.320 m
+269.177 319.320 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 357.130 m
+48.240 319.070 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 357.130 m
+269.177 319.070 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
BT
-51.24 401.71299999999997 Td
+51.24 340.63299999999987 Td
+/F2.0 10.5 Tf
+<666c6f774f72646572> Tj
ET
BT
-51.24 401.71299999999997 Td
+51.24 326.35299999999984 Td
+ET
+
+
+BT
+51.24 326.35299999999984 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -47478,26 +50130,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 432.240 m
-563.760 432.240 l
+269.177 356.880 m
+563.760 356.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.680 m
-563.760 394.680 l
+269.177 319.320 m
+563.760 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 432.490 m
-269.177 394.430 l
+269.177 357.130 m
+269.177 319.070 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 432.490 m
-563.760 394.430 l
+563.760 357.130 m
+563.760 319.070 l
S
[ ] 0 d
1 w
@@ -47505,34 +50157,34 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 408.853 Td
+272.17692192000004 333.4929999999999 Td
/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
+<696e74656765722028696e74333229> Tj
ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 394.680 m
-269.177 394.680 l
+48.240 319.320 m
+269.177 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 357.120 m
-269.177 357.120 l
+48.240 281.760 m
+269.177 281.760 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 394.930 m
-48.240 356.870 l
+48.240 319.570 m
+48.240 281.510 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.930 m
-269.177 356.870 l
+269.177 319.570 m
+269.177 281.510 l
S
[ ] 0 d
1 w
@@ -47540,19 +50192,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 378.43300000000005 Td
+51.24 303.0729999999999 Td
/F2.0 10.5 Tf
-[<7573656442> 20.01953125 <794c6f6f7073>] TJ
+<6c6f6f70456c656d656e744d6f64656c> Tj
ET
BT
-51.24 364.153 Td
+51.24 288.7929999999999 Td
ET
BT
-51.24 364.153 Td
+51.24 288.7929999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -47560,26 +50212,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.680 m
-563.760 394.680 l
+269.177 319.320 m
+563.760 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 357.120 m
-563.760 357.120 l
+269.177 281.760 m
+563.760 281.760 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.930 m
-269.177 356.870 l
+269.177 319.570 m
+269.177 281.510 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 394.930 m
-563.760 356.870 l
+563.760 319.570 m
+563.760 281.510 l
S
[ ] 0 d
1 w
@@ -47589,138 +50241,173 @@ S
0.259 0.545 0.792 SCN
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-
-BT
-272.17692192000004 371.29300000000006 Td
-/F1.0 10.5 Tf
-<3c20> Tj
-ET
-
0.259 0.545 0.792 scn
0.259 0.545 0.792 SCN
BT
-280.76592192000004 371.29300000000006 Td
+272.17692192000004 295.93299999999994 Td
/F1.0 10.5 Tf
-<4c6f6f70> Tj
+<4c6f6f70456c656d656e744d6f64656c> Tj
ET
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 281.760 m
+269.177 281.760 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 244.200 m
+269.177 244.200 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 282.010 m
+48.240 243.950 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 282.010 m
+269.177 243.950 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
BT
-305.86092192000007 371.29300000000006 Td
-/F1.0 10.5 Tf
-[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+51.24 265.51299999999986 Td
+/F2.0 10.5 Tf
+[<6c6f6f7054> 29.78515625 <656d706c617465>] TJ
ET
-0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
BT
-48.24 321.6960000000001 Td
-/F2.0 18 Tf
-<332e31372e204e756d626572> Tj
+51.24 251.23299999999986 Td
ET
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
BT
-48.24 293.076 Td
+51.24 251.23299999999986 Td
/F3.0 10.5 Tf
-<54797065> Tj
+<6f7074696f6e616c> Tj
ET
-0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 281.760 m
+563.760 281.760 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.200 m
+563.760 244.200 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 282.010 m
+269.177 243.950 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 282.010 m
+563.760 243.950 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
-71.4345 293.076 Td
+272.17692192000004 258.3729999999999 Td
/F1.0 10.5 Tf
-<203a206f626a656374> Tj
+[<4c6f6f7054> 29.78515625 <656d706c617465>] TJ
ET
0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.200 0.200 0.200 scn
0.200 0.200 0.200 SCN
BT
-48.24 253.836 Td
+48.24 208.77599999999987 Td
/F2.0 18 Tf
-[<332e31382e204f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
+<332e31372e204d6963726f53657276696365506f6c696379> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 213.900 220.937 23.280 re
+48.240 168.840 220.937 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 213.900 294.583 23.280 re
+269.177 168.840 294.583 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 176.340 220.937 37.560 re
+48.240 131.280 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 176.340 294.583 37.560 re
+269.177 131.280 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 138.780 220.937 37.560 re
+48.240 93.720 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 138.780 294.583 37.560 re
+269.177 93.720 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 101.220 220.937 37.560 re
+48.240 56.160 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 101.220 294.583 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-48.240 63.660 220.937 37.560 re
-f
-0.000 0.000 0.000 scn
-0.976 0.976 0.976 scn
-269.177 63.660 294.583 37.560 re
+269.177 56.160 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 237.180 m
-269.177 237.180 l
+48.240 192.120 m
+269.177 192.120 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 213.900 m
-269.177 213.900 l
+48.240 168.840 m
+269.177 168.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 237.430 m
-48.240 213.150 l
+48.240 192.370 m
+48.240 168.090 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 237.430 m
-269.177 213.150 l
+269.177 192.370 m
+269.177 168.090 l
S
[ ] 0 d
1 w
@@ -47728,7 +50415,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24 221.43300000000002 Td
+51.24 176.37299999999988 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -47736,26 +50423,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 237.180 m
-563.760 237.180 l
+269.177 192.120 m
+563.760 192.120 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-269.177 213.900 m
-563.760 213.900 l
+269.177 168.840 m
+563.760 168.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 237.430 m
-269.177 213.150 l
+269.177 192.370 m
+269.177 168.090 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 237.430 m
-563.760 213.150 l
+563.760 192.370 m
+563.760 168.090 l
S
[ ] 0 d
1 w
@@ -47763,7 +50450,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 221.43300000000002 Td
+272.17692192000004 176.37299999999988 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -47771,26 +50458,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 213.900 m
-269.177 213.900 l
+48.240 168.840 m
+269.177 168.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 176.340 m
-269.177 176.340 l
+48.240 131.280 m
+269.177 131.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 214.150 m
-48.240 176.090 l
+48.240 169.090 m
+48.240 131.030 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 214.150 m
-269.177 176.090 l
+269.177 169.090 m
+269.177 131.030 l
S
[ ] 0 d
1 w
@@ -47798,19 +50485,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 197.65300000000002 Td
+51.24 152.59299999999988 Td
/F2.0 10.5 Tf
[<636f6e6669677572> 20.01953125 <6174696f6e734a736f6e>] TJ
ET
BT
-51.24 183.37300000000002 Td
+51.24 138.31299999999987 Td
ET
BT
-51.24 183.37300000000002 Td
+51.24 138.31299999999987 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -47818,26 +50505,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 213.900 m
-563.760 213.900 l
+269.177 168.840 m
+563.760 168.840 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 176.340 m
-563.760 176.340 l
+269.177 131.280 m
+563.760 131.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 214.150 m
-269.177 176.090 l
+269.177 169.090 m
+269.177 131.030 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 214.150 m
-563.760 176.090 l
+563.760 169.090 m
+563.760 131.030 l
S
[ ] 0 d
1 w
@@ -47851,7 +50538,7 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 190.513 Td
+272.17692192000004 145.45299999999986 Td
/F1.0 10.5 Tf
<4a736f6e4f626a656374> Tj
ET
@@ -47861,26 +50548,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 176.340 m
-269.177 176.340 l
+48.240 131.280 m
+269.177 131.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 138.780 m
-269.177 138.780 l
+48.240 93.720 m
+269.177 93.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 176.590 m
-48.240 138.530 l
+48.240 131.530 m
+48.240 93.470 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 176.590 m
-269.177 138.530 l
+269.177 131.530 m
+269.177 93.470 l
S
[ ] 0 d
1 w
@@ -47888,19 +50575,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 160.09300000000002 Td
+51.24 115.03299999999986 Td
/F2.0 10.5 Tf
-[<6372656174656442> 20.01953125 <79>] TJ
+<636f6e74657874> Tj
ET
BT
-51.24 145.81300000000002 Td
+51.24 100.75299999999986 Td
ET
BT
-51.24 145.81300000000002 Td
+51.24 100.75299999999986 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -47908,26 +50595,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 176.340 m
-563.760 176.340 l
+269.177 131.280 m
+563.760 131.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 138.780 m
-563.760 138.780 l
+269.177 93.720 m
+563.760 93.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 176.590 m
-269.177 138.530 l
+269.177 131.530 m
+269.177 93.470 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 176.590 m
-563.760 138.530 l
+563.760 131.530 m
+563.760 93.470 l
S
[ ] 0 d
1 w
@@ -47935,7 +50622,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 152.953 Td
+272.17692192000004 107.89299999999986 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -47943,108 +50630,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 138.780 m
-269.177 138.780 l
-S
-[ ] 0 d
-0.5 w
-0.867 0.867 0.867 SCN
-48.240 101.220 m
-269.177 101.220 l
-S
-[ ] 0 d
-0.5 w
-0.867 0.867 0.867 SCN
-48.240 139.030 m
-48.240 100.970 l
-S
-[ ] 0 d
-0.5 w
-0.867 0.867 0.867 SCN
-269.177 139.030 m
-269.177 100.970 l
-S
-[ ] 0 d
-1 w
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-
-BT
-51.24 122.53300000000002 Td
-/F2.0 10.5 Tf
-<6372656174656444617465> Tj
-ET
-
-
-BT
-51.24 108.25300000000001 Td
-ET
-
-
-BT
-51.24 108.25300000000001 Td
-/F3.0 10.5 Tf
-<6f7074696f6e616c> Tj
-ET
-
-0.000 0.000 0.000 scn
-0.5 w
-0.867 0.867 0.867 SCN
-269.177 138.780 m
-563.760 138.780 l
-S
-[ ] 0 d
-0.5 w
-0.867 0.867 0.867 SCN
-269.177 101.220 m
-563.760 101.220 l
-S
-[ ] 0 d
-0.5 w
-0.867 0.867 0.867 SCN
-269.177 139.030 m
-269.177 100.970 l
-S
-[ ] 0 d
-0.5 w
-0.867 0.867 0.867 SCN
-563.760 139.030 m
-563.760 100.970 l
-S
-[ ] 0 d
-1 w
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-
-BT
-272.17692192000004 115.39300000000001 Td
-/F1.0 10.5 Tf
-<696e74656765722028696e74363429> Tj
-ET
-
-0.000 0.000 0.000 scn
-0.5 w
-0.867 0.867 0.867 SCN
-48.240 101.220 m
-269.177 101.220 l
+48.240 93.720 m
+269.177 93.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 63.660 m
-269.177 63.660 l
+48.240 56.160 m
+269.177 56.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 101.470 m
-48.240 63.410 l
+48.240 93.970 m
+48.240 55.910 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 101.470 m
-269.177 63.410 l
+269.177 93.970 m
+269.177 55.910 l
S
[ ] 0 d
1 w
@@ -48052,19 +50657,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 84.973 Td
+51.24 77.47299999999986 Td
/F2.0 10.5 Tf
-<6a736f6e526570726573656e746174696f6e> Tj
+[<6372656174656442> 20.01953125 <79>] TJ
ET
BT
-51.24 70.693 Td
+51.24 63.192999999999856 Td
ET
BT
-51.24 70.693 Td
+51.24 63.192999999999856 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -48072,46 +50677,38 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 101.220 m
-563.760 101.220 l
+269.177 93.720 m
+563.760 93.720 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 63.660 m
-563.760 63.660 l
+269.177 56.160 m
+563.760 56.160 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 101.470 m
-269.177 63.410 l
+269.177 93.970 m
+269.177 55.910 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 101.470 m
-563.760 63.410 l
+563.760 93.970 m
+563.760 55.910 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
-272.17692192000004 77.833 Td
+272.17692192000004 70.33299999999986 Td
/F1.0 10.5 Tf
-<4a736f6e4f626a656374> Tj
+<737472696e67> Tj
ET
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
q
0.000 0.000 0.000 scn
@@ -48125,9 +50722,9 @@ q
0.200 0.200 0.200 SCN
BT
-49.24 14.388 Td
+552.698 14.388 Td
/F1.0 9 Tf
-<3330> Tj
+<3331> Tj
ET
0.000 0.000 0.000 SCN
@@ -48137,78 +50734,70 @@ Q
endstream
endobj
-326 0 obj
+338 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 325 0 R
+/Contents 337 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [327 0 R 328 0 R 329 0 R 330 0 R 333 0 R 334 0 R]
+/Annots [339 0 R 340 0 R 342 0 R 343 0 R 345 0 R]
>>
endobj
-327 0 obj
+339 0 obj
<< /Border [0 0 0]
-/Dest (_jsonobject)
+/Dest (_looptemplateloopelementmodel)
/Subtype /Link
-/Rect [272.17692192000004 706.267 325.32792192000005 720.547]
+/Rect [280.76592192000004 668.707 450.12267777937507 682.987]
/Type /Annot
>>
endobj
-328 0 obj
+340 0 obj
<< /Border [0 0 0]
-/Dest (_loopelementmodel)
+/Dest (_service)
/Subtype /Link
-/Rect [272.17692192000004 668.707 369.88992192000006 682.987]
+/Rect [272.17692192000004 593.587 308.65392192 607.867]
/Type /Annot
>>
endobj
-329 0 obj
-<< /Border [0 0 0]
-/Dest (_policymodel)
-/Subtype /Link
-/Rect [272.17692192000004 518.467 333.47592192 532.747]
-/Type /Annot
->>
+341 0 obj
+[338 0 R /XYZ 0 420.23999999999995 null]
endobj
-330 0 obj
+342 0 obj
<< /Border [0 0 0]
-/Dest (_loop)
+/Dest (_loopelementmodel)
/Subtype /Link
-/Rect [280.76592192000004 368.22700000000003 305.86092192000007 382.50700000000006]
+/Rect [272.17692192000004 292.8669999999999 369.88992192000006 307.14699999999993]
/Type /Annot
>>
endobj
-331 0 obj
-[326 0 R /XYZ 0 345.12000000000006 null]
-endobj
-332 0 obj
-[326 0 R /XYZ 0 277.26 null]
-endobj
-333 0 obj
+343 0 obj
<< /Border [0 0 0]
-/Dest (_jsonobject)
+/Dest (_looptemplate)
/Subtype /Link
-/Rect [272.17692192000004 187.44700000000003 325.32792192000005 201.72700000000003]
+/Rect [272.17692192000004 255.30699999999987 343.82067777937505 269.5869999999999]
/Type /Annot
>>
endobj
-334 0 obj
+344 0 obj
+[338 0 R /XYZ 0 232.19999999999987 null]
+endobj
+345 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
-/Rect [272.17692192000004 74.767 325.32792192000005 89.047]
+/Rect [272.17692192000004 142.3869999999999 325.32792192000005 156.66699999999986]
/Type /Annot
>>
endobj
-335 0 obj
-<< /Length 21618
+346 0 obj
+<< /Length 19713
>>
stream
q
@@ -48285,6 +50874,62 @@ f
269.177 432.240 294.583 37.560 re
f
0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 394.680 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 394.680 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 357.120 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 357.120 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 319.560 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 319.560 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 282.000 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 282.000 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 244.440 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 244.440 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 206.880 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 206.880 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 169.320 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 169.320 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
0.5 w
/DeviceRGB CS
0.867 0.867 0.867 SCN
@@ -48387,7 +51032,7 @@ S
BT
51.24 716.473 Td
/F2.0 10.5 Tf
-<6c6f6f70> Tj
+<6372656174656444617465> Tj
ET
@@ -48430,21 +51075,13 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
272.17692192000004 709.333 Td
/F1.0 10.5 Tf
-<4c6f6f70> Tj
+<696e74656765722028696e74363429> Tj
ET
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -48477,17 +51114,17 @@ S
BT
51.24 678.913 Td
/F2.0 10.5 Tf
-<6c6f6f70456c656d656e744d6f64656c> Tj
+<64636165426c75657072696e744964> Tj
ET
BT
-51.24 664.6329999999999 Td
+51.24 664.633 Td
ET
BT
-51.24 664.6329999999999 Td
+51.24 664.633 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -48520,21 +51157,13 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
BT
-272.17692192000004 671.7729999999999 Td
+272.17692192000004 671.773 Td
/F1.0 10.5 Tf
-<4c6f6f70456c656d656e744d6f64656c> Tj
+<737472696e67> Tj
ET
-0.000 0.000 0.000 SCN
-0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -48567,7 +51196,7 @@ S
BT
51.24 641.3530000000001 Td
/F2.0 10.5 Tf
-<6e616d65> Tj
+[<646361654465706c6f> 20.01953125 <796d656e744964>] TJ
ET
@@ -48647,19 +51276,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 603.7929999999999 Td
+51.24 603.7930000000001 Td
/F2.0 10.5 Tf
-<70647047726f7570> Tj
+[<646361654465706c6f> 20.01953125 <796d656e7453746174757355726c>] TJ
ET
BT
-51.24 589.5129999999999 Td
+51.24 589.513 Td
ET
BT
-51.24 589.5129999999999 Td
+51.24 589.513 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -48694,7 +51323,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 596.6529999999999 Td
+272.17692192000004 596.653 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -48731,7 +51360,7 @@ S
BT
51.24 566.233 Td
/F2.0 10.5 Tf
-<70647053756267726f7570> Tj
+<6465766963655479706553636f7065> Tj
ET
@@ -48813,17 +51442,17 @@ S
BT
51.24 528.673 Td
/F2.0 10.5 Tf
-<706f6c6963794d6f64656c> Tj
+<6a736f6e526570726573656e746174696f6e> Tj
ET
BT
-51.24 514.3929999999999 Td
+51.24 514.393 Td
ET
BT
-51.24 514.3929999999999 Td
+51.24 514.393 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -48864,9 +51493,9 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 521.5329999999999 Td
+272.17692192000004 521.533 Td
/F1.0 10.5 Tf
-<506f6c6963794d6f64656c> Tj
+<4a736f6e4f626a656374> Tj
ET
0.000 0.000 0.000 SCN
@@ -48901,9 +51530,9 @@ S
0.200 0.200 0.200 scn
BT
-51.24 491.11299999999994 Td
+51.24 491.113 Td
/F2.0 10.5 Tf
-[<7570646174656442> 20.01953125 <79>] TJ
+<6c6f6f70456c656d656e744d6f64656c> Tj
ET
@@ -48946,13 +51575,21 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
-272.17692192000004 483.97299999999996 Td
+272.17692192000004 483.973 Td
/F1.0 10.5 Tf
-<737472696e67> Tj
+<4c6f6f70456c656d656e744d6f64656c> Tj
ET
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
@@ -48983,19 +51620,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 453.55299999999994 Td
+51.24 453.553 Td
/F2.0 10.5 Tf
-<7570646174656444617465> Tj
+<6e616d65> Tj
ET
BT
-51.24 439.2729999999999 Td
+51.24 439.273 Td
ET
BT
-51.24 439.2729999999999 Td
+51.24 439.273 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -49030,117 +51667,868 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 446.41299999999995 Td
+272.17692192000004 446.413 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 432.240 m
+269.177 432.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 394.680 m
+269.177 394.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 432.490 m
+48.240 394.430 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.490 m
+269.177 394.430 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 415.993 Td
+/F2.0 10.5 Tf
+<70647047726f7570> Tj
+ET
+
+
+BT
+51.24 401.71299999999997 Td
+ET
+
+
+BT
+51.24 401.71299999999997 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.240 m
+563.760 432.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.680 m
+563.760 394.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.490 m
+269.177 394.430 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 432.490 m
+563.760 394.430 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 408.853 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 394.680 m
+269.177 394.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 357.120 m
+269.177 357.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 394.930 m
+48.240 356.870 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.930 m
+269.177 356.870 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 378.433 Td
+/F2.0 10.5 Tf
+<70647053756267726f7570> Tj
+ET
+
+
+BT
+51.24 364.153 Td
+ET
+
+
+BT
+51.24 364.153 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.680 m
+563.760 394.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 357.120 m
+563.760 357.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 394.930 m
+269.177 356.870 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 394.930 m
+563.760 356.870 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 371.293 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 357.120 m
+269.177 357.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 319.560 m
+269.177 319.560 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 357.370 m
+48.240 319.310 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 357.370 m
+269.177 319.310 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 340.873 Td
+/F2.0 10.5 Tf
+<706f6c6963794d6f64656c> Tj
+ET
+
+
+BT
+51.24 326.59299999999996 Td
+ET
+
+
+BT
+51.24 326.59299999999996 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 357.120 m
+563.760 357.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 319.560 m
+563.760 319.560 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 357.370 m
+269.177 319.310 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 357.370 m
+563.760 319.310 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+272.17692192000004 333.733 Td
+/F1.0 10.5 Tf
+<506f6c6963794d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 319.560 m
+269.177 319.560 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 282.000 m
+269.177 282.000 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 319.810 m
+48.240 281.750 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 319.810 m
+269.177 281.750 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 303.31299999999993 Td
+/F2.0 10.5 Tf
+<736861726564> Tj
+ET
+
+
+BT
+51.24 289.0329999999999 Td
+ET
+
+
+BT
+51.24 289.0329999999999 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 319.560 m
+563.760 319.560 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 282.000 m
+563.760 282.000 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 319.810 m
+269.177 281.750 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 319.810 m
+563.760 281.750 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 296.17299999999994 Td
+/F1.0 10.5 Tf
+<626f6f6c65616e> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 282.000 m
+269.177 282.000 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 244.440 m
+269.177 244.440 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 282.250 m
+48.240 244.190 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 282.250 m
+269.177 244.190 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 265.753 Td
+/F2.0 10.5 Tf
+[<7570646174656442> 20.01953125 <79>] TJ
+ET
+
+
+BT
+51.24 251.47299999999998 Td
+ET
+
+
+BT
+51.24 251.47299999999998 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 282.000 m
+563.760 282.000 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.440 m
+563.760 244.440 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 282.250 m
+269.177 244.190 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 282.250 m
+563.760 244.190 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 258.613 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 244.440 m
+269.177 244.440 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 206.880 m
+269.177 206.880 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 244.690 m
+48.240 206.630 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.690 m
+269.177 206.630 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 228.19300000000007 Td
+/F2.0 10.5 Tf
+<7570646174656444617465> Tj
+ET
+
+
+BT
+51.24 213.91300000000007 Td
+ET
+
+
+BT
+51.24 213.91300000000007 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.440 m
+563.760 244.440 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.880 m
+563.760 206.880 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 244.690 m
+269.177 206.630 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 244.690 m
+563.760 206.630 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 221.05300000000005 Td
/F1.0 10.5 Tf
<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 206.880 m
+269.177 206.880 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 169.320 m
+269.177 169.320 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 207.130 m
+48.240 169.070 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 207.130 m
+269.177 169.070 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 190.63300000000012 Td
+/F2.0 10.5 Tf
+[<7573656442> 20.01953125 <794c6f6f7073>] TJ
+ET
+
+
+BT
+51.24 176.35300000000012 Td
+ET
+
+
+BT
+51.24 176.35300000000012 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 206.880 m
+563.760 206.880 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.320 m
+563.760 169.320 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 207.130 m
+269.177 169.070 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 207.130 m
+563.760 169.070 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 183.4930000000001 Td
+/F1.0 10.5 Tf
+<3c20> Tj
+ET
+
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+280.76592192000004 183.4930000000001 Td
+/F1.0 10.5 Tf
+<4c6f6f70> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+305.86092192000007 183.4930000000001 Td
+/F1.0 10.5 Tf
+[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
+ET
+
+0.000 0.000 0.000 scn
0.200 0.200 0.200 scn
0.200 0.200 0.200 SCN
BT
-48.24 396.816 Td
+48.24 133.89600000000007 Td
+/F2.0 18 Tf
+<332e31382e204e756d626572> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 105.2760000000001 Td
+/F3.0 10.5 Tf
+<54797065> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+71.4345 105.2760000000001 Td
+/F1.0 10.5 Tf
+<203a206f626a656374> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+q
+0.000 0.000 0.000 scn
+0.000 0.000 0.000 SCN
+1 w
+0 J
+0 j
+[ ] 0 d
+/Stamp1 Do
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+49.24 14.388 Td
+/F1.0 9 Tf
+<3332> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+Q
+Q
+
+endstream
+endobj
+347 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 612.0 792.0]
+/Contents 346 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F2.0 24 0 R
+/F3.0 26 0 R
+/F1.0 8 0 R
+>>
+/XObject << /Stamp1 717 0 R
+>>
+>>
+/Annots [348 0 R 349 0 R 350 0 R 351 0 R]
+>>
+endobj
+348 0 obj
+<< /Border [0 0 0]
+/Dest (_jsonobject)
+/Subtype /Link
+/Rect [272.17692192000004 518.4670000000001 325.32792192000005 532.7470000000001]
+/Type /Annot
+>>
+endobj
+349 0 obj
+<< /Border [0 0 0]
+/Dest (_loopelementmodel)
+/Subtype /Link
+/Rect [272.17692192000004 480.907 369.88992192000006 495.187]
+/Type /Annot
+>>
+endobj
+350 0 obj
+<< /Border [0 0 0]
+/Dest (_policymodel)
+/Subtype /Link
+/Rect [272.17692192000004 330.667 333.47592192 344.947]
+/Type /Annot
+>>
+endobj
+351 0 obj
+<< /Border [0 0 0]
+/Dest (_loop)
+/Subtype /Link
+/Rect [280.76592192000004 180.42700000000013 305.86092192000007 194.7070000000001]
+/Type /Annot
+>>
+endobj
+352 0 obj
+[347 0 R /XYZ 0 157.3200000000001 null]
+endobj
+353 0 obj
+<< /Length 20546
+>>
+stream
+q
+/DeviceRGB cs
+0.200 0.200 0.200 scn
+/DeviceRGB CS
+0.200 0.200 0.200 SCN
+
+BT
+48.24 734.976 Td
/F2.0 18 Tf
-<332e31392e20506f6c6963794d6f64656c> Tj
+[<332e31392e204f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 356.880 220.937 23.280 re
+48.240 695.040 220.937 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 356.880 294.583 23.280 re
+269.177 695.040 294.583 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 319.320 220.937 37.560 re
+48.240 657.480 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 319.320 294.583 37.560 re
+269.177 657.480 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 281.760 220.937 37.560 re
+48.240 619.920 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 281.760 294.583 37.560 re
+269.177 619.920 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 244.200 220.937 37.560 re
+48.240 582.360 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 244.200 294.583 37.560 re
+269.177 582.360 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 206.640 220.937 37.560 re
+48.240 544.800 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 206.640 294.583 37.560 re
+269.177 544.800 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 169.080 220.937 37.560 re
+48.240 507.240 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 169.080 294.583 37.560 re
+269.177 507.240 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 131.520 220.937 37.560 re
+48.240 469.680 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 131.520 294.583 37.560 re
+269.177 469.680 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 93.960 220.937 37.560 re
+48.240 432.120 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 93.960 294.583 37.560 re
+269.177 432.120 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 56.400 220.937 37.560 re
+48.240 394.560 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 56.400 294.583 37.560 re
+269.177 394.560 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 357.000 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 357.000 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 319.440 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 319.440 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 281.880 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 281.880 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 244.320 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 244.320 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 380.160 m
-269.177 380.160 l
+48.240 718.320 m
+269.177 718.320 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 356.880 m
-269.177 356.880 l
+48.240 695.040 m
+269.177 695.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 380.410 m
-48.240 356.130 l
+48.240 718.570 m
+48.240 694.290 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 380.410 m
-269.177 356.130 l
+269.177 718.570 m
+269.177 694.290 l
S
[ ] 0 d
1 w
@@ -49148,7 +52536,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24 364.4129999999999 Td
+51.24 702.573 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -49156,26 +52544,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 380.160 m
-563.760 380.160 l
+269.177 718.320 m
+563.760 718.320 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-269.177 356.880 m
-563.760 356.880 l
+269.177 695.040 m
+563.760 695.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 380.410 m
-269.177 356.130 l
+269.177 718.570 m
+269.177 694.290 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 380.410 m
-563.760 356.130 l
+563.760 718.570 m
+563.760 694.290 l
S
[ ] 0 d
1 w
@@ -49183,7 +52571,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 364.4129999999999 Td
+272.17692192000004 702.573 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -49191,26 +52579,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 356.880 m
-269.177 356.880 l
+48.240 695.040 m
+269.177 695.040 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.320 m
-269.177 319.320 l
+48.240 657.480 m
+269.177 657.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 357.130 m
-48.240 319.070 l
+48.240 695.290 m
+48.240 657.230 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 357.130 m
-269.177 319.070 l
+269.177 695.290 m
+269.177 657.230 l
S
[ ] 0 d
1 w
@@ -49218,19 +52606,109 @@ S
0.200 0.200 0.200 scn
BT
-51.24 340.63299999999987 Td
+51.24 678.7930000000001 Td
+/F2.0 10.5 Tf
+[<636f6e6669677572> 20.01953125 <6174696f6e734a736f6e>] TJ
+ET
+
+
+BT
+51.24 664.513 Td
+ET
+
+
+BT
+51.24 664.513 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.040 m
+563.760 695.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.480 m
+563.760 657.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.290 m
+269.177 657.230 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 695.290 m
+563.760 657.230 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+272.17692192000004 671.653 Td
+/F1.0 10.5 Tf
+<4a736f6e4f626a656374> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.480 m
+269.177 657.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 619.920 m
+269.177 619.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.730 m
+48.240 619.670 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.730 m
+269.177 619.670 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 641.233 Td
/F2.0 10.5 Tf
[<6372656174656442> 20.01953125 <79>] TJ
ET
BT
-51.24 326.35299999999984 Td
+51.24 626.953 Td
ET
BT
-51.24 326.35299999999984 Td
+51.24 626.953 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -49238,26 +52716,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 356.880 m
-563.760 356.880 l
+269.177 657.480 m
+563.760 657.480 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.320 m
-563.760 319.320 l
+269.177 619.920 m
+563.760 619.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 357.130 m
-269.177 319.070 l
+269.177 657.730 m
+269.177 619.670 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 357.130 m
-563.760 319.070 l
+563.760 657.730 m
+563.760 619.670 l
S
[ ] 0 d
1 w
@@ -49265,7 +52743,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 333.4929999999999 Td
+272.17692192000004 634.093 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -49273,26 +52751,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.320 m
-269.177 319.320 l
+48.240 619.920 m
+269.177 619.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 281.760 m
-269.177 281.760 l
+48.240 582.360 m
+269.177 582.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 319.570 m
-48.240 281.510 l
+48.240 620.170 m
+48.240 582.110 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.570 m
-269.177 281.510 l
+269.177 620.170 m
+269.177 582.110 l
S
[ ] 0 d
1 w
@@ -49300,19 +52778,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 303.0729999999999 Td
+51.24 603.673 Td
/F2.0 10.5 Tf
<6372656174656444617465> Tj
ET
BT
-51.24 288.7929999999999 Td
+51.24 589.393 Td
ET
BT
-51.24 288.7929999999999 Td
+51.24 589.393 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -49320,26 +52798,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.320 m
-563.760 319.320 l
+269.177 619.920 m
+563.760 619.920 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 281.760 m
-563.760 281.760 l
+269.177 582.360 m
+563.760 582.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 319.570 m
-269.177 281.510 l
+269.177 620.170 m
+269.177 582.110 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 319.570 m
-563.760 281.510 l
+563.760 620.170 m
+563.760 582.110 l
S
[ ] 0 d
1 w
@@ -49347,7 +52825,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 295.93299999999994 Td
+272.17692192000004 596.533 Td
/F1.0 10.5 Tf
<696e74656765722028696e74363429> Tj
ET
@@ -49355,26 +52833,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 281.760 m
-269.177 281.760 l
+48.240 582.360 m
+269.177 582.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 244.200 m
-269.177 244.200 l
+48.240 544.800 m
+269.177 544.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 282.010 m
-48.240 243.950 l
+48.240 582.610 m
+48.240 544.550 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 282.010 m
-269.177 243.950 l
+269.177 582.610 m
+269.177 544.550 l
S
[ ] 0 d
1 w
@@ -49382,19 +52860,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 265.51299999999986 Td
+51.24 566.113 Td
/F2.0 10.5 Tf
-[<706f6c69637941> 20.01953125 <63726f6e> 20.01953125 <796d>] TJ
+<6a736f6e526570726573656e746174696f6e> Tj
ET
BT
-51.24 251.23299999999986 Td
+51.24 551.833 Td
ET
BT
-51.24 251.23299999999986 Td
+51.24 551.833 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -49402,34 +52880,304 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 281.760 m
-563.760 281.760 l
+269.177 582.360 m
+563.760 582.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 244.200 m
-563.760 244.200 l
+269.177 544.800 m
+563.760 544.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 282.010 m
-269.177 243.950 l
+269.177 582.610 m
+269.177 544.550 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 282.010 m
-563.760 243.950 l
+563.760 582.610 m
+563.760 544.550 l
S
[ ] 0 d
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
-272.17692192000004 258.3729999999999 Td
+272.17692192000004 558.973 Td
+/F1.0 10.5 Tf
+<4a736f6e4f626a656374> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 544.800 m
+269.177 544.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 507.240 m
+269.177 507.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 545.050 m
+48.240 506.990 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 545.050 m
+269.177 506.990 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 528.5530000000001 Td
+/F2.0 10.5 Tf
+<6c6f6f70> Tj
+ET
+
+
+BT
+51.24 514.273 Td
+ET
+
+
+BT
+51.24 514.273 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 544.800 m
+563.760 544.800 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.240 m
+563.760 507.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 545.050 m
+269.177 506.990 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 545.050 m
+563.760 506.990 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+272.17692192000004 521.413 Td
+/F1.0 10.5 Tf
+<4c6f6f70> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 507.240 m
+269.177 507.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 469.680 m
+269.177 469.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 507.490 m
+48.240 469.430 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.490 m
+269.177 469.430 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 490.993 Td
+/F2.0 10.5 Tf
+<6c6f6f70456c656d656e744d6f64656c> Tj
+ET
+
+
+BT
+51.24 476.71299999999997 Td
+ET
+
+
+BT
+51.24 476.71299999999997 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.240 m
+563.760 507.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 469.680 m
+563.760 469.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.490 m
+269.177 469.430 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 507.490 m
+563.760 469.430 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+272.17692192000004 483.853 Td
+/F1.0 10.5 Tf
+<4c6f6f70456c656d656e744d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 469.680 m
+269.177 469.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 432.120 m
+269.177 432.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 469.930 m
+48.240 431.870 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 469.930 m
+269.177 431.870 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 453.43300000000005 Td
+/F2.0 10.5 Tf
+<6e616d65> Tj
+ET
+
+
+BT
+51.24 439.153 Td
+ET
+
+
+BT
+51.24 439.153 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 469.680 m
+563.760 469.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 432.120 m
+563.760 432.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 469.930 m
+269.177 431.870 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 469.930 m
+563.760 431.870 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 446.29300000000006 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -49437,26 +53185,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 244.200 m
-269.177 244.200 l
+48.240 432.120 m
+269.177 432.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 206.640 m
-269.177 206.640 l
+48.240 394.560 m
+269.177 394.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 244.450 m
-48.240 206.390 l
+48.240 432.370 m
+48.240 394.310 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 244.450 m
-269.177 206.390 l
+269.177 432.370 m
+269.177 394.310 l
S
[ ] 0 d
1 w
@@ -49464,19 +53212,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 227.95299999999992 Td
+51.24 415.873 Td
/F2.0 10.5 Tf
-[<706f6c6963794d6f64656c54> 29.78515625 <6f736361>] TJ
+<70647047726f7570> Tj
ET
BT
-51.24 213.67299999999992 Td
+51.24 401.59299999999996 Td
ET
BT
-51.24 213.67299999999992 Td
+51.24 401.59299999999996 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -49484,26 +53232,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 244.200 m
-563.760 244.200 l
+269.177 432.120 m
+563.760 432.120 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 206.640 m
-563.760 206.640 l
+269.177 394.560 m
+563.760 394.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 244.450 m
-269.177 206.390 l
+269.177 432.370 m
+269.177 394.310 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 244.450 m
-563.760 206.390 l
+563.760 432.370 m
+563.760 394.310 l
S
[ ] 0 d
1 w
@@ -49511,7 +53259,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 220.8129999999999 Td
+272.17692192000004 408.733 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -49519,26 +53267,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 206.640 m
-269.177 206.640 l
+48.240 394.560 m
+269.177 394.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 169.080 m
-269.177 169.080 l
+48.240 357.000 m
+269.177 357.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 206.890 m
-48.240 168.830 l
+48.240 394.810 m
+48.240 356.750 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 206.890 m
-269.177 168.830 l
+269.177 394.810 m
+269.177 356.750 l
S
[ ] 0 d
1 w
@@ -49546,19 +53294,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 190.39299999999992 Td
+51.24 378.313 Td
/F2.0 10.5 Tf
-<706f6c6963794d6f64656c54797065> Tj
+<70647053756267726f7570> Tj
ET
BT
-51.24 176.11299999999991 Td
+51.24 364.033 Td
ET
BT
-51.24 176.11299999999991 Td
+51.24 364.033 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -49566,26 +53314,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 206.640 m
-563.760 206.640 l
+269.177 394.560 m
+563.760 394.560 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 169.080 m
-563.760 169.080 l
+269.177 357.000 m
+563.760 357.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 206.890 m
-269.177 168.830 l
+269.177 394.810 m
+269.177 356.750 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 206.890 m
-563.760 168.830 l
+563.760 394.810 m
+563.760 356.750 l
S
[ ] 0 d
1 w
@@ -49593,7 +53341,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 183.2529999999999 Td
+272.17692192000004 371.173 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -49601,26 +53349,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 169.080 m
-269.177 169.080 l
+48.240 357.000 m
+269.177 357.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 131.520 m
-269.177 131.520 l
+48.240 319.440 m
+269.177 319.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 169.330 m
-48.240 131.270 l
+48.240 357.250 m
+48.240 319.190 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 169.330 m
-269.177 131.270 l
+269.177 357.250 m
+269.177 319.190 l
S
[ ] 0 d
1 w
@@ -49628,19 +53376,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 152.8329999999999 Td
+51.24 340.753 Td
/F2.0 10.5 Tf
-<706f6c69637950647047726f7570> Tj
+<706f6c6963794d6f64656c> Tj
ET
BT
-51.24 138.5529999999999 Td
+51.24 326.47299999999996 Td
ET
BT
-51.24 138.5529999999999 Td
+51.24 326.47299999999996 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -49648,26 +53396,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 169.080 m
-563.760 169.080 l
+269.177 357.000 m
+563.760 357.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.520 m
-563.760 131.520 l
+269.177 319.440 m
+563.760 319.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 169.330 m
-269.177 131.270 l
+269.177 357.250 m
+269.177 319.190 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 169.330 m
-563.760 131.270 l
+563.760 357.250 m
+563.760 319.190 l
S
[ ] 0 d
1 w
@@ -49681,9 +53429,9 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 145.6929999999999 Td
+272.17692192000004 333.613 Td
/F1.0 10.5 Tf
-<4a736f6e4f626a656374> Tj
+<506f6c6963794d6f64656c> Tj
ET
0.000 0.000 0.000 SCN
@@ -49691,26 +53439,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 131.520 m
-269.177 131.520 l
+48.240 319.440 m
+269.177 319.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 93.960 m
-269.177 93.960 l
+48.240 281.880 m
+269.177 281.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 131.770 m
-48.240 93.710 l
+48.240 319.690 m
+48.240 281.630 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.770 m
-269.177 93.710 l
+269.177 319.690 m
+269.177 281.630 l
S
[ ] 0 d
1 w
@@ -49718,19 +53466,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 115.2729999999999 Td
+51.24 303.193 Td
/F2.0 10.5 Tf
[<7570646174656442> 20.01953125 <79>] TJ
ET
BT
-51.24 100.9929999999999 Td
+51.24 288.913 Td
ET
BT
-51.24 100.9929999999999 Td
+51.24 288.913 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -49738,26 +53486,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.520 m
-563.760 131.520 l
+269.177 319.440 m
+563.760 319.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 93.960 m
-563.760 93.960 l
+269.177 281.880 m
+563.760 281.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 131.770 m
-269.177 93.710 l
+269.177 319.690 m
+269.177 281.630 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 131.770 m
-563.760 93.710 l
+563.760 319.690 m
+563.760 281.630 l
S
[ ] 0 d
1 w
@@ -49765,7 +53513,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 108.1329999999999 Td
+272.17692192000004 296.053 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -49773,26 +53521,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 93.960 m
-269.177 93.960 l
+48.240 281.880 m
+269.177 281.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 56.400 m
-269.177 56.400 l
+48.240 244.320 m
+269.177 244.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 94.210 m
-48.240 56.150 l
+48.240 282.130 m
+48.240 244.070 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 94.210 m
-269.177 56.150 l
+269.177 282.130 m
+269.177 244.070 l
S
[ ] 0 d
1 w
@@ -49800,19 +53548,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 77.71299999999987 Td
+51.24 265.633 Td
/F2.0 10.5 Tf
<7570646174656444617465> Tj
ET
BT
-51.24 63.432999999999865 Td
+51.24 251.35299999999998 Td
ET
BT
-51.24 63.432999999999865 Td
+51.24 251.35299999999998 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -49820,26 +53568,256 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 93.960 m
-563.760 93.960 l
+269.177 281.880 m
+563.760 281.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 56.400 m
-563.760 56.400 l
+269.177 244.320 m
+563.760 244.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 94.210 m
-269.177 56.150 l
+269.177 282.130 m
+269.177 244.070 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 94.210 m
-563.760 56.150 l
+563.760 282.130 m
+563.760 244.070 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 258.493 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 208.896 Td
+/F2.0 18 Tf
+<332e32302e20506f6c6963794d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 168.960 220.937 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 168.960 294.583 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 131.400 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 131.400 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 93.840 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 93.840 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 56.280 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 56.280 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 192.240 m
+269.177 192.240 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 168.960 m
+269.177 168.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 192.490 m
+48.240 168.210 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 192.490 m
+269.177 168.210 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 176.493 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 192.240 m
+563.760 192.240 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+269.177 168.960 m
+563.760 168.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 192.490 m
+269.177 168.210 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 192.490 m
+563.760 168.210 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 176.493 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 168.960 m
+269.177 168.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.400 m
+269.177 131.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 169.210 m
+48.240 131.150 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.210 m
+269.177 131.150 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 152.713 Td
+/F2.0 10.5 Tf
+[<6372656174656442> 20.01953125 <79>] TJ
+ET
+
+
+BT
+51.24 138.433 Td
+ET
+
+
+BT
+51.24 138.433 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 168.960 m
+563.760 168.960 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.400 m
+563.760 131.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 169.210 m
+269.177 131.150 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 169.210 m
+563.760 131.150 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 145.57299999999998 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.400 m
+269.177 131.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 93.840 m
+269.177 93.840 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 131.650 m
+48.240 93.590 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.650 m
+269.177 93.590 l
S
[ ] 0 d
1 w
@@ -49847,12 +53825,141 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 70.57299999999987 Td
+51.24 115.15299999999998 Td
+/F2.0 10.5 Tf
+<6372656174656444617465> Tj
+ET
+
+
+BT
+51.24 100.87299999999998 Td
+ET
+
+
+BT
+51.24 100.87299999999998 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.400 m
+563.760 131.400 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 93.840 m
+563.760 93.840 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 131.650 m
+269.177 93.590 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 131.650 m
+563.760 93.590 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 108.01299999999998 Td
/F1.0 10.5 Tf
<696e74656765722028696e74363429> Tj
ET
0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 93.840 m
+269.177 93.840 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 56.280 m
+269.177 56.280 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 94.090 m
+48.240 56.030 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 94.090 m
+269.177 56.030 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 77.59299999999998 Td
+/F2.0 10.5 Tf
+[<706f6c69637941> 20.01953125 <63726f6e> 20.01953125 <796d>] TJ
+ET
+
+
+BT
+51.24 63.312999999999974 Td
+ET
+
+
+BT
+51.24 63.312999999999974 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 93.840 m
+563.760 93.840 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 56.280 m
+563.760 56.280 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 94.090 m
+269.177 56.030 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 94.090 m
+563.760 56.030 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 70.45299999999997 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
q
0.000 0.000 0.000 scn
0.000 0.000 0.000 SCN
@@ -49867,7 +53974,7 @@ q
BT
552.698 14.388 Td
/F1.0 9 Tf
-<3331> Tj
+<3333> Tj
ET
0.000 0.000 0.000 SCN
@@ -49877,59 +53984,70 @@ Q
endstream
endobj
-336 0 obj
+354 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 335 0 R
+/Contents 353 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [337 0 R 338 0 R 339 0 R 341 0 R]
+/Annots [356 0 R 357 0 R 358 0 R 359 0 R 360 0 R]
>>
endobj
-337 0 obj
+355 0 obj
+[354 0 R /XYZ 0 792.0 null]
+endobj
+356 0 obj
<< /Border [0 0 0]
-/Dest (_loop)
+/Dest (_jsonobject)
/Subtype /Link
-/Rect [272.17692192000004 706.267 297.27192192000007 720.547]
+/Rect [272.17692192000004 668.5870000000001 325.32792192000005 682.8670000000001]
/Type /Annot
>>
endobj
-338 0 obj
+357 0 obj
<< /Border [0 0 0]
-/Dest (_loopelementmodel)
+/Dest (_jsonobject)
/Subtype /Link
-/Rect [272.17692192000004 668.707 369.88992192000006 682.987]
+/Rect [272.17692192000004 555.907 325.32792192000005 570.187]
/Type /Annot
>>
endobj
-339 0 obj
+358 0 obj
<< /Border [0 0 0]
-/Dest (_policymodel)
+/Dest (_loop)
/Subtype /Link
-/Rect [272.17692192000004 518.467 333.47592192 532.747]
+/Rect [272.17692192000004 518.3470000000001 297.27192192000007 532.6270000000001]
/Type /Annot
>>
endobj
-340 0 obj
-[336 0 R /XYZ 0 420.23999999999995 null]
+359 0 obj
+<< /Border [0 0 0]
+/Dest (_loopelementmodel)
+/Subtype /Link
+/Rect [272.17692192000004 480.787 369.88992192000006 495.067]
+/Type /Annot
+>>
endobj
-341 0 obj
+360 0 obj
<< /Border [0 0 0]
-/Dest (_jsonobject)
+/Dest (_policymodel)
/Subtype /Link
-/Rect [272.17692192000004 142.62699999999992 325.32792192000005 156.90699999999993]
+/Rect [272.17692192000004 330.54699999999997 333.47592192 344.827]
/Type /Annot
>>
endobj
-342 0 obj
-<< /Length 11146
+361 0 obj
+[354 0 R /XYZ 0 232.32 null]
+endobj
+362 0 obj
+<< /Length 17011
>>
stream
q
@@ -49958,6 +54076,46 @@ f
269.177 657.600 294.583 37.560 re
f
0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 620.040 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 620.040 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 582.480 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 582.480 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 544.920 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 544.920 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+48.240 507.360 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+0.976 0.976 0.976 scn
+269.177 507.360 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 469.800 220.937 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+269.177 469.800 294.583 37.560 re
+f
+0.000 0.000 0.000 scn
0.5 w
/DeviceRGB CS
0.867 0.867 0.867 SCN
@@ -50060,7 +54218,7 @@ S
BT
51.24 716.473 Td
/F2.0 10.5 Tf
-[<7573656442> 20.01953125 <79456c656d656e744d6f64656c73>] TJ
+[<706f6c6963794d6f64656c54> 29.78515625 <6f736361>] TJ
ET
@@ -50103,13 +54261,431 @@ S
1 w
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 709.333 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 695.160 m
+269.177 695.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.600 m
+269.177 657.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 695.410 m
+48.240 657.350 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.410 m
+269.177 657.350 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 678.913 Td
+/F2.0 10.5 Tf
+<706f6c6963794d6f64656c54797065> Tj
+ET
+
+
+BT
+51.24 664.633 Td
+ET
+
+
+BT
+51.24 664.633 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.160 m
+563.760 695.160 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.600 m
+563.760 657.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 695.410 m
+269.177 657.350 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 695.410 m
+563.760 657.350 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 671.773 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.600 m
+269.177 657.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 620.040 m
+269.177 620.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 657.850 m
+48.240 619.790 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.850 m
+269.177 619.790 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 641.3530000000001 Td
+/F2.0 10.5 Tf
+<706f6c69637950647047726f7570> Tj
+ET
+
+
+BT
+51.24 627.073 Td
+ET
+
+
+BT
+51.24 627.073 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.600 m
+563.760 657.600 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 620.040 m
+563.760 620.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 657.850 m
+269.177 619.790 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 657.850 m
+563.760 619.790 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
0.259 0.545 0.792 scn
0.259 0.545 0.792 SCN
0.000 0.000 0.000 SCN
0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
BT
-272.17692192000004 709.333 Td
+272.17692192000004 634.213 Td
+/F1.0 10.5 Tf
+<4a736f6e4f626a656374> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 620.040 m
+269.177 620.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 582.480 m
+269.177 582.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 620.290 m
+48.240 582.230 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 620.290 m
+269.177 582.230 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 603.7930000000001 Td
+/F2.0 10.5 Tf
+[<7570646174656442> 20.01953125 <79>] TJ
+ET
+
+
+BT
+51.24 589.513 Td
+ET
+
+
+BT
+51.24 589.513 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 620.040 m
+563.760 620.040 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 582.480 m
+563.760 582.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 620.290 m
+269.177 582.230 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 620.290 m
+563.760 582.230 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 596.653 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 582.480 m
+269.177 582.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 544.920 m
+269.177 544.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 582.730 m
+48.240 544.670 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 582.730 m
+269.177 544.670 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 566.233 Td
+/F2.0 10.5 Tf
+<7570646174656444617465> Tj
+ET
+
+
+BT
+51.24 551.953 Td
+ET
+
+
+BT
+51.24 551.953 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 582.480 m
+563.760 582.480 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 544.920 m
+563.760 544.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 582.730 m
+269.177 544.670 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 582.730 m
+563.760 544.670 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 559.093 Td
+/F1.0 10.5 Tf
+<696e74656765722028696e74363429> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 544.920 m
+269.177 544.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 507.360 m
+269.177 507.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 545.170 m
+48.240 507.110 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 545.170 m
+269.177 507.110 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 528.673 Td
+/F2.0 10.5 Tf
+[<7573656442> 20.01953125 <79456c656d656e744d6f64656c73>] TJ
+ET
+
+
+BT
+51.24 514.393 Td
+ET
+
+
+BT
+51.24 514.393 Td
+/F3.0 10.5 Tf
+<6f7074696f6e616c> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 544.920 m
+563.760 544.920 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 507.360 m
+563.760 507.360 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+269.177 545.170 m
+269.177 507.110 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 545.170 m
+563.760 507.110 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+272.17692192000004 521.533 Td
/F1.0 10.5 Tf
<3c20> Tj
ET
@@ -50118,7 +54694,7 @@ ET
0.259 0.545 0.792 SCN
BT
-280.76592192000004 709.333 Td
+280.76592192000004 521.533 Td
/F1.0 10.5 Tf
<4c6f6f70456c656d656e744d6f64656c> Tj
ET
@@ -50127,7 +54703,7 @@ ET
0.200 0.200 0.200 scn
BT
-378.47892192000006 709.333 Td
+378.47892192000006 521.533 Td
/F1.0 10.5 Tf
[<203e20617272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
@@ -50135,26 +54711,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 695.160 m
-269.177 695.160 l
+48.240 507.360 m
+269.177 507.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 657.600 m
-269.177 657.600 l
+48.240 469.800 m
+269.177 469.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 695.410 m
-48.240 657.350 l
+48.240 507.610 m
+48.240 469.550 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 695.410 m
-269.177 657.350 l
+269.177 507.610 m
+269.177 469.550 l
S
[ ] 0 d
1 w
@@ -50162,19 +54738,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 678.913 Td
+51.24 491.113 Td
/F2.0 10.5 Tf
<76657273696f6e> Tj
ET
BT
-51.24 664.6329999999999 Td
+51.24 476.83299999999997 Td
ET
BT
-51.24 664.6329999999999 Td
+51.24 476.83299999999997 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -50182,26 +54758,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 695.160 m
-563.760 695.160 l
+269.177 507.360 m
+563.760 507.360 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 657.600 m
-563.760 657.600 l
+269.177 469.800 m
+563.760 469.800 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 695.410 m
-269.177 657.350 l
+269.177 507.610 m
+269.177 469.550 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 695.410 m
-563.760 657.350 l
+563.760 507.610 m
+563.760 469.550 l
S
[ ] 0 d
1 w
@@ -50209,7 +54785,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 671.7729999999999 Td
+272.17692192000004 483.973 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -50219,83 +54795,83 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24 622.1759999999999 Td
+48.24 434.37600000000003 Td
/F2.0 18 Tf
-<332e32302e2053657276696365> Tj
+<332e32312e2053657276696365> Tj
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 582.240 220.937 23.280 re
+48.240 394.440 220.937 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 582.240 294.583 23.280 re
+269.177 394.440 294.583 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 544.680 220.937 37.560 re
+48.240 356.880 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 544.680 294.583 37.560 re
+269.177 356.880 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 507.120 220.937 37.560 re
+48.240 319.320 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 507.120 294.583 37.560 re
+269.177 319.320 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 469.560 220.937 37.560 re
+48.240 281.760 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 469.560 294.583 37.560 re
+269.177 281.760 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-48.240 432.000 220.937 37.560 re
+48.240 244.200 220.937 37.560 re
f
0.000 0.000 0.000 scn
0.976 0.976 0.976 scn
-269.177 432.000 294.583 37.560 re
+269.177 244.200 294.583 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 394.440 220.937 37.560 re
+48.240 206.640 220.937 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-269.177 394.440 294.583 37.560 re
+269.177 206.640 294.583 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 605.520 m
-269.177 605.520 l
+48.240 417.720 m
+269.177 417.720 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 582.240 m
-269.177 582.240 l
+48.240 394.440 m
+269.177 394.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 605.770 m
-48.240 581.490 l
+48.240 417.970 m
+48.240 393.690 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 605.770 m
-269.177 581.490 l
+269.177 417.970 m
+269.177 393.690 l
S
[ ] 0 d
1 w
@@ -50303,7 +54879,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24 589.7729999999999 Td
+51.24 401.97299999999996 Td
/F2.0 10.5 Tf
<4e616d65> Tj
ET
@@ -50311,26 +54887,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 605.520 m
-563.760 605.520 l
+269.177 417.720 m
+563.760 417.720 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-269.177 582.240 m
-563.760 582.240 l
+269.177 394.440 m
+563.760 394.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 605.770 m
-269.177 581.490 l
+269.177 417.970 m
+269.177 393.690 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 605.770 m
-563.760 581.490 l
+563.760 417.970 m
+563.760 393.690 l
S
[ ] 0 d
1 w
@@ -50338,7 +54914,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 589.7729999999999 Td
+272.17692192000004 401.97299999999996 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -50346,26 +54922,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 582.240 m
-269.177 582.240 l
+48.240 394.440 m
+269.177 394.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 544.680 m
-269.177 544.680 l
+48.240 356.880 m
+269.177 356.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 582.490 m
-48.240 544.430 l
+48.240 394.690 m
+48.240 356.630 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 582.490 m
-269.177 544.430 l
+269.177 394.690 m
+269.177 356.630 l
S
[ ] 0 d
1 w
@@ -50373,19 +54949,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 565.9929999999999 Td
+51.24 378.1929999999999 Td
/F2.0 10.5 Tf
<6e616d65> Tj
ET
BT
-51.24 551.713 Td
+51.24 363.9129999999999 Td
ET
BT
-51.24 551.713 Td
+51.24 363.9129999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -50393,26 +54969,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 582.240 m
-563.760 582.240 l
+269.177 394.440 m
+563.760 394.440 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 544.680 m
-563.760 544.680 l
+269.177 356.880 m
+563.760 356.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 582.490 m
-269.177 544.430 l
+269.177 394.690 m
+269.177 356.630 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 582.490 m
-563.760 544.430 l
+563.760 394.690 m
+563.760 356.630 l
S
[ ] 0 d
1 w
@@ -50420,7 +54996,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 558.853 Td
+272.17692192000004 371.05299999999994 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -50428,26 +55004,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 544.680 m
-269.177 544.680 l
+48.240 356.880 m
+269.177 356.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 507.120 m
-269.177 507.120 l
+48.240 319.320 m
+269.177 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 544.930 m
-48.240 506.870 l
+48.240 357.130 m
+48.240 319.070 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 544.930 m
-269.177 506.870 l
+269.177 357.130 m
+269.177 319.070 l
S
[ ] 0 d
1 w
@@ -50455,19 +55031,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 528.433 Td
+51.24 340.633 Td
/F2.0 10.5 Tf
<7265736f7572636544657461696c73> Tj
ET
BT
-51.24 514.1529999999999 Td
+51.24 326.35299999999995 Td
ET
BT
-51.24 514.1529999999999 Td
+51.24 326.35299999999995 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -50475,26 +55051,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 544.680 m
-563.760 544.680 l
+269.177 356.880 m
+563.760 356.880 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 507.120 m
-563.760 507.120 l
+269.177 319.320 m
+563.760 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 544.930 m
-269.177 506.870 l
+269.177 357.130 m
+269.177 319.070 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 544.930 m
-563.760 506.870 l
+563.760 357.130 m
+563.760 319.070 l
S
[ ] 0 d
1 w
@@ -50508,7 +55084,7 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 521.2929999999999 Td
+272.17692192000004 333.493 Td
/F1.0 10.5 Tf
<4a736f6e4f626a656374> Tj
ET
@@ -50518,26 +55094,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 507.120 m
-269.177 507.120 l
+48.240 319.320 m
+269.177 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 469.560 m
-269.177 469.560 l
+48.240 281.760 m
+269.177 281.760 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 507.370 m
-48.240 469.310 l
+48.240 319.570 m
+48.240 281.510 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 507.370 m
-269.177 469.310 l
+269.177 319.570 m
+269.177 281.510 l
S
[ ] 0 d
1 w
@@ -50545,19 +55121,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 490.873 Td
+51.24 303.0729999999999 Td
/F2.0 10.5 Tf
<7365727669636544657461696c73> Tj
ET
BT
-51.24 476.59299999999996 Td
+51.24 288.7929999999999 Td
ET
BT
-51.24 476.59299999999996 Td
+51.24 288.7929999999999 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -50565,26 +55141,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 507.120 m
-563.760 507.120 l
+269.177 319.320 m
+563.760 319.320 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 469.560 m
-563.760 469.560 l
+269.177 281.760 m
+563.760 281.760 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 507.370 m
-269.177 469.310 l
+269.177 319.570 m
+269.177 281.510 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 507.370 m
-563.760 469.310 l
+563.760 319.570 m
+563.760 281.510 l
S
[ ] 0 d
1 w
@@ -50598,7 +55174,7 @@ S
0.259 0.545 0.792 SCN
BT
-272.17692192000004 483.733 Td
+272.17692192000004 295.93299999999994 Td
/F1.0 10.5 Tf
<4a736f6e4f626a656374> Tj
ET
@@ -50608,26 +55184,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 469.560 m
-269.177 469.560 l
+48.240 281.760 m
+269.177 281.760 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 432.000 m
-269.177 432.000 l
+48.240 244.200 m
+269.177 244.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 469.810 m
-48.240 431.750 l
+48.240 282.010 m
+48.240 243.950 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 469.810 m
-269.177 431.750 l
+269.177 282.010 m
+269.177 243.950 l
S
[ ] 0 d
1 w
@@ -50635,19 +55211,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 453.31299999999993 Td
+51.24 265.513 Td
/F2.0 10.5 Tf
<7365727669636555756964> Tj
ET
BT
-51.24 439.0329999999999 Td
+51.24 251.23299999999998 Td
ET
BT
-51.24 439.0329999999999 Td
+51.24 251.23299999999998 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -50655,26 +55231,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 469.560 m
-563.760 469.560 l
+269.177 281.760 m
+563.760 281.760 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 432.000 m
-563.760 432.000 l
+269.177 244.200 m
+563.760 244.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 469.810 m
-269.177 431.750 l
+269.177 282.010 m
+269.177 243.950 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 469.810 m
-563.760 431.750 l
+563.760 282.010 m
+563.760 243.950 l
S
[ ] 0 d
1 w
@@ -50682,7 +55258,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 446.17299999999994 Td
+272.17692192000004 258.373 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -50690,26 +55266,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 432.000 m
-269.177 432.000 l
+48.240 244.200 m
+269.177 244.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 394.440 m
-269.177 394.440 l
+48.240 206.640 m
+269.177 206.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 432.250 m
-48.240 394.190 l
+48.240 244.450 m
+48.240 206.390 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 432.250 m
-269.177 394.190 l
+269.177 244.450 m
+269.177 206.390 l
S
[ ] 0 d
1 w
@@ -50717,19 +55293,19 @@ S
0.200 0.200 0.200 scn
BT
-51.24 415.753 Td
+51.24 227.95299999999997 Td
/F2.0 10.5 Tf
<76657273696f6e> Tj
ET
BT
-51.24 401.47299999999996 Td
+51.24 213.67299999999997 Td
ET
BT
-51.24 401.47299999999996 Td
+51.24 213.67299999999997 Td
/F3.0 10.5 Tf
<6f7074696f6e616c> Tj
ET
@@ -50737,26 +55313,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-269.177 432.000 m
-563.760 432.000 l
+269.177 244.200 m
+563.760 244.200 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 394.440 m
-563.760 394.440 l
+269.177 206.640 m
+563.760 206.640 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-269.177 432.250 m
-269.177 394.190 l
+269.177 244.450 m
+269.177 206.390 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 432.250 m
-563.760 394.190 l
+563.760 244.450 m
+563.760 206.390 l
S
[ ] 0 d
1 w
@@ -50764,7 +55340,7 @@ S
0.200 0.200 0.200 scn
BT
-272.17692192000004 408.613 Td
+272.17692192000004 220.81299999999996 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -50784,7 +55360,7 @@ q
BT
49.24 14.388 Td
/F1.0 9 Tf
-<3332> Tj
+<3334> Tj
ET
0.000 0.000 0.000 SCN
@@ -50794,50 +55370,58 @@ Q
endstream
endobj
-343 0 obj
+363 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 342 0 R
+/Contents 362 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 676 0 R
+/XObject << /Stamp1 717 0 R
>>
>>
-/Annots [344 0 R 346 0 R 347 0 R]
+/Annots [364 0 R 365 0 R 367 0 R 368 0 R]
>>
endobj
-344 0 obj
+364 0 obj
+<< /Border [0 0 0]
+/Dest (_jsonobject)
+/Subtype /Link
+/Rect [272.17692192000004 631.147 325.32792192000005 645.427]
+/Type /Annot
+>>
+endobj
+365 0 obj
<< /Border [0 0 0]
/Dest (_loopelementmodel)
/Subtype /Link
-/Rect [280.76592192000004 706.267 378.47892192000006 720.547]
+/Rect [280.76592192000004 518.4670000000001 378.47892192000006 532.7470000000001]
/Type /Annot
>>
endobj
-345 0 obj
-[343 0 R /XYZ 0 645.5999999999999 null]
+366 0 obj
+[363 0 R /XYZ 0 457.8 null]
endobj
-346 0 obj
+367 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
-/Rect [272.17692192000004 518.227 325.32792192000005 532.507]
+/Rect [272.17692192000004 330.42699999999996 325.32792192000005 344.707]
/Type /Annot
>>
endobj
-347 0 obj
+368 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
-/Rect [272.17692192000004 480.667 325.32792192000005 494.947]
+/Rect [272.17692192000004 292.8669999999999 325.32792192000005 307.14699999999993]
/Type /Annot
>>
endobj
-348 0 obj
+369 0 obj
<< /Border [0 0 0]
/Dest (_overview)
/Subtype /Link
@@ -50845,7 +55429,7 @@ endobj
/Type /Annot
>>
endobj
-349 0 obj
+370 0 obj
<< /Border [0 0 0]
/Dest (_overview)
/Subtype /Link
@@ -50853,7 +55437,7 @@ endobj
/Type /Annot
>>
endobj
-350 0 obj
+371 0 obj
<< /Border [0 0 0]
/Dest (_version_information)
/Subtype /Link
@@ -50861,7 +55445,7 @@ endobj
/Type /Annot
>>
endobj
-351 0 obj
+372 0 obj
<< /Border [0 0 0]
/Dest (_version_information)
/Subtype /Link
@@ -50869,7 +55453,7 @@ endobj
/Type /Annot
>>
endobj
-352 0 obj
+373 0 obj
<< /Border [0 0 0]
/Dest (_uri_scheme)
/Subtype /Link
@@ -50877,7 +55461,7 @@ endobj
/Type /Annot
>>
endobj
-353 0 obj
+374 0 obj
<< /Border [0 0 0]
/Dest (_uri_scheme)
/Subtype /Link
@@ -50885,7 +55469,7 @@ endobj
/Type /Annot
>>
endobj
-354 0 obj
+375 0 obj
<< /Border [0 0 0]
/Dest (_paths)
/Subtype /Link
@@ -50893,7 +55477,7 @@ endobj
/Type /Annot
>>
endobj
-355 0 obj
+376 0 obj
<< /Border [0 0 0]
/Dest (_paths)
/Subtype /Link
@@ -50901,23 +55485,23 @@ endobj
/Type /Annot
>>
endobj
-356 0 obj
+377 0 obj
<< /Border [0 0 0]
-/Dest (_route107)
+/Dest (_verb189)
/Subtype /Link
/Rect [60.24000000000001 621.7799999999997 181.64100000000002 636.0599999999998]
/Type /Annot
>>
endobj
-357 0 obj
+378 0 obj
<< /Border [0 0 0]
-/Dest (_route107)
+/Dest (_verb189)
/Subtype /Link
/Rect [557.8905 621.7799999999997 563.76 636.0599999999998]
/Type /Annot
>>
endobj
-358 0 obj
+379 0 obj
<< /Border [0 0 0]
/Dest (_responses)
/Subtype /Link
@@ -50925,7 +55509,7 @@ endobj
/Type /Annot
>>
endobj
-359 0 obj
+380 0 obj
<< /Border [0 0 0]
/Dest (_responses)
/Subtype /Link
@@ -50933,7 +55517,7 @@ endobj
/Type /Annot
>>
endobj
-360 0 obj
+381 0 obj
<< /Border [0 0 0]
/Dest (_produces)
/Subtype /Link
@@ -50941,7 +55525,7 @@ endobj
/Type /Annot
>>
endobj
-361 0 obj
+382 0 obj
<< /Border [0 0 0]
/Dest (_produces)
/Subtype /Link
@@ -50949,23 +55533,23 @@ endobj
/Type /Annot
>>
endobj
-362 0 obj
+383 0 obj
<< /Border [0 0 0]
-/Dest (_route108)
+/Dest (_verb190)
/Subtype /Link
/Rect [60.24000000000001 566.3399999999997 183.8775 580.6199999999998]
/Type /Annot
>>
endobj
-363 0 obj
+384 0 obj
<< /Border [0 0 0]
-/Dest (_route108)
+/Dest (_verb190)
/Subtype /Link
/Rect [557.8905 566.3399999999997 563.76 580.6199999999998]
/Type /Annot
>>
endobj
-364 0 obj
+385 0 obj
<< /Border [0 0 0]
/Dest (_responses_2)
/Subtype /Link
@@ -50973,7 +55557,7 @@ endobj
/Type /Annot
>>
endobj
-365 0 obj
+386 0 obj
<< /Border [0 0 0]
/Dest (_responses_2)
/Subtype /Link
@@ -50981,7 +55565,7 @@ endobj
/Type /Annot
>>
endobj
-366 0 obj
+387 0 obj
<< /Border [0 0 0]
/Dest (_produces_2)
/Subtype /Link
@@ -50989,7 +55573,7 @@ endobj
/Type /Annot
>>
endobj
-367 0 obj
+388 0 obj
<< /Border [0 0 0]
/Dest (_produces_2)
/Subtype /Link
@@ -50997,23 +55581,23 @@ endobj
/Type /Annot
>>
endobj
-368 0 obj
+389 0 obj
<< /Border [0 0 0]
-/Dest (_route106)
+/Dest (_verb188)
/Subtype /Link
/Rect [60.24000000000001 510.89999999999975 212.98350000000002 525.1799999999997]
/Type /Annot
>>
endobj
-369 0 obj
+390 0 obj
<< /Border [0 0 0]
-/Dest (_route106)
+/Dest (_verb188)
/Subtype /Link
/Rect [557.8905 510.89999999999975 563.76 525.1799999999997]
/Type /Annot
>>
endobj
-370 0 obj
+391 0 obj
<< /Border [0 0 0]
/Dest (_responses_3)
/Subtype /Link
@@ -51021,7 +55605,7 @@ endobj
/Type /Annot
>>
endobj
-371 0 obj
+392 0 obj
<< /Border [0 0 0]
/Dest (_responses_3)
/Subtype /Link
@@ -51029,7 +55613,7 @@ endobj
/Type /Annot
>>
endobj
-372 0 obj
+393 0 obj
<< /Border [0 0 0]
/Dest (_produces_3)
/Subtype /Link
@@ -51037,7 +55621,7 @@ endobj
/Type /Annot
>>
endobj
-373 0 obj
+394 0 obj
<< /Border [0 0 0]
/Dest (_produces_3)
/Subtype /Link
@@ -51045,23 +55629,23 @@ endobj
/Type /Annot
>>
endobj
-374 0 obj
+395 0 obj
<< /Border [0 0 0]
-/Dest (_route91)
+/Dest (_verb173)
/Subtype /Link
/Rect [60.24000000000001 455.4599999999997 172.716 469.73999999999967]
/Type /Annot
>>
endobj
-375 0 obj
+396 0 obj
<< /Border [0 0 0]
-/Dest (_route91)
+/Dest (_verb173)
/Subtype /Link
/Rect [557.8905 455.4599999999997 563.76 469.73999999999967]
/Type /Annot
>>
endobj
-376 0 obj
+397 0 obj
<< /Border [0 0 0]
/Dest (_responses_4)
/Subtype /Link
@@ -51069,7 +55653,7 @@ endobj
/Type /Annot
>>
endobj
-377 0 obj
+398 0 obj
<< /Border [0 0 0]
/Dest (_responses_4)
/Subtype /Link
@@ -51077,7 +55661,7 @@ endobj
/Type /Annot
>>
endobj
-378 0 obj
+399 0 obj
<< /Border [0 0 0]
/Dest (_produces_4)
/Subtype /Link
@@ -51085,7 +55669,7 @@ endobj
/Type /Annot
>>
endobj
-379 0 obj
+400 0 obj
<< /Border [0 0 0]
/Dest (_produces_4)
/Subtype /Link
@@ -51093,23 +55677,23 @@ endobj
/Type /Annot
>>
endobj
-380 0 obj
+401 0 obj
<< /Border [0 0 0]
-/Dest (_route94)
+/Dest (_verb176)
/Subtype /Link
/Rect [60.24000000000001 400.01999999999964 172.548 414.2999999999996]
/Type /Annot
>>
endobj
-381 0 obj
+402 0 obj
<< /Border [0 0 0]
-/Dest (_route94)
+/Dest (_verb176)
/Subtype /Link
/Rect [557.8905 400.01999999999964 563.76 414.2999999999996]
/Type /Annot
>>
endobj
-382 0 obj
+403 0 obj
<< /Border [0 0 0]
/Dest (_parameters)
/Subtype /Link
@@ -51117,7 +55701,7 @@ endobj
/Type /Annot
>>
endobj
-383 0 obj
+404 0 obj
<< /Border [0 0 0]
/Dest (_parameters)
/Subtype /Link
@@ -51125,7 +55709,7 @@ endobj
/Type /Annot
>>
endobj
-384 0 obj
+405 0 obj
<< /Border [0 0 0]
/Dest (_responses_5)
/Subtype /Link
@@ -51133,7 +55717,7 @@ endobj
/Type /Annot
>>
endobj
-385 0 obj
+406 0 obj
<< /Border [0 0 0]
/Dest (_responses_5)
/Subtype /Link
@@ -51141,7 +55725,7 @@ endobj
/Type /Annot
>>
endobj
-386 0 obj
+407 0 obj
<< /Border [0 0 0]
/Dest (_consumes)
/Subtype /Link
@@ -51149,7 +55733,7 @@ endobj
/Type /Annot
>>
endobj
-387 0 obj
+408 0 obj
<< /Border [0 0 0]
/Dest (_consumes)
/Subtype /Link
@@ -51157,7 +55741,7 @@ endobj
/Type /Annot
>>
endobj
-388 0 obj
+409 0 obj
<< /Border [0 0 0]
/Dest (_produces_5)
/Subtype /Link
@@ -51165,7 +55749,7 @@ endobj
/Type /Annot
>>
endobj
-389 0 obj
+410 0 obj
<< /Border [0 0 0]
/Dest (_produces_5)
/Subtype /Link
@@ -51173,23 +55757,23 @@ endobj
/Type /Annot
>>
endobj
-390 0 obj
+411 0 obj
<< /Border [0 0 0]
-/Dest (_route92)
+/Dest (_verb174)
/Subtype /Link
/Rect [60.24000000000001 307.61999999999955 263.25750000000005 321.8999999999995]
/Type /Annot
>>
endobj
-391 0 obj
+412 0 obj
<< /Border [0 0 0]
-/Dest (_route92)
+/Dest (_verb174)
/Subtype /Link
/Rect [557.8905 307.61999999999955 563.76 321.8999999999995]
/Type /Annot
>>
endobj
-392 0 obj
+413 0 obj
<< /Border [0 0 0]
/Dest (_responses_6)
/Subtype /Link
@@ -51197,7 +55781,7 @@ endobj
/Type /Annot
>>
endobj
-393 0 obj
+414 0 obj
<< /Border [0 0 0]
/Dest (_responses_6)
/Subtype /Link
@@ -51205,7 +55789,7 @@ endobj
/Type /Annot
>>
endobj
-394 0 obj
+415 0 obj
<< /Border [0 0 0]
/Dest (_produces_6)
/Subtype /Link
@@ -51213,7 +55797,7 @@ endobj
/Type /Annot
>>
endobj
-395 0 obj
+416 0 obj
<< /Border [0 0 0]
/Dest (_produces_6)
/Subtype /Link
@@ -51221,23 +55805,23 @@ endobj
/Type /Annot
>>
endobj
-396 0 obj
+417 0 obj
<< /Border [0 0 0]
-/Dest (_route93)
+/Dest (_verb175)
/Subtype /Link
/Rect [60.24000000000001 252.17999999999947 265.76700000000005 266.45999999999947]
/Type /Annot
>>
endobj
-397 0 obj
+418 0 obj
<< /Border [0 0 0]
-/Dest (_route93)
+/Dest (_verb175)
/Subtype /Link
/Rect [557.8905 252.17999999999947 563.76 266.45999999999947]
/Type /Annot
>>
endobj
-398 0 obj
+419 0 obj
<< /Border [0 0 0]
/Dest (_parameters_2)
/Subtype /Link
@@ -51245,7 +55829,7 @@ endobj
/Type /Annot
>>
endobj
-399 0 obj
+420 0 obj
<< /Border [0 0 0]
/Dest (_parameters_2)
/Subtype /Link
@@ -51253,7 +55837,7 @@ endobj
/Type /Annot
>>
endobj
-400 0 obj
+421 0 obj
<< /Border [0 0 0]
/Dest (_responses_7)
/Subtype /Link
@@ -51261,7 +55845,7 @@ endobj
/Type /Annot
>>
endobj
-401 0 obj
+422 0 obj
<< /Border [0 0 0]
/Dest (_responses_7)
/Subtype /Link
@@ -51269,7 +55853,7 @@ endobj
/Type /Annot
>>
endobj
-402 0 obj
+423 0 obj
<< /Border [0 0 0]
/Dest (_produces_7)
/Subtype /Link
@@ -51277,7 +55861,7 @@ endobj
/Type /Annot
>>
endobj
-403 0 obj
+424 0 obj
<< /Border [0 0 0]
/Dest (_produces_7)
/Subtype /Link
@@ -51285,23 +55869,23 @@ endobj
/Type /Annot
>>
endobj
-404 0 obj
+425 0 obj
<< /Border [0 0 0]
-/Dest (_route95)
+/Dest (_verb177)
/Subtype /Link
/Rect [60.24000000000001 178.2599999999995 212.763 192.5399999999995]
/Type /Annot
>>
endobj
-405 0 obj
+426 0 obj
<< /Border [0 0 0]
-/Dest (_route95)
+/Dest (_verb177)
/Subtype /Link
/Rect [557.8905 178.2599999999995 563.76 192.5399999999995]
/Type /Annot
>>
endobj
-406 0 obj
+427 0 obj
<< /Border [0 0 0]
/Dest (_parameters_3)
/Subtype /Link
@@ -51309,7 +55893,7 @@ endobj
/Type /Annot
>>
endobj
-407 0 obj
+428 0 obj
<< /Border [0 0 0]
/Dest (_parameters_3)
/Subtype /Link
@@ -51317,7 +55901,7 @@ endobj
/Type /Annot
>>
endobj
-408 0 obj
+429 0 obj
<< /Border [0 0 0]
/Dest (_responses_8)
/Subtype /Link
@@ -51325,7 +55909,7 @@ endobj
/Type /Annot
>>
endobj
-409 0 obj
+430 0 obj
<< /Border [0 0 0]
/Dest (_responses_8)
/Subtype /Link
@@ -51333,7 +55917,7 @@ endobj
/Type /Annot
>>
endobj
-410 0 obj
+431 0 obj
<< /Border [0 0 0]
/Dest (_consumes_2)
/Subtype /Link
@@ -51341,7 +55925,7 @@ endobj
/Type /Annot
>>
endobj
-411 0 obj
+432 0 obj
<< /Border [0 0 0]
/Dest (_consumes_2)
/Subtype /Link
@@ -51349,7 +55933,7 @@ endobj
/Type /Annot
>>
endobj
-412 0 obj
+433 0 obj
<< /Border [0 0 0]
/Dest (_produces_8)
/Subtype /Link
@@ -51357,7 +55941,7 @@ endobj
/Type /Annot
>>
endobj
-413 0 obj
+434 0 obj
<< /Border [0 0 0]
/Dest (_produces_8)
/Subtype /Link
@@ -51365,23 +55949,23 @@ endobj
/Type /Annot
>>
endobj
-414 0 obj
+435 0 obj
<< /Border [0 0 0]
-/Dest (_route96)
+/Dest (_verb178)
/Subtype /Link
/Rect [60.24000000000001 85.85999999999956 232.70250000000001 100.13999999999956]
/Type /Annot
>>
endobj
-415 0 obj
+436 0 obj
<< /Border [0 0 0]
-/Dest (_route96)
+/Dest (_verb178)
/Subtype /Link
/Rect [557.8905 85.85999999999956 563.76 100.13999999999956]
/Type /Annot
>>
endobj
-416 0 obj
+437 0 obj
<< /Border [0 0 0]
/Dest (_parameters_4)
/Subtype /Link
@@ -51389,7 +55973,7 @@ endobj
/Type /Annot
>>
endobj
-417 0 obj
+438 0 obj
<< /Border [0 0 0]
/Dest (_parameters_4)
/Subtype /Link
@@ -51397,7 +55981,7 @@ endobj
/Type /Annot
>>
endobj
-418 0 obj
+439 0 obj
<< /Border [0 0 0]
/Dest (_responses_9)
/Subtype /Link
@@ -51405,7 +55989,7 @@ endobj
/Type /Annot
>>
endobj
-419 0 obj
+440 0 obj
<< /Border [0 0 0]
/Dest (_responses_9)
/Subtype /Link
@@ -51413,7 +55997,7 @@ endobj
/Type /Annot
>>
endobj
-420 0 obj
+441 0 obj
<< /Border [0 0 0]
/Dest (_produces_9)
/Subtype /Link
@@ -51421,7 +56005,7 @@ endobj
/Type /Annot
>>
endobj
-421 0 obj
+442 0 obj
<< /Border [0 0 0]
/Dest (_produces_9)
/Subtype /Link
@@ -51429,23 +56013,23 @@ endobj
/Type /Annot
>>
endobj
-422 0 obj
+443 0 obj
<< /Border [0 0 0]
-/Dest (_route97)
+/Dest (_verb179)
/Subtype /Link
/Rect [60.24000000000001 723.2399999999999 354.36600000000004 737.52]
/Type /Annot
>>
endobj
-423 0 obj
+444 0 obj
<< /Border [0 0 0]
-/Dest (_route97)
+/Dest (_verb179)
/Subtype /Link
/Rect [557.8905 723.2399999999999 563.76 737.52]
/Type /Annot
>>
endobj
-424 0 obj
+445 0 obj
<< /Border [0 0 0]
/Dest (_parameters_5)
/Subtype /Link
@@ -51453,7 +56037,7 @@ endobj
/Type /Annot
>>
endobj
-425 0 obj
+446 0 obj
<< /Border [0 0 0]
/Dest (_parameters_5)
/Subtype /Link
@@ -51461,7 +56045,7 @@ endobj
/Type /Annot
>>
endobj
-426 0 obj
+447 0 obj
<< /Border [0 0 0]
/Dest (_responses_10)
/Subtype /Link
@@ -51469,7 +56053,7 @@ endobj
/Type /Annot
>>
endobj
-427 0 obj
+448 0 obj
<< /Border [0 0 0]
/Dest (_responses_10)
/Subtype /Link
@@ -51477,7 +56061,7 @@ endobj
/Type /Annot
>>
endobj
-428 0 obj
+449 0 obj
<< /Border [0 0 0]
/Dest (_produces_10)
/Subtype /Link
@@ -51485,7 +56069,7 @@ endobj
/Type /Annot
>>
endobj
-429 0 obj
+450 0 obj
<< /Border [0 0 0]
/Dest (_produces_10)
/Subtype /Link
@@ -51493,23 +56077,23 @@ endobj
/Type /Annot
>>
endobj
-430 0 obj
+451 0 obj
<< /Border [0 0 0]
-/Dest (_route88)
+/Dest (_verb167)
/Subtype /Link
/Rect [60.24000000000001 649.3199999999998 531.1851796875001 663.5999999999999]
/Type /Annot
>>
endobj
-431 0 obj
+452 0 obj
<< /Border [0 0 0]
-/Dest (_route88)
+/Dest (_verb167)
/Subtype /Link
/Rect [557.8905 649.3199999999998 563.76 663.5999999999999]
/Type /Annot
>>
endobj
-432 0 obj
+453 0 obj
<< /Border [0 0 0]
/Dest (_parameters_6)
/Subtype /Link
@@ -51517,7 +56101,7 @@ endobj
/Type /Annot
>>
endobj
-433 0 obj
+454 0 obj
<< /Border [0 0 0]
/Dest (_parameters_6)
/Subtype /Link
@@ -51525,7 +56109,7 @@ endobj
/Type /Annot
>>
endobj
-434 0 obj
+455 0 obj
<< /Border [0 0 0]
/Dest (_responses_11)
/Subtype /Link
@@ -51533,7 +56117,7 @@ endobj
/Type /Annot
>>
endobj
-435 0 obj
+456 0 obj
<< /Border [0 0 0]
/Dest (_responses_11)
/Subtype /Link
@@ -51541,7 +56125,7 @@ endobj
/Type /Annot
>>
endobj
-436 0 obj
+457 0 obj
<< /Border [0 0 0]
/Dest (_produces_11)
/Subtype /Link
@@ -51549,7 +56133,7 @@ endobj
/Type /Annot
>>
endobj
-437 0 obj
+458 0 obj
<< /Border [0 0 0]
/Dest (_produces_11)
/Subtype /Link
@@ -51557,23 +56141,23 @@ endobj
/Type /Annot
>>
endobj
-438 0 obj
+459 0 obj
<< /Border [0 0 0]
-/Dest (_route90)
+/Dest (_verb169)
/Subtype /Link
/Rect [60.24000000000001 575.3999999999997 418.877794921875 589.6799999999998]
/Type /Annot
>>
endobj
-439 0 obj
+460 0 obj
<< /Border [0 0 0]
-/Dest (_route90)
+/Dest (_verb169)
/Subtype /Link
/Rect [557.8905 575.3999999999997 563.76 589.6799999999998]
/Type /Annot
>>
endobj
-440 0 obj
+461 0 obj
<< /Border [0 0 0]
/Dest (_parameters_7)
/Subtype /Link
@@ -51581,7 +56165,7 @@ endobj
/Type /Annot
>>
endobj
-441 0 obj
+462 0 obj
<< /Border [0 0 0]
/Dest (_parameters_7)
/Subtype /Link
@@ -51589,7 +56173,7 @@ endobj
/Type /Annot
>>
endobj
-442 0 obj
+463 0 obj
<< /Border [0 0 0]
/Dest (_responses_12)
/Subtype /Link
@@ -51597,7 +56181,7 @@ endobj
/Type /Annot
>>
endobj
-443 0 obj
+464 0 obj
<< /Border [0 0 0]
/Dest (_responses_12)
/Subtype /Link
@@ -51605,7 +56189,7 @@ endobj
/Type /Annot
>>
endobj
-444 0 obj
+465 0 obj
<< /Border [0 0 0]
/Dest (_consumes_3)
/Subtype /Link
@@ -51613,7 +56197,7 @@ endobj
/Type /Annot
>>
endobj
-445 0 obj
+466 0 obj
<< /Border [0 0 0]
/Dest (_consumes_3)
/Subtype /Link
@@ -51621,7 +56205,7 @@ endobj
/Type /Annot
>>
endobj
-446 0 obj
+467 0 obj
<< /Border [0 0 0]
/Dest (_produces_12)
/Subtype /Link
@@ -51629,7 +56213,7 @@ endobj
/Type /Annot
>>
endobj
-447 0 obj
+468 0 obj
<< /Border [0 0 0]
/Dest (_produces_12)
/Subtype /Link
@@ -51637,23 +56221,23 @@ endobj
/Type /Annot
>>
endobj
-448 0 obj
+469 0 obj
<< /Border [0 0 0]
-/Dest (_route86)
+/Dest (_verb165)
/Subtype /Link
/Rect [60.24000000000001 482.9999999999998 245.15550000000002 497.27999999999975]
/Type /Annot
>>
endobj
-449 0 obj
+470 0 obj
<< /Border [0 0 0]
-/Dest (_route86)
+/Dest (_verb165)
/Subtype /Link
/Rect [557.8905 482.9999999999998 563.76 497.27999999999975]
/Type /Annot
>>
endobj
-450 0 obj
+471 0 obj
<< /Border [0 0 0]
/Dest (_parameters_8)
/Subtype /Link
@@ -51661,7 +56245,7 @@ endobj
/Type /Annot
>>
endobj
-451 0 obj
+472 0 obj
<< /Border [0 0 0]
/Dest (_parameters_8)
/Subtype /Link
@@ -51669,7 +56253,7 @@ endobj
/Type /Annot
>>
endobj
-452 0 obj
+473 0 obj
<< /Border [0 0 0]
/Dest (_responses_13)
/Subtype /Link
@@ -51677,7 +56261,7 @@ endobj
/Type /Annot
>>
endobj
-453 0 obj
+474 0 obj
<< /Border [0 0 0]
/Dest (_responses_13)
/Subtype /Link
@@ -51685,23 +56269,23 @@ endobj
/Type /Annot
>>
endobj
-454 0 obj
+475 0 obj
<< /Border [0 0 0]
-/Dest (_route79)
+/Dest (_verb158)
/Subtype /Link
/Rect [60.24000000000001 427.5599999999997 248.431294921875 441.8399999999997]
/Type /Annot
>>
endobj
-455 0 obj
+476 0 obj
<< /Border [0 0 0]
-/Dest (_route79)
+/Dest (_verb158)
/Subtype /Link
/Rect [557.8905 427.5599999999997 563.76 441.8399999999997]
/Type /Annot
>>
endobj
-456 0 obj
+477 0 obj
<< /Border [0 0 0]
/Dest (_parameters_9)
/Subtype /Link
@@ -51709,7 +56293,7 @@ endobj
/Type /Annot
>>
endobj
-457 0 obj
+478 0 obj
<< /Border [0 0 0]
/Dest (_parameters_9)
/Subtype /Link
@@ -51717,7 +56301,7 @@ endobj
/Type /Annot
>>
endobj
-458 0 obj
+479 0 obj
<< /Border [0 0 0]
/Dest (_responses_14)
/Subtype /Link
@@ -51725,7 +56309,7 @@ endobj
/Type /Annot
>>
endobj
-459 0 obj
+480 0 obj
<< /Border [0 0 0]
/Dest (_responses_14)
/Subtype /Link
@@ -51733,7 +56317,7 @@ endobj
/Type /Annot
>>
endobj
-460 0 obj
+481 0 obj
<< /Border [0 0 0]
/Dest (_produces_13)
/Subtype /Link
@@ -51741,7 +56325,7 @@ endobj
/Type /Annot
>>
endobj
-461 0 obj
+482 0 obj
<< /Border [0 0 0]
/Dest (_produces_13)
/Subtype /Link
@@ -51749,23 +56333,23 @@ endobj
/Type /Annot
>>
endobj
-462 0 obj
+483 0 obj
<< /Border [0 0 0]
-/Dest (_route74)
+/Dest (_verb153)
/Subtype /Link
/Rect [60.24000000000001 353.63999999999965 214.8735 367.9199999999996]
/Type /Annot
>>
endobj
-463 0 obj
+484 0 obj
<< /Border [0 0 0]
-/Dest (_route74)
+/Dest (_verb153)
/Subtype /Link
/Rect [557.8905 353.63999999999965 563.76 367.9199999999996]
/Type /Annot
>>
endobj
-464 0 obj
+485 0 obj
<< /Border [0 0 0]
/Dest (_responses_15)
/Subtype /Link
@@ -51773,7 +56357,7 @@ endobj
/Type /Annot
>>
endobj
-465 0 obj
+486 0 obj
<< /Border [0 0 0]
/Dest (_responses_15)
/Subtype /Link
@@ -51781,7 +56365,7 @@ endobj
/Type /Annot
>>
endobj
-466 0 obj
+487 0 obj
<< /Border [0 0 0]
/Dest (_produces_14)
/Subtype /Link
@@ -51789,7 +56373,7 @@ endobj
/Type /Annot
>>
endobj
-467 0 obj
+488 0 obj
<< /Border [0 0 0]
/Dest (_produces_14)
/Subtype /Link
@@ -51797,23 +56381,23 @@ endobj
/Type /Annot
>>
endobj
-468 0 obj
+489 0 obj
<< /Border [0 0 0]
-/Dest (_route87)
+/Dest (_verb166)
/Subtype /Link
/Rect [60.24000000000001 298.1999999999996 259.467 312.47999999999956]
/Type /Annot
>>
endobj
-469 0 obj
+490 0 obj
<< /Border [0 0 0]
-/Dest (_route87)
+/Dest (_verb166)
/Subtype /Link
/Rect [557.8905 298.1999999999996 563.76 312.47999999999956]
/Type /Annot
>>
endobj
-470 0 obj
+491 0 obj
<< /Border [0 0 0]
/Dest (_parameters_10)
/Subtype /Link
@@ -51821,7 +56405,7 @@ endobj
/Type /Annot
>>
endobj
-471 0 obj
+492 0 obj
<< /Border [0 0 0]
/Dest (_parameters_10)
/Subtype /Link
@@ -51829,7 +56413,7 @@ endobj
/Type /Annot
>>
endobj
-472 0 obj
+493 0 obj
<< /Border [0 0 0]
/Dest (_responses_16)
/Subtype /Link
@@ -51837,7 +56421,7 @@ endobj
/Type /Annot
>>
endobj
-473 0 obj
+494 0 obj
<< /Border [0 0 0]
/Dest (_responses_16)
/Subtype /Link
@@ -51845,7 +56429,7 @@ endobj
/Type /Annot
>>
endobj
-474 0 obj
+495 0 obj
<< /Border [0 0 0]
/Dest (_produces_15)
/Subtype /Link
@@ -51853,7 +56437,7 @@ endobj
/Type /Annot
>>
endobj
-475 0 obj
+496 0 obj
<< /Border [0 0 0]
/Dest (_produces_15)
/Subtype /Link
@@ -51861,23 +56445,23 @@ endobj
/Type /Annot
>>
endobj
-476 0 obj
+497 0 obj
<< /Border [0 0 0]
-/Dest (_route80)
+/Dest (_verb159)
/Subtype /Link
/Rect [60.24000000000001 224.27999999999952 544.9515000000001 238.55999999999952]
/Type /Annot
>>
endobj
-477 0 obj
+498 0 obj
<< /Border [0 0 0]
-/Dest (_route80)
+/Dest (_verb159)
/Subtype /Link
/Rect [557.8905 224.27999999999952 563.76 238.55999999999952]
/Type /Annot
>>
endobj
-478 0 obj
+499 0 obj
<< /Border [0 0 0]
/Dest (_parameters_11)
/Subtype /Link
@@ -51885,7 +56469,7 @@ endobj
/Type /Annot
>>
endobj
-479 0 obj
+500 0 obj
<< /Border [0 0 0]
/Dest (_parameters_11)
/Subtype /Link
@@ -51893,7 +56477,7 @@ endobj
/Type /Annot
>>
endobj
-480 0 obj
+501 0 obj
<< /Border [0 0 0]
/Dest (_responses_17)
/Subtype /Link
@@ -51901,7 +56485,7 @@ endobj
/Type /Annot
>>
endobj
-481 0 obj
+502 0 obj
<< /Border [0 0 0]
/Dest (_responses_17)
/Subtype /Link
@@ -51909,7 +56493,7 @@ endobj
/Type /Annot
>>
endobj
-482 0 obj
+503 0 obj
<< /Border [0 0 0]
/Dest (_produces_16)
/Subtype /Link
@@ -51917,7 +56501,7 @@ endobj
/Type /Annot
>>
endobj
-483 0 obj
+504 0 obj
<< /Border [0 0 0]
/Dest (_produces_16)
/Subtype /Link
@@ -51925,23 +56509,23 @@ endobj
/Type /Annot
>>
endobj
-484 0 obj
+505 0 obj
<< /Border [0 0 0]
-/Dest (_route81)
+/Dest (_verb160)
/Subtype /Link
/Rect [60.24000000000001 150.35999999999956 530.5030898437501 164.63999999999956]
/Type /Annot
>>
endobj
-485 0 obj
+506 0 obj
<< /Border [0 0 0]
-/Dest (_route81)
+/Dest (_verb160)
/Subtype /Link
/Rect [557.8905 150.35999999999956 563.76 164.63999999999956]
/Type /Annot
>>
endobj
-486 0 obj
+507 0 obj
<< /Border [0 0 0]
/Dest (_parameters_12)
/Subtype /Link
@@ -51949,7 +56533,7 @@ endobj
/Type /Annot
>>
endobj
-487 0 obj
+508 0 obj
<< /Border [0 0 0]
/Dest (_parameters_12)
/Subtype /Link
@@ -51957,7 +56541,7 @@ endobj
/Type /Annot
>>
endobj
-488 0 obj
+509 0 obj
<< /Border [0 0 0]
/Dest (_responses_18)
/Subtype /Link
@@ -51965,7 +56549,7 @@ endobj
/Type /Annot
>>
endobj
-489 0 obj
+510 0 obj
<< /Border [0 0 0]
/Dest (_responses_18)
/Subtype /Link
@@ -51973,7 +56557,7 @@ endobj
/Type /Annot
>>
endobj
-490 0 obj
+511 0 obj
<< /Border [0 0 0]
/Dest (_produces_17)
/Subtype /Link
@@ -51981,7 +56565,7 @@ endobj
/Type /Annot
>>
endobj
-491 0 obj
+512 0 obj
<< /Border [0 0 0]
/Dest (_produces_17)
/Subtype /Link
@@ -51989,39 +56573,39 @@ endobj
/Type /Annot
>>
endobj
-492 0 obj
+513 0 obj
<< /Border [0 0 0]
-/Dest (_route89)
+/Dest (_verb168)
/Subtype /Link
/Rect [60.24000000000001 76.4399999999996 106.10400000000001 90.7199999999996]
/Type /Annot
>>
endobj
-493 0 obj
+514 0 obj
<< /Border [0 0 0]
-/Dest (_route89)
+/Dest (_verb168)
/Subtype /Link
/Rect [60.24000000000001 57.959999999999596 553.6761796875 72.2399999999996]
/Type /Annot
>>
endobj
-494 0 obj
+515 0 obj
<< /Border [0 0 0]
-/Dest (_route89)
+/Dest (_verb168)
/Subtype /Link
/Rect [60.24 741.7199999999999 80.26350000000001 756.0]
/Type /Annot
>>
endobj
-495 0 obj
+516 0 obj
<< /Border [0 0 0]
-/Dest (_route89)
+/Dest (_verb168)
/Subtype /Link
/Rect [552.021 76.4399999999996 563.76 90.7199999999996]
/Type /Annot
>>
endobj
-496 0 obj
+517 0 obj
<< /Border [0 0 0]
/Dest (_parameters_13)
/Subtype /Link
@@ -52029,7 +56613,7 @@ endobj
/Type /Annot
>>
endobj
-497 0 obj
+518 0 obj
<< /Border [0 0 0]
/Dest (_parameters_13)
/Subtype /Link
@@ -52037,7 +56621,7 @@ endobj
/Type /Annot
>>
endobj
-498 0 obj
+519 0 obj
<< /Border [0 0 0]
/Dest (_responses_19)
/Subtype /Link
@@ -52045,7 +56629,7 @@ endobj
/Type /Annot
>>
endobj
-499 0 obj
+520 0 obj
<< /Border [0 0 0]
/Dest (_responses_19)
/Subtype /Link
@@ -52053,7 +56637,7 @@ endobj
/Type /Annot
>>
endobj
-500 0 obj
+521 0 obj
<< /Border [0 0 0]
/Dest (_produces_18)
/Subtype /Link
@@ -52061,7 +56645,7 @@ endobj
/Type /Annot
>>
endobj
-501 0 obj
+522 0 obj
<< /Border [0 0 0]
/Dest (_produces_18)
/Subtype /Link
@@ -52069,23 +56653,23 @@ endobj
/Type /Annot
>>
endobj
-502 0 obj
+523 0 obj
<< /Border [0 0 0]
-/Dest (_route84)
+/Dest (_verb163)
/Subtype /Link
/Rect [60.24000000000001 667.7999999999998 248.45250000000001 682.0799999999999]
/Type /Annot
>>
endobj
-503 0 obj
+524 0 obj
<< /Border [0 0 0]
-/Dest (_route84)
+/Dest (_verb163)
/Subtype /Link
/Rect [552.021 667.7999999999998 563.76 682.0799999999999]
/Type /Annot
>>
endobj
-504 0 obj
+525 0 obj
<< /Border [0 0 0]
/Dest (_parameters_14)
/Subtype /Link
@@ -52093,7 +56677,7 @@ endobj
/Type /Annot
>>
endobj
-505 0 obj
+526 0 obj
<< /Border [0 0 0]
/Dest (_parameters_14)
/Subtype /Link
@@ -52101,7 +56685,7 @@ endobj
/Type /Annot
>>
endobj
-506 0 obj
+527 0 obj
<< /Border [0 0 0]
/Dest (_responses_20)
/Subtype /Link
@@ -52109,7 +56693,7 @@ endobj
/Type /Annot
>>
endobj
-507 0 obj
+528 0 obj
<< /Border [0 0 0]
/Dest (_responses_20)
/Subtype /Link
@@ -52117,7 +56701,7 @@ endobj
/Type /Annot
>>
endobj
-508 0 obj
+529 0 obj
<< /Border [0 0 0]
/Dest (_produces_19)
/Subtype /Link
@@ -52125,7 +56709,7 @@ endobj
/Type /Annot
>>
endobj
-509 0 obj
+530 0 obj
<< /Border [0 0 0]
/Dest (_produces_19)
/Subtype /Link
@@ -52133,23 +56717,23 @@ endobj
/Type /Annot
>>
endobj
-510 0 obj
+531 0 obj
<< /Border [0 0 0]
-/Dest (_route83)
+/Dest (_verb162)
/Subtype /Link
/Rect [60.24000000000001 593.8799999999998 235.842 608.1599999999999]
/Type /Annot
>>
endobj
-511 0 obj
+532 0 obj
<< /Border [0 0 0]
-/Dest (_route83)
+/Dest (_verb162)
/Subtype /Link
/Rect [552.021 593.8799999999998 563.76 608.1599999999999]
/Type /Annot
>>
endobj
-512 0 obj
+533 0 obj
<< /Border [0 0 0]
/Dest (_parameters_15)
/Subtype /Link
@@ -52157,7 +56741,7 @@ endobj
/Type /Annot
>>
endobj
-513 0 obj
+534 0 obj
<< /Border [0 0 0]
/Dest (_parameters_15)
/Subtype /Link
@@ -52165,7 +56749,7 @@ endobj
/Type /Annot
>>
endobj
-514 0 obj
+535 0 obj
<< /Border [0 0 0]
/Dest (_responses_21)
/Subtype /Link
@@ -52173,7 +56757,7 @@ endobj
/Type /Annot
>>
endobj
-515 0 obj
+536 0 obj
<< /Border [0 0 0]
/Dest (_responses_21)
/Subtype /Link
@@ -52181,7 +56765,7 @@ endobj
/Type /Annot
>>
endobj
-516 0 obj
+537 0 obj
<< /Border [0 0 0]
/Dest (_produces_20)
/Subtype /Link
@@ -52189,7 +56773,7 @@ endobj
/Type /Annot
>>
endobj
-517 0 obj
+538 0 obj
<< /Border [0 0 0]
/Dest (_produces_20)
/Subtype /Link
@@ -52197,23 +56781,23 @@ endobj
/Type /Annot
>>
endobj
-518 0 obj
+539 0 obj
<< /Border [0 0 0]
-/Dest (_route85)
+/Dest (_verb164)
/Subtype /Link
/Rect [60.24000000000001 519.9599999999998 249.70200000000003 534.2399999999998]
/Type /Annot
>>
endobj
-519 0 obj
+540 0 obj
<< /Border [0 0 0]
-/Dest (_route85)
+/Dest (_verb164)
/Subtype /Link
/Rect [552.021 519.9599999999998 563.76 534.2399999999998]
/Type /Annot
>>
endobj
-520 0 obj
+541 0 obj
<< /Border [0 0 0]
/Dest (_parameters_16)
/Subtype /Link
@@ -52221,7 +56805,7 @@ endobj
/Type /Annot
>>
endobj
-521 0 obj
+542 0 obj
<< /Border [0 0 0]
/Dest (_parameters_16)
/Subtype /Link
@@ -52229,7 +56813,7 @@ endobj
/Type /Annot
>>
endobj
-522 0 obj
+543 0 obj
<< /Border [0 0 0]
/Dest (_responses_22)
/Subtype /Link
@@ -52237,7 +56821,7 @@ endobj
/Type /Annot
>>
endobj
-523 0 obj
+544 0 obj
<< /Border [0 0 0]
/Dest (_responses_22)
/Subtype /Link
@@ -52245,7 +56829,7 @@ endobj
/Type /Annot
>>
endobj
-524 0 obj
+545 0 obj
<< /Border [0 0 0]
/Dest (_produces_21)
/Subtype /Link
@@ -52253,7 +56837,7 @@ endobj
/Type /Annot
>>
endobj
-525 0 obj
+546 0 obj
<< /Border [0 0 0]
/Dest (_produces_21)
/Subtype /Link
@@ -52261,23 +56845,23 @@ endobj
/Type /Annot
>>
endobj
-526 0 obj
+547 0 obj
<< /Border [0 0 0]
-/Dest (_route82)
+/Dest (_verb161)
/Subtype /Link
/Rect [60.24000000000001 446.03999999999974 261.860794921875 460.3199999999997]
/Type /Annot
>>
endobj
-527 0 obj
+548 0 obj
<< /Border [0 0 0]
-/Dest (_route82)
+/Dest (_verb161)
/Subtype /Link
/Rect [552.021 446.03999999999974 563.76 460.3199999999997]
/Type /Annot
>>
endobj
-528 0 obj
+549 0 obj
<< /Border [0 0 0]
/Dest (_parameters_17)
/Subtype /Link
@@ -52285,7 +56869,7 @@ endobj
/Type /Annot
>>
endobj
-529 0 obj
+550 0 obj
<< /Border [0 0 0]
/Dest (_parameters_17)
/Subtype /Link
@@ -52293,7 +56877,7 @@ endobj
/Type /Annot
>>
endobj
-530 0 obj
+551 0 obj
<< /Border [0 0 0]
/Dest (_responses_23)
/Subtype /Link
@@ -52301,7 +56885,7 @@ endobj
/Type /Annot
>>
endobj
-531 0 obj
+552 0 obj
<< /Border [0 0 0]
/Dest (_responses_23)
/Subtype /Link
@@ -52309,7 +56893,7 @@ endobj
/Type /Annot
>>
endobj
-532 0 obj
+553 0 obj
<< /Border [0 0 0]
/Dest (_produces_22)
/Subtype /Link
@@ -52317,7 +56901,7 @@ endobj
/Type /Annot
>>
endobj
-533 0 obj
+554 0 obj
<< /Border [0 0 0]
/Dest (_produces_22)
/Subtype /Link
@@ -52325,23 +56909,23 @@ endobj
/Type /Annot
>>
endobj
-534 0 obj
+555 0 obj
<< /Border [0 0 0]
-/Dest (_route76)
+/Dest (_verb155)
/Subtype /Link
/Rect [60.24000000000001 372.11999999999966 339.560794921875 386.39999999999964]
/Type /Annot
>>
endobj
-535 0 obj
+556 0 obj
<< /Border [0 0 0]
-/Dest (_route76)
+/Dest (_verb155)
/Subtype /Link
/Rect [552.021 372.11999999999966 563.76 386.39999999999964]
/Type /Annot
>>
endobj
-536 0 obj
+557 0 obj
<< /Border [0 0 0]
/Dest (_parameters_18)
/Subtype /Link
@@ -52349,7 +56933,7 @@ endobj
/Type /Annot
>>
endobj
-537 0 obj
+558 0 obj
<< /Border [0 0 0]
/Dest (_parameters_18)
/Subtype /Link
@@ -52357,7 +56941,7 @@ endobj
/Type /Annot
>>
endobj
-538 0 obj
+559 0 obj
<< /Border [0 0 0]
/Dest (_responses_24)
/Subtype /Link
@@ -52365,7 +56949,7 @@ endobj
/Type /Annot
>>
endobj
-539 0 obj
+560 0 obj
<< /Border [0 0 0]
/Dest (_responses_24)
/Subtype /Link
@@ -52373,7 +56957,7 @@ endobj
/Type /Annot
>>
endobj
-540 0 obj
+561 0 obj
<< /Border [0 0 0]
/Dest (_consumes_4)
/Subtype /Link
@@ -52381,7 +56965,7 @@ endobj
/Type /Annot
>>
endobj
-541 0 obj
+562 0 obj
<< /Border [0 0 0]
/Dest (_consumes_4)
/Subtype /Link
@@ -52389,7 +56973,7 @@ endobj
/Type /Annot
>>
endobj
-542 0 obj
+563 0 obj
<< /Border [0 0 0]
/Dest (_produces_23)
/Subtype /Link
@@ -52397,7 +56981,7 @@ endobj
/Type /Annot
>>
endobj
-543 0 obj
+564 0 obj
<< /Border [0 0 0]
/Dest (_produces_23)
/Subtype /Link
@@ -52405,23 +56989,23 @@ endobj
/Type /Annot
>>
endobj
-544 0 obj
+565 0 obj
<< /Border [0 0 0]
-/Dest (_route78)
+/Dest (_verb157)
/Subtype /Link
/Rect [60.24000000000001 279.7199999999996 350.38629492187505 293.99999999999955]
/Type /Annot
>>
endobj
-545 0 obj
+566 0 obj
<< /Border [0 0 0]
-/Dest (_route78)
+/Dest (_verb157)
/Subtype /Link
/Rect [552.021 279.7199999999996 563.76 293.99999999999955]
/Type /Annot
>>
endobj
-546 0 obj
+567 0 obj
<< /Border [0 0 0]
/Dest (_parameters_19)
/Subtype /Link
@@ -52429,7 +57013,7 @@ endobj
/Type /Annot
>>
endobj
-547 0 obj
+568 0 obj
<< /Border [0 0 0]
/Dest (_parameters_19)
/Subtype /Link
@@ -52437,7 +57021,7 @@ endobj
/Type /Annot
>>
endobj
-548 0 obj
+569 0 obj
<< /Border [0 0 0]
/Dest (_responses_25)
/Subtype /Link
@@ -52445,7 +57029,7 @@ endobj
/Type /Annot
>>
endobj
-549 0 obj
+570 0 obj
<< /Border [0 0 0]
/Dest (_responses_25)
/Subtype /Link
@@ -52453,7 +57037,7 @@ endobj
/Type /Annot
>>
endobj
-550 0 obj
+571 0 obj
<< /Border [0 0 0]
/Dest (_consumes_5)
/Subtype /Link
@@ -52461,7 +57045,7 @@ endobj
/Type /Annot
>>
endobj
-551 0 obj
+572 0 obj
<< /Border [0 0 0]
/Dest (_consumes_5)
/Subtype /Link
@@ -52469,7 +57053,7 @@ endobj
/Type /Annot
>>
endobj
-552 0 obj
+573 0 obj
<< /Border [0 0 0]
/Dest (_produces_24)
/Subtype /Link
@@ -52477,7 +57061,7 @@ endobj
/Type /Annot
>>
endobj
-553 0 obj
+574 0 obj
<< /Border [0 0 0]
/Dest (_produces_24)
/Subtype /Link
@@ -52485,23 +57069,23 @@ endobj
/Type /Annot
>>
endobj
-554 0 obj
+575 0 obj
<< /Border [0 0 0]
-/Dest (_route77)
+/Dest (_verb156)
/Subtype /Link
/Rect [60.24000000000001 187.31999999999954 352.81158984375 201.59999999999954]
/Type /Annot
>>
endobj
-555 0 obj
+576 0 obj
<< /Border [0 0 0]
-/Dest (_route77)
+/Dest (_verb156)
/Subtype /Link
/Rect [552.021 187.31999999999954 563.76 201.59999999999954]
/Type /Annot
>>
endobj
-556 0 obj
+577 0 obj
<< /Border [0 0 0]
/Dest (_parameters_20)
/Subtype /Link
@@ -52509,7 +57093,7 @@ endobj
/Type /Annot
>>
endobj
-557 0 obj
+578 0 obj
<< /Border [0 0 0]
/Dest (_parameters_20)
/Subtype /Link
@@ -52517,7 +57101,7 @@ endobj
/Type /Annot
>>
endobj
-558 0 obj
+579 0 obj
<< /Border [0 0 0]
/Dest (_responses_26)
/Subtype /Link
@@ -52525,7 +57109,7 @@ endobj
/Type /Annot
>>
endobj
-559 0 obj
+580 0 obj
<< /Border [0 0 0]
/Dest (_responses_26)
/Subtype /Link
@@ -52533,7 +57117,7 @@ endobj
/Type /Annot
>>
endobj
-560 0 obj
+581 0 obj
<< /Border [0 0 0]
/Dest (_consumes_6)
/Subtype /Link
@@ -52541,7 +57125,7 @@ endobj
/Type /Annot
>>
endobj
-561 0 obj
+582 0 obj
<< /Border [0 0 0]
/Dest (_consumes_6)
/Subtype /Link
@@ -52549,7 +57133,7 @@ endobj
/Type /Annot
>>
endobj
-562 0 obj
+583 0 obj
<< /Border [0 0 0]
/Dest (_produces_25)
/Subtype /Link
@@ -52557,7 +57141,7 @@ endobj
/Type /Annot
>>
endobj
-563 0 obj
+584 0 obj
<< /Border [0 0 0]
/Dest (_produces_25)
/Subtype /Link
@@ -52565,23 +57149,23 @@ endobj
/Type /Annot
>>
endobj
-564 0 obj
+585 0 obj
<< /Border [0 0 0]
-/Dest (_route75)
+/Dest (_verb154)
/Subtype /Link
/Rect [60.24000000000001 94.91999999999959 212.0595 109.19999999999959]
/Type /Annot
>>
endobj
-565 0 obj
+586 0 obj
<< /Border [0 0 0]
-/Dest (_route75)
+/Dest (_verb154)
/Subtype /Link
/Rect [552.021 94.91999999999959 563.76 109.19999999999959]
/Type /Annot
>>
endobj
-566 0 obj
+587 0 obj
<< /Border [0 0 0]
/Dest (_parameters_21)
/Subtype /Link
@@ -52589,7 +57173,7 @@ endobj
/Type /Annot
>>
endobj
-567 0 obj
+588 0 obj
<< /Border [0 0 0]
/Dest (_parameters_21)
/Subtype /Link
@@ -52597,7 +57181,7 @@ endobj
/Type /Annot
>>
endobj
-568 0 obj
+589 0 obj
<< /Border [0 0 0]
/Dest (_responses_27)
/Subtype /Link
@@ -52605,7 +57189,7 @@ endobj
/Type /Annot
>>
endobj
-569 0 obj
+590 0 obj
<< /Border [0 0 0]
/Dest (_responses_27)
/Subtype /Link
@@ -52613,7 +57197,7 @@ endobj
/Type /Annot
>>
endobj
-570 0 obj
+591 0 obj
<< /Border [0 0 0]
/Dest (_produces_26)
/Subtype /Link
@@ -52621,7 +57205,7 @@ endobj
/Type /Annot
>>
endobj
-571 0 obj
+592 0 obj
<< /Border [0 0 0]
/Dest (_produces_26)
/Subtype /Link
@@ -52629,279 +57213,279 @@ endobj
/Type /Annot
>>
endobj
-572 0 obj
+593 0 obj
<< /Border [0 0 0]
-/Dest (_route101)
+/Dest (_verb183)
/Subtype /Link
-/Rect [60.24000000000001 723.2399999999999 226.68805078125 737.52]
+/Rect [60.24000000000001 723.2399999999999 164.9565 737.52]
/Type /Annot
>>
endobj
-573 0 obj
+594 0 obj
<< /Border [0 0 0]
-/Dest (_route101)
+/Dest (_verb183)
/Subtype /Link
/Rect [552.021 723.2399999999999 563.76 737.52]
/Type /Annot
>>
endobj
-574 0 obj
+595 0 obj
<< /Border [0 0 0]
-/Dest (_parameters_22)
+/Dest (_responses_28)
/Subtype /Link
-/Rect [72.24000000000001 704.7599999999999 163.71579492187502 719.04]
+/Rect [72.24000000000001 704.7599999999999 157.899 719.04]
/Type /Annot
>>
endobj
-575 0 obj
+596 0 obj
<< /Border [0 0 0]
-/Dest (_parameters_22)
+/Dest (_responses_28)
/Subtype /Link
/Rect [552.021 704.7599999999999 563.76 719.04]
/Type /Annot
>>
endobj
-576 0 obj
+597 0 obj
<< /Border [0 0 0]
-/Dest (_responses_28)
+/Dest (_produces_27)
/Subtype /Link
-/Rect [72.24000000000001 686.2799999999999 157.899 700.56]
+/Rect [72.24000000000001 686.2799999999999 152.27100000000002 700.56]
/Type /Annot
>>
endobj
-577 0 obj
+598 0 obj
<< /Border [0 0 0]
-/Dest (_responses_28)
+/Dest (_produces_27)
/Subtype /Link
/Rect [552.021 686.2799999999999 563.76 700.56]
/Type /Annot
>>
endobj
-578 0 obj
+599 0 obj
<< /Border [0 0 0]
-/Dest (_consumes_7)
+/Dest (_verb186)
/Subtype /Link
-/Rect [72.24000000000001 667.7999999999998 157.2375 682.0799999999999]
+/Rect [60.24000000000001 667.7999999999998 247.83279492187503 682.0799999999999]
/Type /Annot
>>
endobj
-579 0 obj
+600 0 obj
<< /Border [0 0 0]
-/Dest (_consumes_7)
+/Dest (_verb186)
/Subtype /Link
/Rect [552.021 667.7999999999998 563.76 682.0799999999999]
/Type /Annot
>>
endobj
-580 0 obj
+601 0 obj
<< /Border [0 0 0]
-/Dest (_produces_27)
+/Dest (_parameters_22)
/Subtype /Link
-/Rect [72.24000000000001 649.3199999999998 152.27100000000002 663.5999999999999]
+/Rect [72.24000000000001 649.3199999999998 163.71579492187502 663.5999999999999]
/Type /Annot
>>
endobj
-581 0 obj
+602 0 obj
<< /Border [0 0 0]
-/Dest (_produces_27)
+/Dest (_parameters_22)
/Subtype /Link
/Rect [552.021 649.3199999999998 563.76 663.5999999999999]
/Type /Annot
>>
endobj
-582 0 obj
+603 0 obj
<< /Border [0 0 0]
-/Dest (_route98)
+/Dest (_responses_29)
/Subtype /Link
-/Rect [60.24000000000001 630.8399999999998 221.091755859375 645.1199999999999]
+/Rect [72.24000000000001 630.8399999999998 157.899 645.1199999999999]
/Type /Annot
>>
endobj
-583 0 obj
+604 0 obj
<< /Border [0 0 0]
-/Dest (_route98)
+/Dest (_responses_29)
/Subtype /Link
/Rect [552.021 630.8399999999998 563.76 645.1199999999999]
/Type /Annot
>>
endobj
-584 0 obj
+605 0 obj
<< /Border [0 0 0]
-/Dest (_responses_29)
+/Dest (_consumes_7)
/Subtype /Link
-/Rect [72.24000000000001 612.3599999999998 157.899 626.6399999999999]
+/Rect [72.24000000000001 612.3599999999998 157.2375 626.6399999999999]
/Type /Annot
>>
endobj
-585 0 obj
+606 0 obj
<< /Border [0 0 0]
-/Dest (_responses_29)
+/Dest (_consumes_7)
/Subtype /Link
/Rect [552.021 612.3599999999998 563.76 626.6399999999999]
/Type /Annot
>>
endobj
-586 0 obj
+607 0 obj
<< /Border [0 0 0]
-/Dest (_produces_28)
+/Dest (_verb187)
/Subtype /Link
-/Rect [72.24000000000001 593.8799999999998 152.27100000000002 608.1599999999999]
+/Rect [60.24000000000001 593.8799999999998 225.43629492187503 608.1599999999999]
/Type /Annot
>>
endobj
-587 0 obj
+608 0 obj
<< /Border [0 0 0]
-/Dest (_produces_28)
+/Dest (_verb187)
/Subtype /Link
/Rect [552.021 593.8799999999998 563.76 608.1599999999999]
/Type /Annot
>>
endobj
-588 0 obj
+609 0 obj
<< /Border [0 0 0]
-/Dest (_route100)
+/Dest (_parameters_23)
/Subtype /Link
-/Rect [60.24000000000001 575.3999999999997 458.24414062500006 589.6799999999998]
+/Rect [72.24000000000001 575.3999999999997 163.71579492187502 589.6799999999998]
/Type /Annot
>>
endobj
-589 0 obj
+610 0 obj
<< /Border [0 0 0]
-/Dest (_route100)
+/Dest (_parameters_23)
/Subtype /Link
/Rect [552.021 575.3999999999997 563.76 589.6799999999998]
/Type /Annot
>>
endobj
-590 0 obj
+611 0 obj
<< /Border [0 0 0]
-/Dest (_parameters_23)
+/Dest (_responses_30)
/Subtype /Link
-/Rect [72.24000000000001 556.9199999999998 163.71579492187502 571.1999999999998]
+/Rect [72.24000000000001 556.9199999999998 157.899 571.1999999999998]
/Type /Annot
>>
endobj
-591 0 obj
+612 0 obj
<< /Border [0 0 0]
-/Dest (_parameters_23)
+/Dest (_responses_30)
/Subtype /Link
/Rect [552.021 556.9199999999998 563.76 571.1999999999998]
/Type /Annot
>>
endobj
-592 0 obj
+613 0 obj
<< /Border [0 0 0]
-/Dest (_responses_30)
+/Dest (_consumes_8)
/Subtype /Link
-/Rect [72.24000000000001 538.4399999999998 157.899 552.7199999999998]
+/Rect [72.24000000000001 538.4399999999998 157.2375 552.7199999999998]
/Type /Annot
>>
endobj
-593 0 obj
+614 0 obj
<< /Border [0 0 0]
-/Dest (_responses_30)
+/Dest (_consumes_8)
/Subtype /Link
/Rect [552.021 538.4399999999998 563.76 552.7199999999998]
/Type /Annot
>>
endobj
-594 0 obj
+615 0 obj
<< /Border [0 0 0]
-/Dest (_produces_29)
+/Dest (_verb184)
/Subtype /Link
-/Rect [72.24000000000001 519.9599999999998 152.27100000000002 534.2399999999998]
+/Rect [60.24000000000001 519.9599999999998 531.4575644531251 534.2399999999998]
/Type /Annot
>>
endobj
-595 0 obj
+616 0 obj
<< /Border [0 0 0]
-/Dest (_produces_29)
+/Dest (_verb184)
/Subtype /Link
/Rect [552.021 519.9599999999998 563.76 534.2399999999998]
/Type /Annot
>>
endobj
-596 0 obj
+617 0 obj
<< /Border [0 0 0]
-/Dest (_route99)
+/Dest (_parameters_24)
/Subtype /Link
-/Rect [60.24000000000001 501.4799999999998 430.23014062500005 515.7599999999998]
+/Rect [72.24000000000001 501.4799999999998 163.71579492187502 515.7599999999998]
/Type /Annot
>>
endobj
-597 0 obj
+618 0 obj
<< /Border [0 0 0]
-/Dest (_route99)
+/Dest (_parameters_24)
/Subtype /Link
/Rect [552.021 501.4799999999998 563.76 515.7599999999998]
/Type /Annot
>>
endobj
-598 0 obj
+619 0 obj
<< /Border [0 0 0]
-/Dest (_parameters_24)
+/Dest (_responses_31)
/Subtype /Link
-/Rect [72.24000000000001 482.9999999999998 163.71579492187502 497.27999999999975]
+/Rect [72.24000000000001 482.9999999999998 157.899 497.27999999999975]
/Type /Annot
>>
endobj
-599 0 obj
+620 0 obj
<< /Border [0 0 0]
-/Dest (_parameters_24)
+/Dest (_responses_31)
/Subtype /Link
/Rect [552.021 482.9999999999998 563.76 497.27999999999975]
/Type /Annot
>>
endobj
-600 0 obj
+621 0 obj
<< /Border [0 0 0]
-/Dest (_responses_31)
+/Dest (_consumes_9)
/Subtype /Link
-/Rect [72.24000000000001 464.51999999999975 157.899 478.7999999999997]
+/Rect [72.24000000000001 464.51999999999975 157.2375 478.7999999999997]
/Type /Annot
>>
endobj
-601 0 obj
+622 0 obj
<< /Border [0 0 0]
-/Dest (_responses_31)
+/Dest (_consumes_9)
/Subtype /Link
/Rect [552.021 464.51999999999975 563.76 478.7999999999997]
/Type /Annot
>>
endobj
-602 0 obj
+623 0 obj
<< /Border [0 0 0]
-/Dest (_produces_30)
+/Dest (_produces_28)
/Subtype /Link
/Rect [72.24000000000001 446.03999999999974 152.27100000000002 460.3199999999997]
/Type /Annot
>>
endobj
-603 0 obj
+624 0 obj
<< /Border [0 0 0]
-/Dest (_produces_30)
+/Dest (_produces_28)
/Subtype /Link
/Rect [552.021 446.03999999999974 563.76 460.3199999999997]
/Type /Annot
>>
endobj
-604 0 obj
+625 0 obj
<< /Border [0 0 0]
-/Dest (_route102)
+/Dest (_verb185)
/Subtype /Link
-/Rect [60.24000000000001 427.5599999999997 430.06214062500004 441.8399999999997]
+/Rect [60.24000000000001 427.5599999999997 545.63276953125 441.8399999999997]
/Type /Annot
>>
endobj
-605 0 obj
+626 0 obj
<< /Border [0 0 0]
-/Dest (_route102)
+/Dest (_verb185)
/Subtype /Link
/Rect [552.021 427.5599999999997 563.76 441.8399999999997]
/Type /Annot
>>
endobj
-606 0 obj
+627 0 obj
<< /Border [0 0 0]
/Dest (_parameters_25)
/Subtype /Link
@@ -52909,7 +57493,7 @@ endobj
/Type /Annot
>>
endobj
-607 0 obj
+628 0 obj
<< /Border [0 0 0]
/Dest (_parameters_25)
/Subtype /Link
@@ -52917,7 +57501,7 @@ endobj
/Type /Annot
>>
endobj
-608 0 obj
+629 0 obj
<< /Border [0 0 0]
/Dest (_responses_32)
/Subtype /Link
@@ -52925,7 +57509,7 @@ endobj
/Type /Annot
>>
endobj
-609 0 obj
+630 0 obj
<< /Border [0 0 0]
/Dest (_responses_32)
/Subtype /Link
@@ -52933,535 +57517,695 @@ endobj
/Type /Annot
>>
endobj
-610 0 obj
+631 0 obj
<< /Border [0 0 0]
-/Dest (_consumes_8)
+/Dest (_verb180)
/Subtype /Link
-/Rect [72.24000000000001 372.11999999999966 157.2375 386.39999999999964]
+/Rect [60.24000000000001 372.11999999999966 221.091755859375 386.39999999999964]
/Type /Annot
>>
endobj
-611 0 obj
+632 0 obj
<< /Border [0 0 0]
-/Dest (_consumes_8)
+/Dest (_verb180)
/Subtype /Link
/Rect [552.021 372.11999999999966 563.76 386.39999999999964]
/Type /Annot
>>
endobj
-612 0 obj
+633 0 obj
<< /Border [0 0 0]
-/Dest (_produces_31)
+/Dest (_responses_33)
/Subtype /Link
-/Rect [72.24000000000001 353.63999999999965 152.27100000000002 367.9199999999996]
+/Rect [72.24000000000001 353.63999999999965 157.899 367.9199999999996]
/Type /Annot
>>
endobj
-613 0 obj
+634 0 obj
<< /Border [0 0 0]
-/Dest (_produces_31)
+/Dest (_responses_33)
/Subtype /Link
/Rect [552.021 353.63999999999965 563.76 367.9199999999996]
/Type /Annot
>>
endobj
-614 0 obj
+635 0 obj
<< /Border [0 0 0]
-/Dest (_route103)
+/Dest (_produces_29)
/Subtype /Link
-/Rect [60.24000000000001 335.1599999999996 175.8555 349.4399999999996]
+/Rect [72.24000000000001 335.1599999999996 152.27100000000002 349.4399999999996]
/Type /Annot
>>
endobj
-615 0 obj
+636 0 obj
<< /Border [0 0 0]
-/Dest (_route103)
+/Dest (_produces_29)
/Subtype /Link
/Rect [552.021 335.1599999999996 563.76 349.4399999999996]
/Type /Annot
>>
endobj
-616 0 obj
+637 0 obj
<< /Border [0 0 0]
-/Dest (_responses_33)
+/Dest (_verb182)
/Subtype /Link
-/Rect [72.24000000000001 316.6799999999996 157.899 330.9599999999996]
+/Rect [60.24000000000001 316.6799999999996 458.24414062500006 330.9599999999996]
/Type /Annot
>>
endobj
-617 0 obj
+638 0 obj
<< /Border [0 0 0]
-/Dest (_responses_33)
+/Dest (_verb182)
/Subtype /Link
/Rect [552.021 316.6799999999996 563.76 330.9599999999996]
/Type /Annot
>>
endobj
-618 0 obj
+639 0 obj
<< /Border [0 0 0]
-/Dest (_produces_32)
+/Dest (_parameters_26)
/Subtype /Link
-/Rect [72.24000000000001 298.1999999999996 152.27100000000002 312.47999999999956]
+/Rect [72.24000000000001 298.1999999999996 163.71579492187502 312.47999999999956]
/Type /Annot
>>
endobj
-619 0 obj
+640 0 obj
<< /Border [0 0 0]
-/Dest (_produces_32)
+/Dest (_parameters_26)
/Subtype /Link
/Rect [552.021 298.1999999999996 563.76 312.47999999999956]
/Type /Annot
>>
endobj
-620 0 obj
+641 0 obj
<< /Border [0 0 0]
-/Dest (_route105)
+/Dest (_responses_34)
/Subtype /Link
-/Rect [60.24000000000001 279.7199999999996 211.818 293.99999999999955]
+/Rect [72.24000000000001 279.7199999999996 157.899 293.99999999999955]
/Type /Annot
>>
endobj
-621 0 obj
+642 0 obj
<< /Border [0 0 0]
-/Dest (_route105)
+/Dest (_responses_34)
/Subtype /Link
/Rect [552.021 279.7199999999996 563.76 293.99999999999955]
/Type /Annot
>>
endobj
-622 0 obj
+643 0 obj
<< /Border [0 0 0]
-/Dest (_responses_34)
+/Dest (_produces_30)
/Subtype /Link
-/Rect [72.24000000000001 261.23999999999955 157.899 275.5199999999995]
+/Rect [72.24000000000001 261.23999999999955 152.27100000000002 275.5199999999995]
/Type /Annot
>>
endobj
-623 0 obj
+644 0 obj
<< /Border [0 0 0]
-/Dest (_responses_34)
+/Dest (_produces_30)
/Subtype /Link
/Rect [552.021 261.23999999999955 563.76 275.5199999999995]
/Type /Annot
>>
endobj
-624 0 obj
+645 0 obj
<< /Border [0 0 0]
-/Dest (_produces_33)
+/Dest (_verb181)
/Subtype /Link
-/Rect [72.24000000000001 242.7599999999995 152.27100000000002 257.0399999999995]
+/Rect [60.24000000000001 242.7599999999995 430.23014062500005 257.0399999999995]
/Type /Annot
>>
endobj
-625 0 obj
+646 0 obj
<< /Border [0 0 0]
-/Dest (_produces_33)
+/Dest (_verb181)
/Subtype /Link
/Rect [552.021 242.7599999999995 563.76 257.0399999999995]
/Type /Annot
>>
endobj
-626 0 obj
+647 0 obj
<< /Border [0 0 0]
-/Dest (_route104)
+/Dest (_parameters_27)
/Subtype /Link
-/Rect [60.24000000000001 224.27999999999952 261.44100000000003 238.55999999999952]
+/Rect [72.24000000000001 224.27999999999952 163.71579492187502 238.55999999999952]
/Type /Annot
>>
endobj
-627 0 obj
+648 0 obj
<< /Border [0 0 0]
-/Dest (_route104)
+/Dest (_parameters_27)
/Subtype /Link
/Rect [552.021 224.27999999999952 563.76 238.55999999999952]
/Type /Annot
>>
endobj
-628 0 obj
+649 0 obj
<< /Border [0 0 0]
-/Dest (_parameters_26)
+/Dest (_responses_35)
/Subtype /Link
-/Rect [72.24000000000001 205.79999999999953 163.71579492187502 220.07999999999953]
+/Rect [72.24000000000001 205.79999999999953 157.899 220.07999999999953]
/Type /Annot
>>
endobj
-629 0 obj
+650 0 obj
<< /Border [0 0 0]
-/Dest (_parameters_26)
+/Dest (_responses_35)
/Subtype /Link
/Rect [552.021 205.79999999999953 563.76 220.07999999999953]
/Type /Annot
>>
endobj
-630 0 obj
+651 0 obj
<< /Border [0 0 0]
-/Dest (_responses_35)
+/Dest (_produces_31)
/Subtype /Link
-/Rect [72.24000000000001 187.31999999999954 157.899 201.59999999999954]
+/Rect [72.24000000000001 187.31999999999954 152.27100000000002 201.59999999999954]
/Type /Annot
>>
endobj
-631 0 obj
+652 0 obj
<< /Border [0 0 0]
-/Dest (_responses_35)
+/Dest (_produces_31)
/Subtype /Link
/Rect [552.021 187.31999999999954 563.76 201.59999999999954]
/Type /Annot
>>
endobj
-632 0 obj
+653 0 obj
+<< /Border [0 0 0]
+/Dest (_verb170)
+/Subtype /Link
+/Rect [60.24000000000001 168.83999999999955 175.8555 183.11999999999955]
+/Type /Annot
+>>
+endobj
+654 0 obj
+<< /Border [0 0 0]
+/Dest (_verb170)
+/Subtype /Link
+/Rect [552.021 168.83999999999955 563.76 183.11999999999955]
+/Type /Annot
+>>
+endobj
+655 0 obj
+<< /Border [0 0 0]
+/Dest (_responses_36)
+/Subtype /Link
+/Rect [72.24000000000001 150.35999999999956 157.899 164.63999999999956]
+/Type /Annot
+>>
+endobj
+656 0 obj
+<< /Border [0 0 0]
+/Dest (_responses_36)
+/Subtype /Link
+/Rect [552.021 150.35999999999956 563.76 164.63999999999956]
+/Type /Annot
+>>
+endobj
+657 0 obj
+<< /Border [0 0 0]
+/Dest (_produces_32)
+/Subtype /Link
+/Rect [72.24000000000001 131.87999999999957 152.27100000000002 146.15999999999957]
+/Type /Annot
+>>
+endobj
+658 0 obj
+<< /Border [0 0 0]
+/Dest (_produces_32)
+/Subtype /Link
+/Rect [552.021 131.87999999999957 563.76 146.15999999999957]
+/Type /Annot
+>>
+endobj
+659 0 obj
+<< /Border [0 0 0]
+/Dest (_verb172)
+/Subtype /Link
+/Rect [60.24000000000001 113.39999999999958 211.818 127.67999999999958]
+/Type /Annot
+>>
+endobj
+660 0 obj
+<< /Border [0 0 0]
+/Dest (_verb172)
+/Subtype /Link
+/Rect [552.021 113.39999999999958 563.76 127.67999999999958]
+/Type /Annot
+>>
+endobj
+661 0 obj
+<< /Border [0 0 0]
+/Dest (_responses_37)
+/Subtype /Link
+/Rect [72.24000000000001 94.91999999999959 157.899 109.19999999999959]
+/Type /Annot
+>>
+endobj
+662 0 obj
+<< /Border [0 0 0]
+/Dest (_responses_37)
+/Subtype /Link
+/Rect [552.021 94.91999999999959 563.76 109.19999999999959]
+/Type /Annot
+>>
+endobj
+663 0 obj
+<< /Border [0 0 0]
+/Dest (_produces_33)
+/Subtype /Link
+/Rect [72.24000000000001 76.4399999999996 152.27100000000002 90.7199999999996]
+/Type /Annot
+>>
+endobj
+664 0 obj
+<< /Border [0 0 0]
+/Dest (_produces_33)
+/Subtype /Link
+/Rect [552.021 76.4399999999996 563.76 90.7199999999996]
+/Type /Annot
+>>
+endobj
+665 0 obj
+<< /Border [0 0 0]
+/Dest (_verb171)
+/Subtype /Link
+/Rect [60.24000000000001 57.95999999999961 261.44100000000003 72.23999999999961]
+/Type /Annot
+>>
+endobj
+666 0 obj
+<< /Border [0 0 0]
+/Dest (_verb171)
+/Subtype /Link
+/Rect [552.021 57.95999999999961 563.76 72.23999999999961]
+/Type /Annot
+>>
+endobj
+667 0 obj
+<< /Border [0 0 0]
+/Dest (_parameters_28)
+/Subtype /Link
+/Rect [72.24000000000001 741.7199999999999 163.71579492187502 756.0]
+/Type /Annot
+>>
+endobj
+668 0 obj
+<< /Border [0 0 0]
+/Dest (_parameters_28)
+/Subtype /Link
+/Rect [552.021 741.7199999999999 563.76 756.0]
+/Type /Annot
+>>
+endobj
+669 0 obj
+<< /Border [0 0 0]
+/Dest (_responses_38)
+/Subtype /Link
+/Rect [72.24000000000001 723.2399999999999 157.899 737.52]
+/Type /Annot
+>>
+endobj
+670 0 obj
+<< /Border [0 0 0]
+/Dest (_responses_38)
+/Subtype /Link
+/Rect [552.021 723.2399999999999 563.76 737.52]
+/Type /Annot
+>>
+endobj
+671 0 obj
<< /Border [0 0 0]
/Dest (_produces_34)
/Subtype /Link
-/Rect [72.24000000000001 168.83999999999955 152.27100000000002 183.11999999999955]
+/Rect [72.24000000000001 704.7599999999999 152.27100000000002 719.04]
/Type /Annot
>>
endobj
-633 0 obj
+672 0 obj
<< /Border [0 0 0]
/Dest (_produces_34)
/Subtype /Link
-/Rect [552.021 168.83999999999955 563.76 183.11999999999955]
+/Rect [552.021 704.7599999999999 563.76 719.04]
/Type /Annot
>>
endobj
-634 0 obj
+673 0 obj
<< /Border [0 0 0]
/Dest (_definitions)
/Subtype /Link
-/Rect [48.24000000000001 150.35999999999956 114.66300000000001 164.63999999999956]
+/Rect [48.24000000000001 686.2799999999999 114.66300000000001 700.56]
/Type /Annot
>>
endobj
-635 0 obj
+674 0 obj
<< /Border [0 0 0]
/Dest (_definitions)
/Subtype /Link
-/Rect [552.021 150.35999999999956 563.76 164.63999999999956]
+/Rect [552.021 686.2799999999999 563.76 700.56]
/Type /Annot
>>
endobj
-636 0 obj
+675 0 obj
<< /Border [0 0 0]
/Dest (_clampinformation)
/Subtype /Link
-/Rect [60.24000000000001 131.87999999999957 173.08350000000002 146.15999999999957]
+/Rect [60.24000000000001 667.7999999999998 173.08350000000002 682.0799999999999]
/Type /Annot
>>
endobj
-637 0 obj
+676 0 obj
<< /Border [0 0 0]
/Dest (_clampinformation)
/Subtype /Link
-/Rect [552.021 131.87999999999957 563.76 146.15999999999957]
+/Rect [552.021 667.7999999999998 563.76 682.0799999999999]
/Type /Annot
>>
endobj
-638 0 obj
+677 0 obj
<< /Border [0 0 0]
/Dest (_cldshealthcheck)
/Subtype /Link
-/Rect [60.24000000000001 113.39999999999958 164.26350000000002 127.67999999999958]
+/Rect [60.24000000000001 649.3199999999998 164.26350000000002 663.5999999999999]
/Type /Annot
>>
endobj
-639 0 obj
+678 0 obj
<< /Border [0 0 0]
/Dest (_cldshealthcheck)
/Subtype /Link
-/Rect [552.021 113.39999999999958 563.76 127.67999999999958]
+/Rect [552.021 649.3199999999998 563.76 663.5999999999999]
/Type /Annot
>>
endobj
-640 0 obj
+679 0 obj
<< /Border [0 0 0]
/Dest (_dictionary)
/Subtype /Link
-/Rect [60.24000000000001 94.91999999999959 132.7425 109.19999999999959]
+/Rect [60.24000000000001 630.8399999999998 132.7425 645.1199999999999]
/Type /Annot
>>
endobj
-641 0 obj
+680 0 obj
<< /Border [0 0 0]
/Dest (_dictionary)
/Subtype /Link
-/Rect [552.021 94.91999999999959 563.76 109.19999999999959]
+/Rect [552.021 630.8399999999998 563.76 645.1199999999999]
/Type /Annot
>>
endobj
-642 0 obj
+681 0 obj
<< /Border [0 0 0]
/Dest (_dictionaryelement)
/Subtype /Link
-/Rect [60.24000000000001 76.4399999999996 174.1545 90.7199999999996]
+/Rect [60.24000000000001 612.3599999999998 174.1545 626.6399999999999]
/Type /Annot
>>
endobj
-643 0 obj
+682 0 obj
<< /Border [0 0 0]
/Dest (_dictionaryelement)
/Subtype /Link
-/Rect [552.021 76.4399999999996 563.76 90.7199999999996]
+/Rect [552.021 612.3599999999998 563.76 626.6399999999999]
/Type /Annot
>>
endobj
-644 0 obj
+683 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponent)
/Subtype /Link
-/Rect [60.24000000000001 57.95999999999961 180.507 72.23999999999961]
+/Rect [60.24000000000001 593.8799999999998 180.507 608.1599999999999]
/Type /Annot
>>
endobj
-645 0 obj
+684 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponent)
/Subtype /Link
-/Rect [552.021 57.95999999999961 563.76 72.23999999999961]
+/Rect [552.021 593.8799999999998 563.76 608.1599999999999]
/Type /Annot
>>
endobj
-646 0 obj
+685 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponentstate)
/Subtype /Link
-/Rect [60.24 741.7199999999999 205.11900000000003 756.0]
+/Rect [60.24000000000001 575.3999999999997 205.11900000000003 589.6799999999998]
/Type /Annot
>>
endobj
-647 0 obj
+686 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponentstate)
/Subtype /Link
-/Rect [552.021 741.7199999999999 563.76 756.0]
+/Rect [552.021 575.3999999999997 563.76 589.6799999999998]
/Type /Annot
>>
endobj
-648 0 obj
+687 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
-/Rect [60.24000000000001 723.2399999999999 129.94908984375002 737.52]
+/Rect [60.24000000000001 556.9199999999998 129.94908984375002 571.1999999999998]
/Type /Annot
>>
endobj
-649 0 obj
+688 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
-/Rect [552.021 723.2399999999999 563.76 737.52]
+/Rect [552.021 556.9199999999998 563.76 571.1999999999998]
/Type /Annot
>>
endobj
-650 0 obj
+689 0 obj
+<< /Border [0 0 0]
+/Dest (_jsonelement)
+/Subtype /Link
+/Rect [60.24000000000001 538.4399999999998 142.66500000000002 552.7199999999998]
+/Type /Annot
+>>
+endobj
+690 0 obj
+<< /Border [0 0 0]
+/Dest (_jsonelement)
+/Subtype /Link
+/Rect [552.021 538.4399999999998 563.76 552.7199999999998]
+/Type /Annot
+>>
+endobj
+691 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
-/Rect [60.24000000000001 704.7599999999999 122.43150000000001 719.04]
+/Rect [60.24000000000001 519.9599999999998 122.43150000000001 534.2399999999998]
/Type /Annot
>>
endobj
-651 0 obj
+692 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
-/Rect [552.021 704.7599999999999 563.76 719.04]
+/Rect [552.021 519.9599999999998 563.76 534.2399999999998]
/Type /Annot
>>
endobj
-652 0 obj
+693 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
-/Rect [60.24000000000001 686.2799999999999 133.09950000000003 700.56]
+/Rect [60.24000000000001 501.4799999999998 138.969 515.7599999999998]
/Type /Annot
>>
endobj
-653 0 obj
+694 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
-/Rect [552.021 686.2799999999999 563.76 700.56]
+/Rect [552.021 501.4799999999998 563.76 515.7599999999998]
/Type /Annot
>>
endobj
-654 0 obj
+695 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
-/Rect [60.24000000000001 667.7999999999998 153.76350000000002 682.0799999999999]
+/Rect [60.24000000000001 482.9999999999998 153.76350000000002 497.27999999999975]
/Type /Annot
>>
endobj
-655 0 obj
+696 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
-/Rect [552.021 667.7999999999998 563.76 682.0799999999999]
+/Rect [552.021 482.9999999999998 563.76 497.27999999999975]
/Type /Annot
>>
endobj
-656 0 obj
+697 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
-/Rect [60.24000000000001 649.3199999999998 110.91300000000001 663.5999999999999]
+/Rect [60.24000000000001 464.51999999999975 110.91300000000001 478.7999999999997]
/Type /Annot
>>
endobj
-657 0 obj
+698 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
-/Rect [552.021 649.3199999999998 563.76 663.5999999999999]
+/Rect [552.021 464.51999999999975 563.76 478.7999999999997]
/Type /Annot
>>
endobj
-658 0 obj
+699 0 obj
<< /Border [0 0 0]
/Dest (_loopelementmodel)
/Subtype /Link
-/Rect [60.24000000000001 630.8399999999998 183.531 645.1199999999999]
+/Rect [60.24000000000001 446.03999999999974 183.531 460.3199999999997]
/Type /Annot
>>
endobj
-659 0 obj
+700 0 obj
<< /Border [0 0 0]
/Dest (_loopelementmodel)
/Subtype /Link
-/Rect [552.021 630.8399999999998 563.76 645.1199999999999]
+/Rect [552.021 446.03999999999974 563.76 460.3199999999997]
/Type /Annot
>>
endobj
-660 0 obj
+701 0 obj
<< /Border [0 0 0]
/Dest (_looplog)
/Subtype /Link
-/Rect [60.24000000000001 612.3599999999998 129.16200000000003 626.6399999999999]
+/Rect [60.24000000000001 427.5599999999997 129.16200000000003 441.8399999999997]
/Type /Annot
>>
endobj
-661 0 obj
+702 0 obj
<< /Border [0 0 0]
/Dest (_looplog)
/Subtype /Link
-/Rect [552.021 612.3599999999998 563.76 626.6399999999999]
+/Rect [552.021 427.5599999999997 563.76 441.8399999999997]
/Type /Annot
>>
endobj
-662 0 obj
+703 0 obj
<< /Border [0 0 0]
/Dest (_looptemplate)
/Subtype /Link
-/Rect [60.24000000000001 593.8799999999998 157.46175585937502 608.1599999999999]
+/Rect [60.24000000000001 409.0799999999997 157.46175585937502 423.3599999999997]
/Type /Annot
>>
endobj
-663 0 obj
+704 0 obj
<< /Border [0 0 0]
/Dest (_looptemplate)
/Subtype /Link
-/Rect [552.021 593.8799999999998 563.76 608.1599999999999]
+/Rect [552.021 409.0799999999997 563.76 423.3599999999997]
/Type /Annot
>>
endobj
-664 0 obj
+705 0 obj
<< /Border [0 0 0]
/Dest (_looptemplateloopelementmodel)
/Subtype /Link
-/Rect [60.24000000000001 575.3999999999997 255.174755859375 589.6799999999998]
+/Rect [60.24000000000001 390.5999999999997 255.174755859375 404.87999999999965]
/Type /Annot
>>
endobj
-665 0 obj
+706 0 obj
<< /Border [0 0 0]
/Dest (_looptemplateloopelementmodel)
/Subtype /Link
-/Rect [552.021 575.3999999999997 563.76 589.6799999999998]
+/Rect [552.021 390.5999999999997 563.76 404.87999999999965]
/Type /Annot
>>
endobj
-666 0 obj
+707 0 obj
<< /Border [0 0 0]
/Dest (_microservicepolicy)
/Subtype /Link
-/Rect [60.24000000000001 556.9199999999998 181.74600000000004 571.1999999999998]
+/Rect [60.24000000000001 372.11999999999966 181.74600000000004 386.39999999999964]
/Type /Annot
>>
endobj
-667 0 obj
+708 0 obj
<< /Border [0 0 0]
/Dest (_microservicepolicy)
/Subtype /Link
-/Rect [552.021 556.9199999999998 563.76 571.1999999999998]
+/Rect [552.021 372.11999999999966 563.76 386.39999999999964]
/Type /Annot
>>
endobj
-668 0 obj
+709 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
-/Rect [60.24000000000001 538.4399999999998 127.39800000000001 552.7199999999998]
+/Rect [60.24000000000001 353.63999999999965 127.39800000000001 367.9199999999996]
/Type /Annot
>>
endobj
-669 0 obj
+710 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
-/Rect [552.021 538.4399999999998 563.76 552.7199999999998]
+/Rect [552.021 353.63999999999965 563.76 367.9199999999996]
/Type /Annot
>>
endobj
-670 0 obj
+711 0 obj
<< /Border [0 0 0]
/Dest (_operationalpolicy)
/Subtype /Link
-/Rect [60.24000000000001 519.9599999999998 175.42479492187502 534.2399999999998]
+/Rect [60.24000000000001 335.1599999999996 175.42479492187502 349.4399999999996]
/Type /Annot
>>
endobj
-671 0 obj
+712 0 obj
<< /Border [0 0 0]
/Dest (_operationalpolicy)
/Subtype /Link
-/Rect [552.021 519.9599999999998 563.76 534.2399999999998]
+/Rect [552.021 335.1599999999996 563.76 349.4399999999996]
/Type /Annot
>>
endobj
-672 0 obj
+713 0 obj
<< /Border [0 0 0]
/Dest (_policymodel)
/Subtype /Link
-/Rect [60.24000000000001 501.4799999999998 147.11700000000002 515.7599999999998]
+/Rect [60.24000000000001 316.6799999999996 147.11700000000002 330.9599999999996]
/Type /Annot
>>
endobj
-673 0 obj
+714 0 obj
<< /Border [0 0 0]
/Dest (_policymodel)
/Subtype /Link
-/Rect [552.021 501.4799999999998 563.76 515.7599999999998]
+/Rect [552.021 316.6799999999996 563.76 330.9599999999996]
/Type /Annot
>>
endobj
-674 0 obj
+715 0 obj
<< /Border [0 0 0]
/Dest (_service)
/Subtype /Link
-/Rect [60.24000000000001 482.9999999999998 122.29500000000002 497.27999999999975]
+/Rect [60.24000000000001 298.1999999999996 122.29500000000002 312.47999999999956]
/Type /Annot
>>
endobj
-675 0 obj
+716 0 obj
<< /Border [0 0 0]
/Dest (_service)
/Subtype /Link
-/Rect [552.021 482.9999999999998 563.76 497.27999999999975]
+/Rect [552.021 298.1999999999996 563.76 312.47999999999956]
/Type /Annot
>>
endobj
-676 0 obj
+717 0 obj
<< /Type /XObject
/Subtype /Form
/BBox [0 0 612.0 792.0]
@@ -53489,1497 +58233,1587 @@ Q
endstream
endobj
-677 0 obj
+718 0 obj
<< /Type /Outlines
-/Count 165
-/First 678 0 R
-/Last 822 0 R
+/Count 175
+/First 719 0 R
+/Last 872 0 R
>>
endobj
-678 0 obj
+719 0 obj
<< /Title <feff0043006c0061006d0070002000520065007300740020004100500049>
-/Parent 677 0 R
+/Parent 718 0 R
/Count 0
-/Next 679 0 R
+/Next 720 0 R
/Dest [7 0 R /XYZ 0 792.0 null]
>>
endobj
-679 0 obj
+720 0 obj
<< /Title <feff005400610062006c00650020006f006600200043006f006e00740065006e00740073>
-/Parent 677 0 R
+/Parent 718 0 R
/Count 0
-/Next 680 0 R
-/Prev 678 0 R
+/Next 721 0 R
+/Prev 719 0 R
/Dest [10 0 R /XYZ 0 792.0 null]
>>
endobj
-680 0 obj
+721 0 obj
<< /Title <feff004300680061007000740065007200200031002e0020004f0076006500720076006900650077>
-/Parent 677 0 R
+/Parent 718 0 R
/Count 2
-/First 681 0 R
-/Last 682 0 R
-/Next 683 0 R
-/Prev 679 0 R
+/First 722 0 R
+/Last 723 0 R
+/Next 724 0 R
+/Prev 720 0 R
/Dest [20 0 R /XYZ 0 792.0 null]
>>
endobj
-681 0 obj
+722 0 obj
<< /Title <feff0031002e0031002e002000560065007200730069006f006e00200069006e0066006f0072006d006100740069006f006e>
-/Parent 680 0 R
+/Parent 721 0 R
/Count 0
-/Next 682 0 R
+/Next 723 0 R
/Dest [20 0 R /XYZ 0 712.0799999999999 null]
>>
endobj
-682 0 obj
+723 0 obj
<< /Title <feff0031002e0032002e002000550052004900200073006300680065006d0065>
-/Parent 680 0 R
+/Parent 721 0 R
/Count 0
-/Prev 681 0 R
+/Prev 722 0 R
/Dest [20 0 R /XYZ 0 644.22 null]
>>
endobj
-683 0 obj
+724 0 obj
<< /Title <feff004300680061007000740065007200200032002e002000500061007400680073>
-/Parent 677 0 R
-/Count 138
-/First 684 0 R
-/Last 818 0 R
-/Next 822 0 R
-/Prev 680 0 R
+/Parent 718 0 R
+/Count 147
+/First 725 0 R
+/Last 868 0 R
+/Next 872 0 R
+/Prev 721 0 R
/Dest [29 0 R /XYZ 0 792.0 null]
>>
endobj
-684 0 obj
+725 0 obj
<< /Title <feff0032002e0031002e00200047004500540020002f00760031002f006800650061006c007400680063006800650063006b>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 2
-/First 685 0 R
-/Last 686 0 R
-/Next 687 0 R
+/First 726 0 R
+/Last 727 0 R
+/Next 728 0 R
/Dest [29 0 R /XYZ 0 712.0799999999999 null]
>>
endobj
-685 0 obj
+726 0 obj
<< /Title <feff0032002e0031002e0031002e00200052006500730070006f006e007300650073>
-/Parent 684 0 R
+/Parent 725 0 R
/Count 0
-/Next 686 0 R
+/Next 727 0 R
/Dest [29 0 R /XYZ 0 672.0 null]
>>
endobj
-686 0 obj
+727 0 obj
<< /Title <feff0032002e0031002e0032002e002000500072006f00640075006300650073>
-/Parent 684 0 R
+/Parent 725 0 R
/Count 0
-/Prev 685 0 R
+/Prev 726 0 R
/Dest [29 0 R /XYZ 0 566.8800000000001 null]
>>
endobj
-687 0 obj
+728 0 obj
<< /Title <feff0032002e0032002e00200047004500540020002f00760031002f0075007300650072002f0067006500740055007300650072>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 2
-/First 688 0 R
-/Last 689 0 R
-/Next 690 0 R
-/Prev 684 0 R
+/First 729 0 R
+/Last 730 0 R
+/Next 731 0 R
+/Prev 725 0 R
/Dest [29 0 R /XYZ 0 510.60000000000025 null]
>>
endobj
-688 0 obj
+729 0 obj
<< /Title <feff0032002e0032002e0031002e00200052006500730070006f006e007300650073>
-/Parent 687 0 R
+/Parent 728 0 R
/Count 0
-/Next 689 0 R
+/Next 730 0 R
/Dest [29 0 R /XYZ 0 470.5200000000002 null]
>>
endobj
-689 0 obj
+730 0 obj
<< /Title <feff0032002e0032002e0032002e002000500072006f00640075006300650073>
-/Parent 687 0 R
+/Parent 728 0 R
/Count 0
-/Prev 688 0 R
+/Prev 729 0 R
/Dest [29 0 R /XYZ 0 379.6800000000002 null]
>>
endobj
-690 0 obj
+731 0 obj
<< /Title <feff0032002e0033002e00200047004500540020002f00760032002f0063006c0061006d00700049006e0066006f0072006d006100740069006f006e>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 2
-/First 691 0 R
-/Last 692 0 R
-/Next 693 0 R
-/Prev 687 0 R
+/First 732 0 R
+/Last 733 0 R
+/Next 734 0 R
+/Prev 728 0 R
/Dest [29 0 R /XYZ 0 323.40000000000015 null]
>>
endobj
-691 0 obj
+732 0 obj
<< /Title <feff0032002e0033002e0031002e00200052006500730070006f006e007300650073>
-/Parent 690 0 R
+/Parent 731 0 R
/Count 0
-/Next 692 0 R
+/Next 733 0 R
/Dest [29 0 R /XYZ 0 283.3200000000001 null]
>>
endobj
-692 0 obj
+733 0 obj
<< /Title <feff0032002e0033002e0032002e002000500072006f00640075006300650073>
-/Parent 690 0 R
+/Parent 731 0 R
/Count 0
-/Prev 691 0 R
+/Prev 732 0 R
/Dest [29 0 R /XYZ 0 178.2000000000001 null]
>>
endobj
-693 0 obj
+734 0 obj
<< /Title <feff0032002e0034002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 2
-/First 694 0 R
-/Last 695 0 R
-/Next 696 0 R
-/Prev 690 0 R
+/First 735 0 R
+/Last 736 0 R
+/Next 737 0 R
+/Prev 731 0 R
/Dest [29 0 R /XYZ 0 121.92000000000007 null]
>>
endobj
-694 0 obj
+735 0 obj
<< /Title <feff0032002e0034002e0031002e00200052006500730070006f006e007300650073>
-/Parent 693 0 R
+/Parent 734 0 R
/Count 0
-/Next 695 0 R
+/Next 736 0 R
/Dest [45 0 R /XYZ 0 792.0 null]
>>
endobj
-695 0 obj
+736 0 obj
<< /Title <feff0032002e0034002e0032002e002000500072006f00640075006300650073>
-/Parent 693 0 R
+/Parent 734 0 R
/Count 0
-/Prev 694 0 R
+/Prev 735 0 R
/Dest [45 0 R /XYZ 0 653.2800000000002 null]
>>
endobj
-696 0 obj
+737 0 obj
<< /Title <feff0032002e0035002e00200050005500540020002f00760032002f00640069006300740069006f006e006100720079>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 4
-/First 697 0 R
-/Last 700 0 R
-/Next 701 0 R
-/Prev 693 0 R
+/First 738 0 R
+/Last 741 0 R
+/Next 742 0 R
+/Prev 734 0 R
/Dest [45 0 R /XYZ 0 597.0000000000003 null]
>>
endobj
-697 0 obj
+738 0 obj
<< /Title <feff0032002e0035002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 696 0 R
+/Parent 737 0 R
/Count 0
-/Next 698 0 R
+/Next 739 0 R
/Dest [45 0 R /XYZ 0 556.9200000000004 null]
>>
endobj
-698 0 obj
+739 0 obj
<< /Title <feff0032002e0035002e0032002e00200052006500730070006f006e007300650073>
-/Parent 696 0 R
+/Parent 737 0 R
/Count 0
-/Next 699 0 R
-/Prev 697 0 R
+/Next 740 0 R
+/Prev 738 0 R
/Dest [45 0 R /XYZ 0 451.8000000000006 null]
>>
endobj
-699 0 obj
+740 0 obj
<< /Title <feff0032002e0035002e0033002e00200043006f006e00730075006d00650073>
-/Parent 696 0 R
+/Parent 737 0 R
/Count 0
-/Next 700 0 R
-/Prev 698 0 R
+/Next 741 0 R
+/Prev 739 0 R
/Dest [45 0 R /XYZ 0 346.6800000000005 null]
>>
endobj
-700 0 obj
+741 0 obj
<< /Title <feff0032002e0035002e0034002e002000500072006f00640075006300650073>
-/Parent 696 0 R
+/Parent 737 0 R
/Count 0
-/Prev 699 0 R
+/Prev 740 0 R
/Dest [45 0 R /XYZ 0 290.4000000000005 null]
>>
endobj
-701 0 obj
+742 0 obj
<< /Title <feff0032002e0036002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079002f007300650063006f006e0064006100720079002f006e0061006d00650073>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 2
-/First 702 0 R
-/Last 703 0 R
-/Next 704 0 R
-/Prev 696 0 R
+/First 743 0 R
+/Last 744 0 R
+/Next 745 0 R
+/Prev 737 0 R
/Dest [45 0 R /XYZ 0 234.12000000000046 null]
>>
endobj
-702 0 obj
+743 0 obj
<< /Title <feff0032002e0036002e0031002e00200052006500730070006f006e007300650073>
-/Parent 701 0 R
+/Parent 742 0 R
/Count 0
-/Next 703 0 R
+/Next 744 0 R
/Dest [45 0 R /XYZ 0 194.04000000000045 null]
>>
endobj
-703 0 obj
+744 0 obj
<< /Title <feff0032002e0036002e0032002e002000500072006f00640075006300650073>
-/Parent 701 0 R
+/Parent 742 0 R
/Count 0
-/Prev 702 0 R
+/Prev 743 0 R
/Dest [61 0 R /XYZ 0 792.0 null]
>>
endobj
-704 0 obj
+745 0 obj
<< /Title <feff0032002e0037002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079002f007b00640069006300740069006f006e006100720079004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 705 0 R
-/Last 707 0 R
-/Next 708 0 R
-/Prev 701 0 R
+/First 746 0 R
+/Last 748 0 R
+/Next 749 0 R
+/Prev 742 0 R
/Dest [61 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-705 0 obj
+746 0 obj
<< /Title <feff0032002e0037002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 704 0 R
+/Parent 745 0 R
/Count 0
-/Next 706 0 R
+/Next 747 0 R
/Dest [61 0 R /XYZ 0 662.0400000000002 null]
>>
endobj
-706 0 obj
+747 0 obj
<< /Title <feff0032002e0037002e0032002e00200052006500730070006f006e007300650073>
-/Parent 704 0 R
+/Parent 745 0 R
/Count 0
-/Next 707 0 R
-/Prev 705 0 R
+/Next 748 0 R
+/Prev 746 0 R
/Dest [61 0 R /XYZ 0 556.9200000000003 null]
>>
endobj
-707 0 obj
+748 0 obj
<< /Title <feff0032002e0037002e0033002e002000500072006f00640075006300650073>
-/Parent 704 0 R
+/Parent 745 0 R
/Count 0
-/Prev 706 0 R
+/Prev 747 0 R
/Dest [61 0 R /XYZ 0 451.8000000000004 null]
>>
endobj
-708 0 obj
+749 0 obj
<< /Title <feff0032002e0038002e00200050005500540020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 4
-/First 709 0 R
-/Last 712 0 R
-/Next 713 0 R
-/Prev 704 0 R
+/First 750 0 R
+/Last 753 0 R
+/Next 754 0 R
+/Prev 745 0 R
/Dest [61 0 R /XYZ 0 395.5200000000004 null]
>>
endobj
-709 0 obj
+750 0 obj
<< /Title <feff0032002e0038002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 708 0 R
+/Parent 749 0 R
/Count 0
-/Next 710 0 R
+/Next 751 0 R
/Dest [61 0 R /XYZ 0 355.44000000000034 null]
>>
endobj
-710 0 obj
+751 0 obj
<< /Title <feff0032002e0038002e0032002e00200052006500730070006f006e007300650073>
-/Parent 708 0 R
+/Parent 749 0 R
/Count 0
-/Next 711 0 R
-/Prev 709 0 R
+/Next 752 0 R
+/Prev 750 0 R
/Dest [61 0 R /XYZ 0 212.76000000000028 null]
>>
endobj
-711 0 obj
+752 0 obj
<< /Title <feff0032002e0038002e0033002e00200043006f006e00730075006d00650073>
-/Parent 708 0 R
+/Parent 749 0 R
/Count 0
-/Next 712 0 R
-/Prev 710 0 R
+/Next 753 0 R
+/Prev 751 0 R
/Dest [61 0 R /XYZ 0 107.64000000000024 null]
>>
endobj
-712 0 obj
+753 0 obj
<< /Title <feff0032002e0038002e0034002e002000500072006f00640075006300650073>
-/Parent 708 0 R
+/Parent 749 0 R
/Count 0
-/Prev 711 0 R
+/Prev 752 0 R
/Dest [75 0 R /XYZ 0 792.0 null]
>>
endobj
-713 0 obj
+754 0 obj
<< /Title <feff0032002e0039002e002000440045004c0045005400450020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 714 0 R
-/Last 716 0 R
-/Next 717 0 R
-/Prev 708 0 R
+/First 755 0 R
+/Last 757 0 R
+/Next 758 0 R
+/Prev 749 0 R
/Dest [75 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-714 0 obj
+755 0 obj
<< /Title <feff0032002e0039002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 713 0 R
+/Parent 754 0 R
/Count 0
-/Next 715 0 R
+/Next 756 0 R
/Dest [75 0 R /XYZ 0 662.0400000000002 null]
>>
endobj
-715 0 obj
+756 0 obj
<< /Title <feff0032002e0039002e0032002e00200052006500730070006f006e007300650073>
-/Parent 713 0 R
+/Parent 754 0 R
/Count 0
-/Next 716 0 R
-/Prev 714 0 R
+/Next 757 0 R
+/Prev 755 0 R
/Dest [75 0 R /XYZ 0 556.9200000000003 null]
>>
endobj
-716 0 obj
+757 0 obj
<< /Title <feff0032002e0039002e0033002e002000500072006f00640075006300650073>
-/Parent 713 0 R
+/Parent 754 0 R
/Count 0
-/Prev 715 0 R
+/Prev 756 0 R
/Dest [75 0 R /XYZ 0 466.0800000000005 null]
>>
endobj
-717 0 obj
+758 0 obj
<< /Title <feff0032002e00310030002e002000440045004c0045005400450020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d002f0065006c0065006d0065006e00740073002f007b00730068006f00720074004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 718 0 R
-/Last 720 0 R
-/Next 721 0 R
-/Prev 713 0 R
+/First 759 0 R
+/Last 761 0 R
+/Next 762 0 R
+/Prev 754 0 R
/Dest [75 0 R /XYZ 0 409.80000000000047 null]
>>
endobj
-718 0 obj
+759 0 obj
<< /Title <feff0032002e00310030002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 717 0 R
+/Parent 758 0 R
/Count 0
-/Next 719 0 R
+/Next 760 0 R
/Dest [75 0 R /XYZ 0 341.64000000000044 null]
>>
endobj
-719 0 obj
+760 0 obj
<< /Title <feff0032002e00310030002e0032002e00200052006500730070006f006e007300650073>
-/Parent 717 0 R
+/Parent 758 0 R
/Count 0
-/Next 720 0 R
-/Prev 718 0 R
+/Next 761 0 R
+/Prev 759 0 R
/Dest [75 0 R /XYZ 0 198.9600000000004 null]
>>
endobj
-720 0 obj
+761 0 obj
<< /Title <feff0032002e00310030002e0033002e002000500072006f00640075006300650073>
-/Parent 717 0 R
+/Parent 758 0 R
/Count 0
-/Prev 719 0 R
+/Prev 760 0 R
/Dest [75 0 R /XYZ 0 108.12000000000037 null]
>>
endobj
-721 0 obj
+762 0 obj
<< /Title <feff0032002e00310031002e00200050005500540020002f00760032002f006c006f006f0070002f006100640064004f007000650072006100740069006f006e00610050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d002f0070006f006c006900630079004d006f00640065006c002f007b0070006f006c0069006300790054007900700065007d002f007b0070006f006c00690063007900560065007200730069006f006e007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 722 0 R
-/Last 724 0 R
-/Next 725 0 R
-/Prev 717 0 R
+/First 763 0 R
+/Last 765 0 R
+/Next 766 0 R
+/Prev 758 0 R
/Dest [87 0 R /XYZ 0 792.0 null]
>>
endobj
-722 0 obj
+763 0 obj
<< /Title <feff0032002e00310031002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 721 0 R
+/Parent 762 0 R
/Count 0
-/Next 723 0 R
+/Next 764 0 R
/Dest [87 0 R /XYZ 0 662.1600000000001 null]
>>
endobj
-723 0 obj
+764 0 obj
<< /Title <feff0032002e00310031002e0032002e00200052006500730070006f006e007300650073>
-/Parent 721 0 R
+/Parent 762 0 R
/Count 0
-/Next 724 0 R
-/Prev 722 0 R
+/Next 765 0 R
+/Prev 763 0 R
/Dest [87 0 R /XYZ 0 481.92000000000024 null]
>>
endobj
-724 0 obj
+765 0 obj
<< /Title <feff0032002e00310031002e0033002e002000500072006f00640075006300650073>
-/Parent 721 0 R
+/Parent 762 0 R
/Count 0
-/Prev 723 0 R
+/Prev 764 0 R
/Dest [87 0 R /XYZ 0 376.8000000000002 null]
>>
endobj
-725 0 obj
+766 0 obj
<< /Title <feff0032002e00310032002e00200050004f005300540020002f00760032002f006c006f006f0070002f006300720065006100740065002f007b006c006f006f0070004e0061006d0065007d003f00740065006d0070006c006100740065004e0061006d0065003d007b00740065006d0070006c006100740065004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 4
-/First 726 0 R
-/Last 729 0 R
-/Next 730 0 R
-/Prev 721 0 R
+/First 767 0 R
+/Last 770 0 R
+/Next 771 0 R
+/Prev 762 0 R
/Dest [87 0 R /XYZ 0 320.52000000000015 null]
>>
endobj
-726 0 obj
+767 0 obj
<< /Title <feff0032002e00310032002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 725 0 R
+/Parent 766 0 R
/Count 0
-/Next 727 0 R
+/Next 768 0 R
/Dest [87 0 R /XYZ 0 224.28000000000017 null]
>>
endobj
-727 0 obj
+768 0 obj
<< /Title <feff0032002e00310032002e0032002e00200052006500730070006f006e007300650073>
-/Parent 725 0 R
+/Parent 766 0 R
/Count 0
-/Next 728 0 R
-/Prev 726 0 R
-/Dest [87 0 R /XYZ 0 104.88000000000014 null]
+/Next 769 0 R
+/Prev 767 0 R
+/Dest [97 0 R /XYZ 0 792.0 null]
>>
endobj
-728 0 obj
+769 0 obj
<< /Title <feff0032002e00310032002e0033002e00200043006f006e00730075006d00650073>
-/Parent 725 0 R
+/Parent 766 0 R
/Count 0
-/Next 729 0 R
-/Prev 727 0 R
-/Dest [98 0 R /XYZ 0 683.1600000000001 null]
+/Next 770 0 R
+/Prev 768 0 R
+/Dest [97 0 R /XYZ 0 653.2800000000002 null]
>>
endobj
-729 0 obj
+770 0 obj
<< /Title <feff0032002e00310032002e0034002e002000500072006f00640075006300650073>
-/Parent 725 0 R
+/Parent 766 0 R
/Count 0
-/Prev 728 0 R
-/Dest [98 0 R /XYZ 0 626.8800000000002 null]
+/Prev 769 0 R
+/Dest [97 0 R /XYZ 0 597.0000000000003 null]
>>
endobj
-730 0 obj
+771 0 obj
<< /Title <feff0032002e00310033002e00200050005500540020002f00760032002f006c006f006f0070002f00640065006c006500740065002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 2
-/First 731 0 R
-/Last 732 0 R
-/Next 733 0 R
-/Prev 725 0 R
-/Dest [98 0 R /XYZ 0 570.6000000000004 null]
+/First 772 0 R
+/Last 773 0 R
+/Next 774 0 R
+/Prev 766 0 R
+/Dest [97 0 R /XYZ 0 540.7200000000005 null]
>>
endobj
-731 0 obj
+772 0 obj
<< /Title <feff0032002e00310033002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 730 0 R
+/Parent 771 0 R
/Count 0
-/Next 732 0 R
-/Dest [98 0 R /XYZ 0 530.5200000000004 null]
+/Next 773 0 R
+/Dest [97 0 R /XYZ 0 500.6400000000005 null]
>>
endobj
-732 0 obj
+773 0 obj
<< /Title <feff0032002e00310033002e0032002e00200052006500730070006f006e007300650073>
-/Parent 730 0 R
+/Parent 771 0 R
/Count 0
-/Prev 731 0 R
-/Dest [98 0 R /XYZ 0 425.4000000000005 null]
+/Prev 772 0 R
+/Dest [97 0 R /XYZ 0 395.5200000000005 null]
>>
endobj
-733 0 obj
+774 0 obj
<< /Title <feff0032002e00310034002e00200050005500540020002f00760032002f006c006f006f0070002f006400650070006c006f0079002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 734 0 R
-/Last 736 0 R
-/Next 737 0 R
-/Prev 730 0 R
-/Dest [98 0 R /XYZ 0 334.5600000000005 null]
+/First 775 0 R
+/Last 777 0 R
+/Next 778 0 R
+/Prev 771 0 R
+/Dest [97 0 R /XYZ 0 304.6800000000005 null]
>>
endobj
-734 0 obj
+775 0 obj
<< /Title <feff0032002e00310034002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 733 0 R
+/Parent 774 0 R
/Count 0
-/Next 735 0 R
-/Dest [98 0 R /XYZ 0 294.4800000000005 null]
+/Next 776 0 R
+/Dest [97 0 R /XYZ 0 264.6000000000005 null]
>>
endobj
-735 0 obj
+776 0 obj
<< /Title <feff0032002e00310034002e0032002e00200052006500730070006f006e007300650073>
-/Parent 733 0 R
+/Parent 774 0 R
/Count 0
-/Next 736 0 R
-/Prev 734 0 R
-/Dest [98 0 R /XYZ 0 189.36000000000044 null]
+/Next 777 0 R
+/Prev 775 0 R
+/Dest [97 0 R /XYZ 0 159.48000000000047 null]
>>
endobj
-736 0 obj
+777 0 obj
<< /Title <feff0032002e00310034002e0033002e002000500072006f00640075006300650073>
-/Parent 733 0 R
+/Parent 774 0 R
/Count 0
-/Prev 735 0 R
+/Prev 776 0 R
/Dest [110 0 R /XYZ 0 792.0 null]
>>
endobj
-737 0 obj
+778 0 obj
<< /Title <feff0032002e00310035002e00200047004500540020002f00760032002f006c006f006f0070002f0067006500740041006c006c004e0061006d00650073>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 2
-/First 738 0 R
-/Last 739 0 R
-/Next 740 0 R
-/Prev 733 0 R
+/First 779 0 R
+/Last 780 0 R
+/Next 781 0 R
+/Prev 774 0 R
/Dest [110 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-738 0 obj
+779 0 obj
<< /Title <feff0032002e00310035002e0031002e00200052006500730070006f006e007300650073>
-/Parent 737 0 R
+/Parent 778 0 R
/Count 0
-/Next 739 0 R
+/Next 780 0 R
/Dest [110 0 R /XYZ 0 662.0400000000002 null]
>>
endobj
-739 0 obj
+780 0 obj
<< /Title <feff0032002e00310035002e0032002e002000500072006f00640075006300650073>
-/Parent 737 0 R
+/Parent 778 0 R
/Count 0
-/Prev 738 0 R
+/Prev 779 0 R
/Dest [110 0 R /XYZ 0 556.9200000000003 null]
>>
endobj
-740 0 obj
+781 0 obj
<< /Title <feff0032002e00310036002e00200047004500540020002f00760032002f006c006f006f0070002f006700650074007300740061007400750073002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 741 0 R
-/Last 743 0 R
-/Next 744 0 R
-/Prev 737 0 R
+/First 782 0 R
+/Last 784 0 R
+/Next 785 0 R
+/Prev 778 0 R
/Dest [110 0 R /XYZ 0 500.64000000000044 null]
>>
endobj
-741 0 obj
+782 0 obj
<< /Title <feff0032002e00310036002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 740 0 R
+/Parent 781 0 R
/Count 0
-/Next 742 0 R
+/Next 783 0 R
/Dest [110 0 R /XYZ 0 460.5600000000004 null]
>>
endobj
-742 0 obj
+783 0 obj
<< /Title <feff0032002e00310036002e0032002e00200052006500730070006f006e007300650073>
-/Parent 740 0 R
+/Parent 781 0 R
/Count 0
-/Next 743 0 R
-/Prev 741 0 R
+/Next 784 0 R
+/Prev 782 0 R
/Dest [110 0 R /XYZ 0 355.44000000000034 null]
>>
endobj
-743 0 obj
+784 0 obj
<< /Title <feff0032002e00310036002e0033002e002000500072006f00640075006300650073>
-/Parent 740 0 R
+/Parent 781 0 R
/Count 0
-/Prev 742 0 R
+/Prev 783 0 R
/Dest [110 0 R /XYZ 0 250.32000000000028 null]
>>
endobj
-744 0 obj
+785 0 obj
<< /Title <feff0032002e00310037002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500660072006500730068004d006900630072006f00530065007200760069006300650050006f006c006900630079004a0073006f006e0053006300680065006d0061002f007b006c006f006f0070004e0061006d0065007d002f007b006d006900630072006f00530065007200760069006300650050006f006c006900630079004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 745 0 R
-/Last 747 0 R
-/Next 748 0 R
-/Prev 740 0 R
+/First 786 0 R
+/Last 788 0 R
+/Next 789 0 R
+/Prev 781 0 R
/Dest [110 0 R /XYZ 0 194.04000000000025 null]
>>
endobj
-745 0 obj
+786 0 obj
<< /Title <feff0032002e00310037002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 744 0 R
+/Parent 785 0 R
/Count 0
-/Next 746 0 R
+/Next 787 0 R
/Dest [110 0 R /XYZ 0 97.80000000000024 null]
>>
endobj
-746 0 obj
+787 0 obj
<< /Title <feff0032002e00310037002e0032002e00200052006500730070006f006e007300650073>
-/Parent 744 0 R
+/Parent 785 0 R
/Count 0
-/Next 747 0 R
-/Prev 745 0 R
+/Next 788 0 R
+/Prev 786 0 R
/Dest [123 0 R /XYZ 0 645.5999999999999 null]
>>
endobj
-747 0 obj
+788 0 obj
<< /Title <feff0032002e00310037002e0033002e002000500072006f00640075006300650073>
-/Parent 744 0 R
+/Parent 785 0 R
/Count 0
-/Prev 746 0 R
+/Prev 787 0 R
/Dest [123 0 R /XYZ 0 540.48 null]
>>
endobj
-748 0 obj
+789 0 obj
<< /Title <feff0032002e00310038002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500660072006500730068004f007000650072006100740069006f006e0061006c0050006f006c006900630079004a0073006f006e0053006300680065006d0061002f007b006c006f006f0070004e0061006d0065007d002f007b006f007000650072006100740069006f006e0061006c0050006f006c006900630079004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 749 0 R
-/Last 751 0 R
-/Next 752 0 R
-/Prev 744 0 R
+/First 790 0 R
+/Last 792 0 R
+/Next 793 0 R
+/Prev 785 0 R
/Dest [123 0 R /XYZ 0 484.20000000000016 null]
>>
endobj
-749 0 obj
+790 0 obj
<< /Title <feff0032002e00310038002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 748 0 R
+/Parent 789 0 R
/Count 0
-/Next 750 0 R
+/Next 791 0 R
/Dest [123 0 R /XYZ 0 387.96000000000015 null]
>>
endobj
-750 0 obj
+791 0 obj
<< /Title <feff0032002e00310038002e0032002e00200052006500730070006f006e007300650073>
-/Parent 748 0 R
+/Parent 789 0 R
/Count 0
-/Next 751 0 R
-/Prev 749 0 R
+/Next 792 0 R
+/Prev 790 0 R
/Dest [123 0 R /XYZ 0 245.28000000000014 null]
>>
endobj
-751 0 obj
+792 0 obj
<< /Title <feff0032002e00310038002e0033002e002000500072006f00640075006300650073>
-/Parent 748 0 R
+/Parent 789 0 R
/Count 0
-/Prev 750 0 R
+/Prev 791 0 R
/Dest [123 0 R /XYZ 0 140.1600000000001 null]
>>
endobj
-752 0 obj
+793 0 obj
<< /Title <feff0032002e00310039002e00200050005500540020002f00760032002f006c006f006f0070002f00720065006d006f00760065004f007000650072006100740069006f006e00610050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d002f0070006f006c006900630079004d006f00640065006c002f007b0070006f006c0069006300790054007900700065007d002f007b0070006f006c00690063007900560065007200730069006f006e007d002f007b0070006f006c006900630079004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 753 0 R
-/Last 755 0 R
-/Next 756 0 R
-/Prev 748 0 R
+/First 794 0 R
+/Last 796 0 R
+/Next 797 0 R
+/Prev 789 0 R
/Dest [133 0 R /XYZ 0 792.0 null]
>>
endobj
-753 0 obj
+794 0 obj
<< /Title <feff0032002e00310039002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 752 0 R
+/Parent 793 0 R
/Count 0
-/Next 754 0 R
+/Next 795 0 R
/Dest [133 0 R /XYZ 0 662.1600000000001 null]
>>
endobj
-754 0 obj
+795 0 obj
<< /Title <feff0032002e00310039002e0032002e00200052006500730070006f006e007300650073>
-/Parent 752 0 R
+/Parent 793 0 R
/Count 0
-/Next 755 0 R
-/Prev 753 0 R
+/Next 796 0 R
+/Prev 794 0 R
/Dest [133 0 R /XYZ 0 444.3600000000002 null]
>>
endobj
-755 0 obj
+796 0 obj
<< /Title <feff0032002e00310039002e0033002e002000500072006f00640075006300650073>
-/Parent 752 0 R
+/Parent 793 0 R
/Count 0
-/Prev 754 0 R
+/Prev 795 0 R
/Dest [133 0 R /XYZ 0 339.2400000000001 null]
>>
endobj
-756 0 obj
+797 0 obj
<< /Title <feff0032002e00320030002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500730074006100720074002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 757 0 R
-/Last 759 0 R
-/Next 760 0 R
-/Prev 752 0 R
+/First 798 0 R
+/Last 800 0 R
+/Next 801 0 R
+/Prev 793 0 R
/Dest [133 0 R /XYZ 0 282.9600000000001 null]
>>
endobj
-757 0 obj
+798 0 obj
<< /Title <feff0032002e00320030002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 756 0 R
+/Parent 797 0 R
/Count 0
-/Next 758 0 R
+/Next 799 0 R
/Dest [133 0 R /XYZ 0 242.8800000000001 null]
>>
endobj
-758 0 obj
+799 0 obj
<< /Title <feff0032002e00320030002e0032002e00200052006500730070006f006e007300650073>
-/Parent 756 0 R
+/Parent 797 0 R
/Count 0
-/Next 759 0 R
-/Prev 757 0 R
+/Next 800 0 R
+/Prev 798 0 R
/Dest [133 0 R /XYZ 0 137.76000000000008 null]
>>
endobj
-759 0 obj
+800 0 obj
<< /Title <feff0032002e00320030002e0033002e002000500072006f00640075006300650073>
-/Parent 756 0 R
+/Parent 797 0 R
/Count 0
-/Prev 758 0 R
+/Prev 799 0 R
/Dest [144 0 R /XYZ 0 683.1600000000001 null]
>>
endobj
-760 0 obj
+801 0 obj
<< /Title <feff0032002e00320031002e00200050005500540020002f00760032002f006c006f006f0070002f00730074006f0070002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 761 0 R
-/Last 763 0 R
-/Next 764 0 R
-/Prev 756 0 R
+/First 802 0 R
+/Last 804 0 R
+/Next 805 0 R
+/Prev 797 0 R
/Dest [144 0 R /XYZ 0 626.8800000000002 null]
>>
endobj
-761 0 obj
+802 0 obj
<< /Title <feff0032002e00320031002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 760 0 R
+/Parent 801 0 R
/Count 0
-/Next 762 0 R
+/Next 803 0 R
/Dest [144 0 R /XYZ 0 586.8000000000003 null]
>>
endobj
-762 0 obj
+803 0 obj
<< /Title <feff0032002e00320031002e0032002e00200052006500730070006f006e007300650073>
-/Parent 760 0 R
+/Parent 801 0 R
/Count 0
-/Next 763 0 R
-/Prev 761 0 R
+/Next 804 0 R
+/Prev 802 0 R
/Dest [144 0 R /XYZ 0 481.68000000000046 null]
>>
endobj
-763 0 obj
+804 0 obj
<< /Title <feff0032002e00320031002e0033002e002000500072006f00640075006300650073>
-/Parent 760 0 R
+/Parent 801 0 R
/Count 0
-/Prev 762 0 R
+/Prev 803 0 R
/Dest [144 0 R /XYZ 0 376.5600000000004 null]
>>
endobj
-764 0 obj
+805 0 obj
<< /Title <feff0032002e00320032002e00200050005500540020002f00760032002f006c006f006f0070002f007300750062006d00690074002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 765 0 R
-/Last 767 0 R
-/Next 768 0 R
-/Prev 760 0 R
+/First 806 0 R
+/Last 808 0 R
+/Next 809 0 R
+/Prev 801 0 R
/Dest [144 0 R /XYZ 0 320.28000000000037 null]
>>
endobj
-765 0 obj
+806 0 obj
<< /Title <feff0032002e00320032002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 764 0 R
+/Parent 805 0 R
/Count 0
-/Next 766 0 R
+/Next 807 0 R
/Dest [144 0 R /XYZ 0 280.20000000000033 null]
>>
endobj
-766 0 obj
+807 0 obj
<< /Title <feff0032002e00320032002e0032002e00200052006500730070006f006e007300650073>
-/Parent 764 0 R
+/Parent 805 0 R
/Count 0
-/Next 767 0 R
-/Prev 765 0 R
+/Next 808 0 R
+/Prev 806 0 R
/Dest [144 0 R /XYZ 0 175.08000000000033 null]
>>
endobj
-767 0 obj
+808 0 obj
<< /Title <feff0032002e00320032002e0033002e002000500072006f00640075006300650073>
-/Parent 764 0 R
+/Parent 805 0 R
/Count 0
-/Prev 766 0 R
+/Prev 807 0 R
/Dest [160 0 R /XYZ 0 792.0 null]
>>
endobj
-768 0 obj
+809 0 obj
<< /Title <feff0032002e00320033002e00200050005500540020002f00760032002f006c006f006f0070002f0075006e006400650070006c006f0079002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 769 0 R
-/Last 771 0 R
-/Next 772 0 R
-/Prev 764 0 R
+/First 810 0 R
+/Last 812 0 R
+/Next 813 0 R
+/Prev 805 0 R
/Dest [160 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-769 0 obj
+810 0 obj
<< /Title <feff0032002e00320033002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 768 0 R
+/Parent 809 0 R
/Count 0
-/Next 770 0 R
+/Next 811 0 R
/Dest [160 0 R /XYZ 0 662.0400000000002 null]
>>
endobj
-770 0 obj
+811 0 obj
<< /Title <feff0032002e00320033002e0032002e00200052006500730070006f006e007300650073>
-/Parent 768 0 R
+/Parent 809 0 R
/Count 0
-/Next 771 0 R
-/Prev 769 0 R
+/Next 812 0 R
+/Prev 810 0 R
/Dest [160 0 R /XYZ 0 556.9200000000003 null]
>>
endobj
-771 0 obj
+812 0 obj
<< /Title <feff0032002e00320033002e0033002e002000500072006f00640075006300650073>
-/Parent 768 0 R
+/Parent 809 0 R
/Count 0
-/Prev 770 0 R
+/Prev 811 0 R
/Dest [160 0 R /XYZ 0 451.8000000000004 null]
>>
endobj
-772 0 obj
+813 0 obj
<< /Title <feff0032002e00320034002e00200050004f005300540020002f00760032002f006c006f006f0070002f0075007000640061007400650047006c006f00620061006c00500072006f0070006500720074006900650073002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 4
-/First 773 0 R
-/Last 776 0 R
-/Next 777 0 R
-/Prev 768 0 R
+/First 814 0 R
+/Last 817 0 R
+/Next 818 0 R
+/Prev 809 0 R
/Dest [160 0 R /XYZ 0 395.5200000000004 null]
>>
endobj
-773 0 obj
+814 0 obj
<< /Title <feff0032002e00320034002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 772 0 R
+/Parent 813 0 R
/Count 0
-/Next 774 0 R
+/Next 815 0 R
/Dest [160 0 R /XYZ 0 355.44000000000034 null]
>>
endobj
-774 0 obj
+815 0 obj
<< /Title <feff0032002e00320034002e0032002e00200052006500730070006f006e007300650073>
-/Parent 772 0 R
+/Parent 813 0 R
/Count 0
-/Next 775 0 R
-/Prev 773 0 R
+/Next 816 0 R
+/Prev 814 0 R
/Dest [160 0 R /XYZ 0 212.76000000000028 null]
>>
endobj
-775 0 obj
+816 0 obj
<< /Title <feff0032002e00320034002e0033002e00200043006f006e00730075006d00650073>
-/Parent 772 0 R
+/Parent 813 0 R
/Count 0
-/Next 776 0 R
-/Prev 774 0 R
+/Next 817 0 R
+/Prev 815 0 R
/Dest [160 0 R /XYZ 0 107.64000000000024 null]
>>
endobj
-776 0 obj
+817 0 obj
<< /Title <feff0032002e00320034002e0034002e002000500072006f00640075006300650073>
-/Parent 772 0 R
+/Parent 813 0 R
/Count 0
-/Prev 775 0 R
+/Prev 816 0 R
/Dest [174 0 R /XYZ 0 792.0 null]
>>
endobj
-777 0 obj
+818 0 obj
<< /Title <feff0032002e00320035002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004d006900630072006f00730065007200760069006300650050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 4
-/First 778 0 R
-/Last 781 0 R
-/Next 782 0 R
-/Prev 772 0 R
+/First 819 0 R
+/Last 822 0 R
+/Next 823 0 R
+/Prev 813 0 R
/Dest [174 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-778 0 obj
+819 0 obj
<< /Title <feff0032002e00320035002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 777 0 R
+/Parent 818 0 R
/Count 0
-/Next 779 0 R
+/Next 820 0 R
/Dest [174 0 R /XYZ 0 633.9600000000002 null]
>>
endobj
-779 0 obj
+820 0 obj
<< /Title <feff0032002e00320035002e0032002e00200052006500730070006f006e007300650073>
-/Parent 777 0 R
+/Parent 818 0 R
/Count 0
-/Next 780 0 R
-/Prev 778 0 R
+/Next 821 0 R
+/Prev 819 0 R
/Dest [174 0 R /XYZ 0 491.28000000000026 null]
>>
endobj
-780 0 obj
+821 0 obj
<< /Title <feff0032002e00320035002e0033002e00200043006f006e00730075006d00650073>
-/Parent 777 0 R
+/Parent 818 0 R
/Count 0
-/Next 781 0 R
-/Prev 779 0 R
+/Next 822 0 R
+/Prev 820 0 R
/Dest [174 0 R /XYZ 0 386.1600000000002 null]
>>
endobj
-781 0 obj
+822 0 obj
<< /Title <feff0032002e00320035002e0034002e002000500072006f00640075006300650073>
-/Parent 777 0 R
+/Parent 818 0 R
/Count 0
-/Prev 780 0 R
+/Prev 821 0 R
/Dest [174 0 R /XYZ 0 329.88000000000017 null]
>>
endobj
-782 0 obj
+823 0 obj
<< /Title <feff0032002e00320036002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004f007000650072006100740069006f006e0061006c0050006f006c00690063006900650073002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 4
-/First 783 0 R
-/Last 786 0 R
-/Next 787 0 R
-/Prev 777 0 R
+/First 824 0 R
+/Last 827 0 R
+/Next 828 0 R
+/Prev 818 0 R
/Dest [174 0 R /XYZ 0 273.60000000000014 null]
>>
endobj
-783 0 obj
+824 0 obj
<< /Title <feff0032002e00320036002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 782 0 R
+/Parent 823 0 R
/Count 0
-/Next 784 0 R
+/Next 825 0 R
/Dest [174 0 R /XYZ 0 205.44000000000014 null]
>>
endobj
-784 0 obj
+825 0 obj
<< /Title <feff0032002e00320036002e0032002e00200052006500730070006f006e007300650073>
-/Parent 782 0 R
+/Parent 823 0 R
/Count 0
-/Next 785 0 R
-/Prev 783 0 R
+/Next 826 0 R
+/Prev 824 0 R
/Dest [187 0 R /XYZ 0 792.0 null]
>>
endobj
-785 0 obj
+826 0 obj
<< /Title <feff0032002e00320036002e0033002e00200043006f006e00730075006d00650073>
-/Parent 782 0 R
+/Parent 823 0 R
/Count 0
-/Next 786 0 R
-/Prev 784 0 R
+/Next 827 0 R
+/Prev 825 0 R
/Dest [187 0 R /XYZ 0 653.2800000000002 null]
>>
endobj
-786 0 obj
+827 0 obj
<< /Title <feff0032002e00320036002e0034002e002000500072006f00640075006300650073>
-/Parent 782 0 R
+/Parent 823 0 R
/Count 0
-/Prev 785 0 R
+/Prev 826 0 R
/Dest [187 0 R /XYZ 0 597.0000000000003 null]
>>
endobj
-787 0 obj
+828 0 obj
<< /Title <feff0032002e00320037002e00200047004500540020002f00760032002f006c006f006f0070002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 683 0 R
+/Parent 724 0 R
/Count 3
-/First 788 0 R
-/Last 790 0 R
-/Next 791 0 R
-/Prev 782 0 R
+/First 829 0 R
+/Last 831 0 R
+/Next 832 0 R
+/Prev 823 0 R
/Dest [187 0 R /XYZ 0 540.7200000000005 null]
>>
endobj
-788 0 obj
+829 0 obj
<< /Title <feff0032002e00320037002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 787 0 R
+/Parent 828 0 R
/Count 0
-/Next 789 0 R
+/Next 830 0 R
/Dest [187 0 R /XYZ 0 500.6400000000005 null]
>>
endobj
-789 0 obj
+830 0 obj
<< /Title <feff0032002e00320037002e0032002e00200052006500730070006f006e007300650073>
-/Parent 787 0 R
+/Parent 828 0 R
/Count 0
-/Next 790 0 R
-/Prev 788 0 R
+/Next 831 0 R
+/Prev 829 0 R
/Dest [187 0 R /XYZ 0 395.5200000000005 null]
>>
endobj
-790 0 obj
+831 0 obj
<< /Title <feff0032002e00320037002e0033002e002000500072006f00640075006300650073>
-/Parent 787 0 R
+/Parent 828 0 R
/Count 0
-/Prev 789 0 R
+/Prev 830 0 R
/Dest [187 0 R /XYZ 0 290.40000000000043 null]
>>
endobj
-791 0 obj
-<< /Title <feff0032002e00320038002e00200050004f005300540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073>
-/Parent 683 0 R
-/Count 4
-/First 792 0 R
-/Last 795 0 R
-/Next 796 0 R
-/Prev 787 0 R
+832 0 obj
+<< /Title <feff0032002e00320038002e00200047004500540020002f00760032002f0070006f006c00690063006900650073>
+/Parent 724 0 R
+/Count 2
+/First 833 0 R
+/Last 834 0 R
+/Next 835 0 R
+/Prev 828 0 R
/Dest [187 0 R /XYZ 0 234.1200000000004 null]
>>
endobj
-792 0 obj
-<< /Title <feff0032002e00320038002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 791 0 R
+833 0 obj
+<< /Title <feff0032002e00320038002e0031002e00200052006500730070006f006e007300650073>
+/Parent 832 0 R
/Count 0
-/Next 793 0 R
+/Next 834 0 R
/Dest [187 0 R /XYZ 0 194.0400000000004 null]
>>
endobj
-793 0 obj
-<< /Title <feff0032002e00320038002e0032002e00200052006500730070006f006e007300650073>
-/Parent 791 0 R
+834 0 obj
+<< /Title <feff0032002e00320038002e0032002e002000500072006f00640075006300650073>
+/Parent 832 0 R
/Count 0
-/Next 794 0 R
-/Prev 792 0 R
-/Dest [200 0 R /XYZ 0 792.0 null]
+/Prev 833 0 R
+/Dest [201 0 R /XYZ 0 792.0 null]
>>
endobj
-794 0 obj
-<< /Title <feff0032002e00320038002e0033002e00200043006f006e00730075006d00650073>
-/Parent 791 0 R
-/Count 0
-/Next 795 0 R
-/Prev 793 0 R
-/Dest [200 0 R /XYZ 0 653.2800000000002 null]
+835 0 obj
+<< /Title <feff0032002e00320039002e00200050005500540020002f00760032002f0070006f006c00690063006900650073002f007000640070004400650070006c006f0079006d0065006e0074>
+/Parent 724 0 R
+/Count 3
+/First 836 0 R
+/Last 838 0 R
+/Next 839 0 R
+/Prev 832 0 R
+/Dest [201 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-795 0 obj
-<< /Title <feff0032002e00320038002e0034002e002000500072006f00640075006300650073>
-/Parent 791 0 R
+836 0 obj
+<< /Title <feff0032002e00320039002e0031002e00200050006100720061006d00650074006500720073>
+/Parent 835 0 R
/Count 0
-/Prev 794 0 R
-/Dest [200 0 R /XYZ 0 597.0000000000003 null]
->>
-endobj
-796 0 obj
-<< /Title <feff0032002e00320039002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073>
-/Parent 683 0 R
-/Count 2
-/First 797 0 R
-/Last 798 0 R
-/Next 799 0 R
-/Prev 791 0 R
-/Dest [200 0 R /XYZ 0 540.7200000000005 null]
+/Next 837 0 R
+/Dest [201 0 R /XYZ 0 662.0400000000002 null]
>>
endobj
-797 0 obj
-<< /Title <feff0032002e00320039002e0031002e00200052006500730070006f006e007300650073>
-/Parent 796 0 R
+837 0 obj
+<< /Title <feff0032002e00320039002e0032002e00200052006500730070006f006e007300650073>
+/Parent 835 0 R
/Count 0
-/Next 798 0 R
-/Dest [200 0 R /XYZ 0 500.6400000000005 null]
+/Next 838 0 R
+/Prev 836 0 R
+/Dest [201 0 R /XYZ 0 556.9200000000003 null]
>>
endobj
-798 0 obj
-<< /Title <feff0032002e00320039002e0032002e002000500072006f00640075006300650073>
-/Parent 796 0 R
+838 0 obj
+<< /Title <feff0032002e00320039002e0033002e00200043006f006e00730075006d00650073>
+/Parent 835 0 R
/Count 0
-/Prev 797 0 R
-/Dest [200 0 R /XYZ 0 395.52000000000044 null]
+/Prev 837 0 R
+/Dest [201 0 R /XYZ 0 466.0800000000005 null]
>>
endobj
-799 0 obj
-<< /Title <feff0032002e00330030002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f00790061006d006c002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d>
-/Parent 683 0 R
+839 0 obj
+<< /Title <feff0032002e00330030002e00200050004f005300540020002f00760032002f0070006f006c00690063006900650073002f0070006f006c0069006300790074007900700065>
+/Parent 724 0 R
/Count 3
-/First 800 0 R
-/Last 802 0 R
-/Next 803 0 R
-/Prev 796 0 R
-/Dest [200 0 R /XYZ 0 339.2400000000004 null]
+/First 840 0 R
+/Last 842 0 R
+/Next 843 0 R
+/Prev 835 0 R
+/Dest [201 0 R /XYZ 0 409.80000000000047 null]
>>
endobj
-800 0 obj
+840 0 obj
<< /Title <feff0032002e00330030002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 799 0 R
+/Parent 839 0 R
/Count 0
-/Next 801 0 R
-/Dest [200 0 R /XYZ 0 243.00000000000043 null]
+/Next 841 0 R
+/Dest [201 0 R /XYZ 0 369.7200000000004 null]
>>
endobj
-801 0 obj
+841 0 obj
<< /Title <feff0032002e00330030002e0032002e00200052006500730070006f006e007300650073>
-/Parent 799 0 R
+/Parent 839 0 R
/Count 0
-/Next 802 0 R
-/Prev 800 0 R
-/Dest [200 0 R /XYZ 0 100.32000000000039 null]
+/Next 842 0 R
+/Prev 840 0 R
+/Dest [201 0 R /XYZ 0 264.6000000000004 null]
>>
endobj
-802 0 obj
-<< /Title <feff0032002e00330030002e0033002e002000500072006f00640075006300650073>
-/Parent 799 0 R
+842 0 obj
+<< /Title <feff0032002e00330030002e0033002e00200043006f006e00730075006d00650073>
+/Parent 839 0 R
/Count 0
-/Prev 801 0 R
-/Dest [214 0 R /XYZ 0 683.1600000000001 null]
+/Prev 841 0 R
+/Dest [201 0 R /XYZ 0 173.76000000000042 null]
>>
endobj
-803 0 obj
-<< /Title <feff0032002e00330031002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d>
-/Parent 683 0 R
-/Count 3
-/First 804 0 R
-/Last 806 0 R
-/Next 807 0 R
-/Prev 799 0 R
-/Dest [214 0 R /XYZ 0 626.8800000000002 null]
+843 0 obj
+<< /Title <feff0032002e00330031002e00200050004f005300540020002f00760032002f0070006f006c00690063006900650073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d002f007b0070006f006c006900630079004e0061006d0065007d002f007b0070006f006c00690063007900560065007200730069006f006e007d>
+/Parent 724 0 R
+/Count 4
+/First 844 0 R
+/Last 847 0 R
+/Next 848 0 R
+/Prev 839 0 R
+/Dest [213 0 R /XYZ 0 792.0 null]
>>
endobj
-804 0 obj
+844 0 obj
<< /Title <feff0032002e00330031002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 803 0 R
+/Parent 843 0 R
/Count 0
-/Next 805 0 R
-/Dest [214 0 R /XYZ 0 530.6400000000003 null]
+/Next 845 0 R
+/Dest [213 0 R /XYZ 0 662.1600000000001 null]
>>
endobj
-805 0 obj
+845 0 obj
<< /Title <feff0032002e00330031002e0032002e00200052006500730070006f006e007300650073>
-/Parent 803 0 R
+/Parent 843 0 R
/Count 0
-/Next 806 0 R
-/Prev 804 0 R
-/Dest [214 0 R /XYZ 0 387.9600000000003 null]
+/Next 846 0 R
+/Prev 844 0 R
+/Dest [213 0 R /XYZ 0 406.80000000000024 null]
>>
endobj
-806 0 obj
-<< /Title <feff0032002e00330031002e0033002e002000500072006f00640075006300650073>
-/Parent 803 0 R
+846 0 obj
+<< /Title <feff0032002e00330031002e0033002e00200043006f006e00730075006d00650073>
+/Parent 843 0 R
/Count 0
-/Prev 805 0 R
-/Dest [214 0 R /XYZ 0 282.84000000000026 null]
+/Next 847 0 R
+/Prev 845 0 R
+/Dest [213 0 R /XYZ 0 301.6800000000002 null]
>>
endobj
-807 0 obj
-<< /Title <feff0032002e00330032002e00200050005500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d>
-/Parent 683 0 R
-/Count 4
-/First 808 0 R
-/Last 811 0 R
-/Next 812 0 R
-/Prev 803 0 R
-/Dest [214 0 R /XYZ 0 226.56000000000026 null]
+847 0 obj
+<< /Title <feff0032002e00330031002e0034002e002000500072006f00640075006300650073>
+/Parent 843 0 R
+/Count 0
+/Prev 846 0 R
+/Dest [213 0 R /XYZ 0 245.40000000000015 null]
>>
endobj
-808 0 obj
+848 0 obj
+<< /Title <feff0032002e00330032002e002000440045004c0045005400450020002f00760032002f0070006f006c00690063006900650073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d002f007b0070006f006c006900630079004e0061006d0065007d002f007b0070006f006c00690063007900560065007200730069006f006e007d>
+/Parent 724 0 R
+/Count 2
+/First 849 0 R
+/Last 850 0 R
+/Next 851 0 R
+/Prev 843 0 R
+/Dest [213 0 R /XYZ 0 189.12000000000012 null]
+>>
+endobj
+849 0 obj
<< /Title <feff0032002e00330032002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 807 0 R
+/Parent 848 0 R
/Count 0
-/Next 809 0 R
-/Dest [214 0 R /XYZ 0 130.32000000000025 null]
+/Next 850 0 R
+/Dest [224 0 R /XYZ 0 792.0 null]
>>
endobj
-809 0 obj
+850 0 obj
<< /Title <feff0032002e00330032002e0032002e00200052006500730070006f006e007300650073>
-/Parent 807 0 R
+/Parent 848 0 R
/Count 0
-/Next 810 0 R
-/Prev 808 0 R
-/Dest [225 0 R /XYZ 0 608.04 null]
+/Prev 849 0 R
+/Dest [224 0 R /XYZ 0 540.6000000000001 null]
>>
endobj
-810 0 obj
-<< /Title <feff0032002e00330032002e0033002e00200043006f006e00730075006d00650073>
-/Parent 807 0 R
+851 0 obj
+<< /Title <feff0032002e00330033002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073>
+/Parent 724 0 R
+/Count 2
+/First 852 0 R
+/Last 853 0 R
+/Next 854 0 R
+/Prev 848 0 R
+/Dest [224 0 R /XYZ 0 449.76000000000033 null]
+>>
+endobj
+852 0 obj
+<< /Title <feff0032002e00330033002e0031002e00200052006500730070006f006e007300650073>
+/Parent 851 0 R
/Count 0
-/Next 811 0 R
-/Prev 809 0 R
-/Dest [225 0 R /XYZ 0 502.9200000000001 null]
+/Next 853 0 R
+/Dest [224 0 R /XYZ 0 409.6800000000003 null]
>>
endobj
-811 0 obj
-<< /Title <feff0032002e00330032002e0034002e002000500072006f00640075006300650073>
-/Parent 807 0 R
+853 0 obj
+<< /Title <feff0032002e00330033002e0032002e002000500072006f00640075006300650073>
+/Parent 851 0 R
/Count 0
-/Prev 810 0 R
-/Dest [225 0 R /XYZ 0 446.64000000000004 null]
+/Prev 852 0 R
+/Dest [224 0 R /XYZ 0 304.5600000000003 null]
>>
endobj
-812 0 obj
-<< /Title <feff0032002e00330033002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073>
-/Parent 683 0 R
+854 0 obj
+<< /Title <feff0032002e00330034002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f00790061006d006c002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d>
+/Parent 724 0 R
+/Count 3
+/First 855 0 R
+/Last 857 0 R
+/Next 858 0 R
+/Prev 851 0 R
+/Dest [224 0 R /XYZ 0 248.28000000000026 null]
+>>
+endobj
+855 0 obj
+<< /Title <feff0032002e00330034002e0031002e00200050006100720061006d00650074006500720073>
+/Parent 854 0 R
+/Count 0
+/Next 856 0 R
+/Dest [224 0 R /XYZ 0 152.04000000000022 null]
+>>
+endobj
+856 0 obj
+<< /Title <feff0032002e00330034002e0032002e00200052006500730070006f006e007300650073>
+/Parent 854 0 R
+/Count 0
+/Next 857 0 R
+/Prev 855 0 R
+/Dest [235 0 R /XYZ 0 683.1600000000001 null]
+>>
+endobj
+857 0 obj
+<< /Title <feff0032002e00330034002e0033002e002000500072006f00640075006300650073>
+/Parent 854 0 R
+/Count 0
+/Prev 856 0 R
+/Dest [235 0 R /XYZ 0 578.0400000000002 null]
+>>
+endobj
+858 0 obj
+<< /Title <feff0032002e00330035002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d>
+/Parent 724 0 R
+/Count 3
+/First 859 0 R
+/Last 861 0 R
+/Next 862 0 R
+/Prev 854 0 R
+/Dest [235 0 R /XYZ 0 521.7600000000003 null]
+>>
+endobj
+859 0 obj
+<< /Title <feff0032002e00330035002e0031002e00200050006100720061006d00650074006500720073>
+/Parent 858 0 R
+/Count 0
+/Next 860 0 R
+/Dest [235 0 R /XYZ 0 425.5200000000004 null]
+>>
+endobj
+860 0 obj
+<< /Title <feff0032002e00330035002e0032002e00200052006500730070006f006e007300650073>
+/Parent 858 0 R
+/Count 0
+/Next 861 0 R
+/Prev 859 0 R
+/Dest [235 0 R /XYZ 0 282.8400000000003 null]
+>>
+endobj
+861 0 obj
+<< /Title <feff0032002e00330035002e0033002e002000500072006f00640075006300650073>
+/Parent 858 0 R
+/Count 0
+/Prev 860 0 R
+/Dest [235 0 R /XYZ 0 177.7200000000003 null]
+>>
+endobj
+862 0 obj
+<< /Title <feff0032002e00330036002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073>
+/Parent 724 0 R
/Count 2
-/First 813 0 R
-/Last 814 0 R
-/Next 815 0 R
-/Prev 807 0 R
-/Dest [225 0 R /XYZ 0 390.36 null]
+/First 863 0 R
+/Last 864 0 R
+/Next 865 0 R
+/Prev 858 0 R
+/Dest [235 0 R /XYZ 0 121.44000000000028 null]
>>
endobj
-813 0 obj
-<< /Title <feff0032002e00330033002e0031002e00200052006500730070006f006e007300650073>
-/Parent 812 0 R
+863 0 obj
+<< /Title <feff0032002e00330036002e0031002e00200052006500730070006f006e007300650073>
+/Parent 862 0 R
/Count 0
-/Next 814 0 R
-/Dest [225 0 R /XYZ 0 350.28 null]
+/Next 864 0 R
+/Dest [246 0 R /XYZ 0 792.0 null]
>>
endobj
-814 0 obj
-<< /Title <feff0032002e00330033002e0032002e002000500072006f00640075006300650073>
-/Parent 812 0 R
+864 0 obj
+<< /Title <feff0032002e00330036002e0032002e002000500072006f00640075006300650073>
+/Parent 862 0 R
/Count 0
-/Prev 813 0 R
-/Dest [225 0 R /XYZ 0 245.15999999999997 null]
+/Prev 863 0 R
+/Dest [246 0 R /XYZ 0 653.2800000000002 null]
>>
endobj
-815 0 obj
-<< /Title <feff0032002e00330034002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073002f006e0061006d00650073>
-/Parent 683 0 R
+865 0 obj
+<< /Title <feff0032002e00330037002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073002f006e0061006d00650073>
+/Parent 724 0 R
/Count 2
-/First 816 0 R
-/Last 817 0 R
-/Next 818 0 R
-/Prev 812 0 R
-/Dest [225 0 R /XYZ 0 188.87999999999994 null]
+/First 866 0 R
+/Last 867 0 R
+/Next 868 0 R
+/Prev 862 0 R
+/Dest [246 0 R /XYZ 0 597.0000000000003 null]
>>
endobj
-816 0 obj
-<< /Title <feff0032002e00330034002e0031002e00200052006500730070006f006e007300650073>
-/Parent 815 0 R
+866 0 obj
+<< /Title <feff0032002e00330037002e0031002e00200052006500730070006f006e007300650073>
+/Parent 865 0 R
/Count 0
-/Next 817 0 R
-/Dest [225 0 R /XYZ 0 148.79999999999993 null]
+/Next 867 0 R
+/Dest [246 0 R /XYZ 0 556.9200000000004 null]
>>
endobj
-817 0 obj
-<< /Title <feff0032002e00330034002e0032002e002000500072006f00640075006300650073>
-/Parent 815 0 R
+867 0 obj
+<< /Title <feff0032002e00330037002e0032002e002000500072006f00640075006300650073>
+/Parent 865 0 R
/Count 0
-/Prev 816 0 R
-/Dest [237 0 R /XYZ 0 792.0 null]
+/Prev 866 0 R
+/Dest [246 0 R /XYZ 0 451.8000000000005 null]
>>
endobj
-818 0 obj
-<< /Title <feff0032002e00330035002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073002f007b00740065006d0070006c006100740065004e0061006d0065007d>
-/Parent 683 0 R
+868 0 obj
+<< /Title <feff0032002e00330038002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073002f007b00740065006d0070006c006100740065004e0061006d0065007d>
+/Parent 724 0 R
/Count 3
-/First 819 0 R
-/Last 821 0 R
-/Prev 815 0 R
-/Dest [237 0 R /XYZ 0 702.1200000000001 null]
+/First 869 0 R
+/Last 871 0 R
+/Prev 865 0 R
+/Dest [246 0 R /XYZ 0 395.5200000000005 null]
>>
endobj
-819 0 obj
-<< /Title <feff0032002e00330035002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 818 0 R
+869 0 obj
+<< /Title <feff0032002e00330038002e0031002e00200050006100720061006d00650074006500720073>
+/Parent 868 0 R
/Count 0
-/Next 820 0 R
-/Dest [237 0 R /XYZ 0 662.0400000000002 null]
+/Next 870 0 R
+/Dest [246 0 R /XYZ 0 355.44000000000045 null]
>>
endobj
-820 0 obj
-<< /Title <feff0032002e00330035002e0032002e00200052006500730070006f006e007300650073>
-/Parent 818 0 R
+870 0 obj
+<< /Title <feff0032002e00330038002e0032002e00200052006500730070006f006e007300650073>
+/Parent 868 0 R
/Count 0
-/Next 821 0 R
-/Prev 819 0 R
-/Dest [237 0 R /XYZ 0 556.9200000000003 null]
+/Next 871 0 R
+/Prev 869 0 R
+/Dest [246 0 R /XYZ 0 250.32000000000045 null]
>>
endobj
-821 0 obj
-<< /Title <feff0032002e00330035002e0033002e002000500072006f00640075006300650073>
-/Parent 818 0 R
+871 0 obj
+<< /Title <feff0032002e00330038002e0033002e002000500072006f00640075006300650073>
+/Parent 868 0 R
/Count 0
-/Prev 820 0 R
-/Dest [237 0 R /XYZ 0 451.8000000000004 null]
+/Prev 870 0 R
+/Dest [246 0 R /XYZ 0 145.20000000000041 null]
>>
endobj
-822 0 obj
+872 0 obj
<< /Title <feff004300680061007000740065007200200033002e00200044006500660069006e006900740069006f006e0073>
-/Parent 677 0 R
-/Count 20
-/First 823 0 R
-/Last 842 0 R
-/Prev 683 0 R
-/Dest [247 0 R /XYZ 0 792.0 null]
+/Parent 718 0 R
+/Count 21
+/First 873 0 R
+/Last 893 0 R
+/Prev 724 0 R
+/Dest [260 0 R /XYZ 0 792.0 null]
>>
endobj
-823 0 obj
+873 0 obj
<< /Title <feff0033002e0031002e00200043006c0061006d00700049006e0066006f0072006d006100740069006f006e>
-/Parent 822 0 R
+/Parent 872 0 R
/Count 0
-/Next 824 0 R
-/Dest [247 0 R /XYZ 0 712.0799999999999 null]
+/Next 874 0 R
+/Dest [260 0 R /XYZ 0 712.0799999999999 null]
>>
endobj
-824 0 obj
+874 0 obj
<< /Title <feff0033002e0032002e00200043006c00640073004800650061006c007400680043006800650063006b>
-/Parent 822 0 R
+/Parent 872 0 R
/Count 0
-/Next 825 0 R
-/Prev 823 0 R
-/Dest [247 0 R /XYZ 0 524.04 null]
+/Next 875 0 R
+/Prev 873 0 R
+/Dest [260 0 R /XYZ 0 524.04 null]
>>
endobj
-825 0 obj
+875 0 obj
<< /Title <feff0033002e0033002e002000440069006300740069006f006e006100720079>
-/Parent 822 0 R
+/Parent 872 0 R
/Count 0
-/Next 826 0 R
-/Prev 824 0 R
-/Dest [247 0 R /XYZ 0 335.99999999999994 null]
+/Next 876 0 R
+/Prev 874 0 R
+/Dest [260 0 R /XYZ 0 335.99999999999994 null]
>>
endobj
-826 0 obj
+876 0 obj
<< /Title <feff0033002e0034002e002000440069006300740069006f006e0061007200790045006c0065006d0065006e0074>
-/Parent 822 0 R
+/Parent 872 0 R
/Count 0
-/Next 827 0 R
-/Prev 825 0 R
-/Dest [254 0 R /XYZ 0 608.04 null]
+/Next 877 0 R
+/Prev 875 0 R
+/Dest [267 0 R /XYZ 0 608.04 null]
>>
endobj
-827 0 obj
+877 0 obj
<< /Title <feff0033002e0035002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e0074>
-/Parent 822 0 R
+/Parent 872 0 R
/Count 0
-/Next 828 0 R
-/Prev 826 0 R
-/Dest [254 0 R /XYZ 0 157.07999999999998 null]
+/Next 878 0 R
+/Prev 876 0 R
+/Dest [267 0 R /XYZ 0 157.07999999999998 null]
>>
endobj
-828 0 obj
+878 0 obj
<< /Title <feff0033002e0036002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e007400530074006100740065>
-/Parent 822 0 R
+/Parent 872 0 R
/Count 0
-/Next 829 0 R
-/Prev 827 0 R
-/Dest [260 0 R /XYZ 0 683.1600000000001 null]
+/Next 879 0 R
+/Prev 877 0 R
+/Dest [273 0 R /XYZ 0 683.1600000000001 null]
>>
endobj
-829 0 obj
+879 0 obj
<< /Title <feff0033002e0037002e0020004a0073006f006e00410072007200610079>
-/Parent 822 0 R
+/Parent 872 0 R
/Count 0
-/Next 830 0 R
-/Prev 828 0 R
-/Dest [260 0 R /XYZ 0 495.1200000000002 null]
+/Next 880 0 R
+/Prev 878 0 R
+/Dest [273 0 R /XYZ 0 495.1200000000002 null]
>>
endobj
-830 0 obj
-<< /Title <feff0033002e0038002e0020004a0073006f006e004e0075006c006c>
-/Parent 822 0 R
+880 0 obj
+<< /Title <feff0033002e0038002e0020004a0073006f006e0045006c0065006d0065006e0074>
+/Parent 872 0 R
/Count 0
-/Next 831 0 R
-/Prev 829 0 R
-/Dest [267 0 R /XYZ 0 345.1200000000003 null]
+/Next 881 0 R
+/Prev 879 0 R
+/Dest [280 0 R /XYZ 0 345.1200000000003 null]
>>
endobj
-831 0 obj
-<< /Title <feff0033002e0039002e0020004a0073006f006e004f0062006a006500630074>
-/Parent 822 0 R
+881 0 obj
+<< /Title <feff0033002e0039002e0020004a0073006f006e004e0075006c006c>
+/Parent 872 0 R
/Count 0
-/Next 832 0 R
-/Prev 830 0 R
-/Dest [273 0 R /XYZ 0 194.88000000000017 null]
+/Next 882 0 R
+/Prev 880 0 R
+/Dest [286 0 R /XYZ 0 194.88000000000017 null]
>>
endobj
-832 0 obj
-<< /Title <feff0033002e00310030002e0020004a0073006f006e005000720069006d00690074006900760065>
-/Parent 822 0 R
+882 0 obj
+<< /Title <feff0033002e00310030002e0020004a0073006f006e004f0062006a006500630074>
+/Parent 872 0 R
/Count 0
-/Next 833 0 R
-/Prev 831 0 R
-/Dest [288 0 R /XYZ 0 792.0 null]
+/Next 883 0 R
+/Prev 881 0 R
+/Dest [301 0 R /XYZ 0 792.0 null]
>>
endobj
-833 0 obj
-<< /Title <feff0033002e00310031002e0020004c006f006f0070>
-/Parent 822 0 R
+883 0 obj
+<< /Title <feff0033002e00310031002e0020004a0073006f006e005000720069006d00690074006900760065>
+/Parent 872 0 R
/Count 0
-/Next 834 0 R
-/Prev 832 0 R
-/Dest [296 0 R /XYZ 0 495.3600000000003 null]
+/Next 884 0 R
+/Prev 882 0 R
+/Dest [309 0 R /XYZ 0 608.0400000000002 null]
>>
endobj
-834 0 obj
-<< /Title <feff0033002e00310032002e0020004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c>
-/Parent 822 0 R
+884 0 obj
+<< /Title <feff0033002e00310032002e0020004c006f006f0070>
+/Parent 872 0 R
/Count 0
-/Next 835 0 R
-/Prev 833 0 R
-/Dest [304 0 R /XYZ 0 532.9200000000001 null]
+/Next 885 0 R
+/Prev 883 0 R
+/Dest [316 0 R /XYZ 0 345.1200000000003 null]
>>
endobj
-835 0 obj
-<< /Title <feff0033002e00310033002e0020004c006f006f0070004c006f0067>
-/Parent 822 0 R
+885 0 obj
+<< /Title <feff0033002e00310033002e0020004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c>
+/Parent 872 0 R
/Count 0
-/Next 836 0 R
-/Prev 834 0 R
-/Dest [311 0 R /XYZ 0 792.0 null]
+/Next 886 0 R
+/Prev 884 0 R
+/Dest [322 0 R /XYZ 0 382.6799999999999 null]
>>
endobj
-836 0 obj
-<< /Title <feff0033002e00310034002e0020004c006f006f007000540065006d0070006c006100740065>
-/Parent 822 0 R
+886 0 obj
+<< /Title <feff0033002e00310034002e0020004c006f006f0070004c006f0067>
+/Parent 872 0 R
/Count 0
-/Next 837 0 R
-/Prev 835 0 R
-/Dest [311 0 R /XYZ 0 457.68 null]
+/Next 887 0 R
+/Prev 885 0 R
+/Dest [331 0 R /XYZ 0 570.48 null]
>>
endobj
-837 0 obj
-<< /Title <feff0033002e00310035002e0020004c006f006f007000540065006d0070006c006100740065004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c>
-/Parent 822 0 R
+887 0 obj
+<< /Title <feff0033002e00310035002e0020004c006f006f007000540065006d0070006c006100740065>
+/Parent 872 0 R
/Count 0
-/Next 838 0 R
-/Prev 836 0 R
-/Dest [318 0 R /XYZ 0 608.0400000000002 null]
+/Next 888 0 R
+/Prev 886 0 R
+/Dest [331 0 R /XYZ 0 269.76000000000005 null]
>>
endobj
-838 0 obj
-<< /Title <feff0033002e00310036002e0020004d006900630072006f00530065007200760069006300650050006f006c006900630079>
-/Parent 822 0 R
+888 0 obj
+<< /Title <feff0033002e00310036002e0020004c006f006f007000540065006d0070006c006100740065004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c>
+/Parent 872 0 R
/Count 0
-/Next 839 0 R
-/Prev 837 0 R
-/Dest [318 0 R /XYZ 0 420.0000000000003 null]
+/Next 889 0 R
+/Prev 887 0 R
+/Dest [338 0 R /XYZ 0 420.23999999999995 null]
>>
endobj
-839 0 obj
-<< /Title <feff0033002e00310037002e0020004e0075006d006200650072>
-/Parent 822 0 R
+889 0 obj
+<< /Title <feff0033002e00310037002e0020004d006900630072006f00530065007200760069006300650050006f006c006900630079>
+/Parent 872 0 R
/Count 0
-/Next 840 0 R
-/Prev 838 0 R
-/Dest [326 0 R /XYZ 0 345.12000000000006 null]
+/Next 890 0 R
+/Prev 888 0 R
+/Dest [338 0 R /XYZ 0 232.19999999999987 null]
>>
endobj
-840 0 obj
-<< /Title <feff0033002e00310038002e0020004f007000650072006100740069006f006e0061006c0050006f006c006900630079>
-/Parent 822 0 R
+890 0 obj
+<< /Title <feff0033002e00310038002e0020004e0075006d006200650072>
+/Parent 872 0 R
/Count 0
-/Next 841 0 R
-/Prev 839 0 R
-/Dest [326 0 R /XYZ 0 277.26 null]
+/Next 891 0 R
+/Prev 889 0 R
+/Dest [347 0 R /XYZ 0 157.3200000000001 null]
>>
endobj
-841 0 obj
-<< /Title <feff0033002e00310039002e00200050006f006c006900630079004d006f00640065006c>
-/Parent 822 0 R
+891 0 obj
+<< /Title <feff0033002e00310039002e0020004f007000650072006100740069006f006e0061006c0050006f006c006900630079>
+/Parent 872 0 R
/Count 0
-/Next 842 0 R
-/Prev 840 0 R
-/Dest [336 0 R /XYZ 0 420.23999999999995 null]
+/Next 892 0 R
+/Prev 890 0 R
+/Dest [354 0 R /XYZ 0 792.0 null]
>>
endobj
-842 0 obj
-<< /Title <feff0033002e00320030002e00200053006500720076006900630065>
-/Parent 822 0 R
+892 0 obj
+<< /Title <feff0033002e00320030002e00200050006f006c006900630079004d006f00640065006c>
+/Parent 872 0 R
/Count 0
-/Prev 841 0 R
-/Dest [343 0 R /XYZ 0 645.5999999999999 null]
+/Next 893 0 R
+/Prev 891 0 R
+/Dest [354 0 R /XYZ 0 232.32 null]
>>
endobj
-843 0 obj
+893 0 obj
+<< /Title <feff0033002e00320031002e00200053006500720076006900630065>
+/Parent 872 0 R
+/Count 0
+/Prev 892 0 R
+/Dest [363 0 R /XYZ 0 457.8 null]
+>>
+endobj
+894 0 obj
<< /Nums [0 << /P (i)
>> 1 << /P (ii)
>> 2 << /P (iii)
@@ -55009,7 +59843,7 @@ endobj
>> 26 << /P (21)
>> 27 << /P (22)
>> 28 << /P (23)
->> 30 << /P (25)
+>> 29 << /P (24)
>> 31 << /P (26)
>> 32 << /P (27)
>> 33 << /P (28)
@@ -55017,10 +59851,12 @@ endobj
>> 35 << /P (30)
>> 36 << /P (31)
>> 37 << /P (32)
+>> 38 << /P (33)
+>> 39 << /P (34)
>>]
>>
endobj
-844 0 obj
+895 0 obj
<< /Length1 12332
/Length 7916
/Filter [/FlateDecode]
@@ -55057,10 +59893,10 @@ MR—áZ϶£êS”ÆùRp|€µÅrЭoÈ󷾡ö#ðÕ’_–Ïà¬B»ˆë(—ªC&Ži‰‡‰ðÝú”z>Ï"YØC(Ÿ“†ò©Sì
”.ìñÿZ†bh
endstream
endobj
-845 0 obj
+896 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAA+NotoSerif
-/FontFile2 844 0 R
+/FontFile2 895 0 R
/FontBBox [-212 -250 1246 1047]
/Flags 6
/StemV 0
@@ -55071,7 +59907,7 @@ endobj
/XHeight 1098
>>
endobj
-846 0 obj
+897 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -55081,10 +59917,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-847 0 obj
+898 0 obj
[259 1000 1000 1000 1000 1000 1000 1000 346 346 1000 1000 250 310 250 288 559 559 559 559 559 559 559 559 559 559 286 1000 559 559 559 500 1000 705 653 613 727 623 589 713 792 367 356 1000 623 937 763 742 604 1000 655 543 612 716 674 1046 1000 625 1000 1000 1000 1000 1000 458 1000 562 613 492 613 535 369 538 634 319 299 584 310 944 645 577 613 1000 471 451 352 634 579 861 578 564 1000 428 1000 428 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 361 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 259 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
-848 0 obj
+899 0 obj
<< /Length1 11528
/Length 7660
/Filter [/FlateDecode]
@@ -55126,10 +59962,10 @@ g½ƒ>³q«Rœµm#}ÚQïRD÷Ÿî`H[ ±^ŸÇ†0eár#±M— +slËÖQVæ[ß¿¸ˆÇÚ¹;|E®zîÞ¸-K¬Üºw9
òza\ìnå; ¬vd'ãÈËæØË"°MLÙ#13ö†ÚòʦöJ+ƒâîóí]&Õœ§A§vÐêré3@i
endstream
endobj
-849 0 obj
+900 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAB+NotoSerif-Bold
-/FontFile2 848 0 R
+/FontFile2 899 0 R
/FontBBox [-212 -250 1306 1058]
/Flags 6
/StemV 0
@@ -55140,7 +59976,7 @@ endobj
/XHeight 1098
>>
endobj
-850 0 obj
+901 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -55150,10 +59986,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-851 0 obj
+902 0 obj
[259 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 293 288 559 559 559 559 559 559 559 559 559 559 1000 1000 1000 559 1000 549 1000 752 671 667 767 652 621 769 818 400 368 1000 653 952 788 787 638 1000 707 585 652 747 698 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 599 648 526 648 570 407 560 666 352 345 636 352 985 666 612 645 647 522 487 404 666 605 855 645 579 1000 441 1000 441 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
-852 0 obj
+903 0 obj
<< /Length1 5116
/Length 3170
/Filter [/FlateDecode]
@@ -55173,10 +60009,10 @@ aÙR÷Ÿâör×ÿrŠÌš±ãø±m'™²ÏOr׸ÜóG‰š¸ÝMÖÝ #8çMî¾nzº95“ƒ6GðÑ`#%ýà xH‚¢±Å+ÅhžQrÍD
ÿ:´2õ]Û^Ô5 w,¥Âº*›Ó‹Œ58«mÖg·±nkÞÄ7cÙÞB4èÆa¯ÅÊD[NaéU‹<V ¥Éó`ØÉ@V΋š{KÙÀ—r¿­ËS«¯ ðê ó3³§e'ó(×ÚÏ«-{S}`-õy÷¢¦ /²±ò‹ð79à]èp$xrë’¤ÏÊÃ'ý›"ZÞé³/izïþ›]’Wâ~ ïÝ–þ &ÌÁT
endstream
endobj
-853 0 obj
+904 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAC+NotoSerif-Italic
-/FontFile2 852 0 R
+/FontFile2 903 0 R
/FontBBox [-254 -250 1238 1047]
/Flags 70
/StemV 0
@@ -55187,7 +60023,7 @@ endobj
/XHeight 1098
>>
endobj
-854 0 obj
+905 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -55197,10 +60033,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-855 0 obj
+906 0 obj
[1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 653 1000 1000 1000 1000 1000 792 1000 1000 1000 1000 1000 1000 1000 620 1000 1000 543 612 1000 674 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 579 1000 486 579 493 1000 1000 599 304 1000 1000 304 895 599 574 577 560 467 463 368 599 1000 1000 1000 527 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
-856 0 obj
+907 0 obj
<< /Length1 3188
/Length 2052
/Filter [/FlateDecode]
@@ -55218,10 +60054,10 @@ fûzzÛ=•bn†}±kPáÝ-;8Õb­ËYKÎ…+ ƒ£cûÜ]=‹kè ±ã²ùùTª±¯þÅÓDSÉ8v"Î[ˆ£Ü9MD‚Ðuˆü ª
hžàdcßüSã¯wâ_Mõ
endstream
endobj
-857 0 obj
+908 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAD+mplus1mn-regular
-/FontFile2 856 0 R
+/FontFile2 907 0 R
/FontBBox [0 -230 1000 860]
/Flags 4
/StemV 0
@@ -55232,7 +60068,7 @@ endobj
/XHeight 0
>>
endobj
-858 0 obj
+909 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -55242,876 +60078,927 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-859 0 obj
+910 0 obj
[1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 500 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 500 1000 500 1000 500 1000 1000 1000 500 500 1000 500 1000 500 500 500 1000 1000 500 500 1000 1000 1000 500 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
xref
-0 860
+0 911
0000000000 65535 f
0000000015 00000 n
0000000264 00000 n
0000000467 00000 n
-0000000809 00000 n
-0000000860 00000 n
-0000001014 00000 n
-0000001258 00000 n
-0000001436 00000 n
-0000001603 00000 n
-0000032843 00000 n
-0000033621 00000 n
-0000064832 00000 n
-0000065622 00000 n
-0000097121 00000 n
-0000097911 00000 n
-0000129998 00000 n
-0000130796 00000 n
-0000143652 00000 n
-0000144082 00000 n
-0000146514 00000 n
-0000146751 00000 n
-0000146794 00000 n
-0000146843 00000 n
-0000146981 00000 n
-0000147154 00000 n
-0000147209 00000 n
-0000147384 00000 n
-0000147428 00000 n
-0000159633 00000 n
-0000159894 00000 n
-0000159937 00000 n
-0000159992 00000 n
-0000160035 00000 n
-0000160207 00000 n
-0000160262 00000 n
-0000160437 00000 n
-0000160493 00000 n
-0000160548 00000 n
-0000160603 00000 n
-0000160659 00000 n
-0000160714 00000 n
-0000160879 00000 n
-0000160934 00000 n
-0000160990 00000 n
-0000177465 00000 n
-0000177746 00000 n
-0000177789 00000 n
-0000177945 00000 n
-0000178000 00000 n
-0000178055 00000 n
-0000178110 00000 n
-0000178265 00000 n
-0000178320 00000 n
-0000178478 00000 n
-0000178533 00000 n
-0000178588 00000 n
-0000178890 00000 n
-0000179200 00000 n
-0000179256 00000 n
-0000179312 00000 n
-0000197597 00000 n
-0000197878 00000 n
-0000197921 00000 n
-0000197976 00000 n
-0000198031 00000 n
-0000198086 00000 n
-0000198243 00000 n
-0000198298 00000 n
-0000198353 00000 n
-0000198409 00000 n
-0000198565 00000 n
-0000198621 00000 n
-0000198779 00000 n
-0000198835 00000 n
-0000214563 00000 n
-0000214813 00000 n
-0000214856 00000 n
-0000214911 00000 n
-0000214966 00000 n
-0000215021 00000 n
-0000215076 00000 n
-0000215132 00000 n
-0000215188 00000 n
-0000215243 00000 n
-0000215629 00000 n
-0000215685 00000 n
-0000231788 00000 n
-0000232055 00000 n
-0000232098 00000 n
-0000232153 00000 n
-0000232471 00000 n
-0000232527 00000 n
-0000232688 00000 n
-0000232743 00000 n
-0000232799 00000 n
-0000232855 00000 n
-0000232911 00000 n
-0000250807 00000 n
-0000251082 00000 n
-0000251233 00000 n
-0000251289 00000 n
-0000251345 00000 n
-0000251401 00000 n
-0000251457 00000 n
-0000251513 00000 n
-0000251569 00000 n
-0000251625 00000 n
-0000251682 00000 n
-0000251844 00000 n
-0000265501 00000 n
-0000265771 00000 n
-0000265816 00000 n
-0000265873 00000 n
-0000265930 00000 n
-0000265987 00000 n
-0000266045 00000 n
-0000266102 00000 n
-0000266160 00000 n
-0000266322 00000 n
-0000266380 00000 n
-0000266438 00000 n
-0000266495 00000 n
-0000285642 00000 n
-0000285920 00000 n
-0000285977 00000 n
-0000286119 00000 n
-0000286165 00000 n
-0000286223 00000 n
-0000286281 00000 n
-0000286339 00000 n
-0000286503 00000 n
-0000286560 00000 n
-0000303866 00000 n
-0000304136 00000 n
-0000304181 00000 n
-0000304238 00000 n
-0000304295 00000 n
-0000304459 00000 n
-0000304516 00000 n
-0000304573 00000 n
-0000304920 00000 n
-0000304977 00000 n
-0000305035 00000 n
-0000324163 00000 n
-0000324449 00000 n
-0000324601 00000 n
-0000324658 00000 n
-0000324715 00000 n
-0000324772 00000 n
-0000324830 00000 n
-0000325141 00000 n
-0000325304 00000 n
-0000325361 00000 n
-0000325661 00000 n
-0000325719 00000 n
-0000325777 00000 n
-0000326101 00000 n
-0000326159 00000 n
-0000326322 00000 n
-0000344672 00000 n
-0000344958 00000 n
-0000345003 00000 n
-0000345060 00000 n
-0000345117 00000 n
-0000345174 00000 n
-0000345337 00000 n
-0000345394 00000 n
-0000345451 00000 n
-0000345509 00000 n
-0000345666 00000 n
-0000345724 00000 n
-0000345888 00000 n
-0000345946 00000 n
-0000363037 00000 n
-0000363323 00000 n
-0000363368 00000 n
-0000363425 00000 n
-0000363482 00000 n
-0000363645 00000 n
-0000363703 00000 n
-0000363880 00000 n
-0000363937 00000 n
-0000363995 00000 n
-0000364053 00000 n
-0000364111 00000 n
-0000364268 00000 n
-0000380602 00000 n
-0000380880 00000 n
-0000380925 00000 n
-0000381087 00000 n
-0000381144 00000 n
-0000381201 00000 n
-0000381258 00000 n
-0000381315 00000 n
-0000381372 00000 n
-0000381535 00000 n
-0000381593 00000 n
-0000381650 00000 n
-0000381707 00000 n
-0000396946 00000 n
-0000397224 00000 n
-0000397269 00000 n
-0000397428 00000 n
-0000397485 00000 n
-0000397542 00000 n
-0000397599 00000 n
-0000397656 00000 n
-0000397816 00000 n
-0000397874 00000 n
-0000397931 00000 n
-0000398238 00000 n
-0000398296 00000 n
-0000398354 00000 n
-0000413102 00000 n
-0000413372 00000 n
-0000413429 00000 n
-0000413486 00000 n
-0000413543 00000 n
-0000413600 00000 n
-0000413759 00000 n
-0000413817 00000 n
-0000414215 00000 n
-0000414273 00000 n
-0000414331 00000 n
-0000433592 00000 n
-0000433870 00000 n
-0000433916 00000 n
-0000434065 00000 n
-0000434122 00000 n
-0000434180 00000 n
-0000434226 00000 n
-0000434272 00000 n
-0000434443 00000 n
-0000434501 00000 n
-0000434559 00000 n
-0000434617 00000 n
-0000443269 00000 n
-0000443539 00000 n
-0000443584 00000 n
-0000443641 00000 n
-0000443698 00000 n
-0000444020 00000 n
-0000444077 00000 n
-0000444373 00000 n
-0000444544 00000 n
-0000444601 00000 n
-0000461801 00000 n
-0000462058 00000 n
-0000462103 00000 n
-0000462160 00000 n
-0000462206 00000 n
-0000462264 00000 n
-0000462442 00000 n
-0000482348 00000 n
-0000482605 00000 n
-0000482651 00000 n
-0000482805 00000 n
-0000482863 00000 n
-0000483169 00000 n
-0000503717 00000 n
-0000503990 00000 n
-0000504151 00000 n
-0000504208 00000 n
-0000504265 00000 n
-0000504435 00000 n
-0000504602 00000 n
-0000526005 00000 n
-0000526278 00000 n
-0000526427 00000 n
-0000526598 00000 n
-0000526757 00000 n
-0000526814 00000 n
-0000548645 00000 n
-0000548934 00000 n
-0000549102 00000 n
-0000549249 00000 n
-0000549398 00000 n
-0000549549 00000 n
-0000549709 00000 n
-0000549767 00000 n
-0000572727 00000 n
-0000573016 00000 n
-0000573185 00000 n
-0000573353 00000 n
-0000573523 00000 n
-0000573695 00000 n
-0000573855 00000 n
-0000595504 00000 n
-0000595793 00000 n
-0000595838 00000 n
-0000595997 00000 n
-0000596155 00000 n
-0000596315 00000 n
-0000596466 00000 n
-0000596616 00000 n
-0000619414 00000 n
-0000619703 00000 n
-0000619760 00000 n
-0000619930 00000 n
-0000620101 00000 n
-0000620268 00000 n
-0000620440 00000 n
-0000620615 00000 n
-0000642888 00000 n
-0000643169 00000 n
-0000643309 00000 n
-0000643485 00000 n
-0000643542 00000 n
-0000643711 00000 n
-0000643898 00000 n
-0000664571 00000 n
-0000664844 00000 n
-0000664889 00000 n
-0000665052 00000 n
-0000665098 00000 n
-0000665287 00000 n
-0000665449 00000 n
-0000686115 00000 n
-0000686388 00000 n
-0000686445 00000 n
-0000686877 00000 n
-0000687053 00000 n
-0000687225 00000 n
-0000687282 00000 n
-0000687451 00000 n
-0000707785 00000 n
-0000708082 00000 n
-0000708231 00000 n
-0000708386 00000 n
-0000708530 00000 n
-0000708695 00000 n
-0000708753 00000 n
-0000708799 00000 n
-0000708970 00000 n
-0000709117 00000 n
-0000730790 00000 n
-0000731071 00000 n
-0000731214 00000 n
-0000731369 00000 n
-0000731513 00000 n
-0000731571 00000 n
-0000731742 00000 n
-0000742943 00000 n
-0000743216 00000 n
-0000743371 00000 n
-0000743428 00000 n
-0000743577 00000 n
-0000743726 00000 n
-0000743870 00000 n
-0000744015 00000 n
-0000744180 00000 n
-0000744336 00000 n
-0000744494 00000 n
-0000744641 00000 n
-0000744803 00000 n
-0000744945 00000 n
-0000745111 00000 n
-0000745256 00000 n
-0000745413 00000 n
-0000745559 00000 n
-0000745715 00000 n
-0000745860 00000 n
-0000746016 00000 n
-0000746161 00000 n
-0000746320 00000 n
-0000746468 00000 n
-0000746626 00000 n
-0000746773 00000 n
-0000746940 00000 n
-0000747086 00000 n
-0000747246 00000 n
-0000747395 00000 n
-0000747553 00000 n
-0000747700 00000 n
-0000747855 00000 n
-0000748000 00000 n
-0000748160 00000 n
-0000748309 00000 n
-0000748469 00000 n
-0000748618 00000 n
-0000748773 00000 n
-0000748918 00000 n
-0000749086 00000 n
-0000749233 00000 n
-0000749392 00000 n
-0000749540 00000 n
-0000749696 00000 n
-0000749842 00000 n
-0000750002 00000 n
-0000750151 00000 n
-0000750317 00000 n
-0000750462 00000 n
-0000750622 00000 n
-0000750771 00000 n
-0000750929 00000 n
-0000751076 00000 n
-0000751243 00000 n
-0000751389 00000 n
-0000751561 00000 n
-0000751712 00000 n
-0000751871 00000 n
-0000752019 00000 n
-0000752177 00000 n
-0000752324 00000 n
-0000752478 00000 n
-0000752622 00000 n
-0000752794 00000 n
-0000752945 00000 n
-0000753106 00000 n
-0000753256 00000 n
-0000753415 00000 n
-0000753564 00000 n
-0000753724 00000 n
-0000753873 00000 n
-0000754039 00000 n
-0000754184 00000 n
-0000754354 00000 n
-0000754503 00000 n
-0000754662 00000 n
-0000754810 00000 n
-0000754956 00000 n
-0000755091 00000 n
-0000755245 00000 n
-0000755378 00000 n
-0000755537 00000 n
-0000755675 00000 n
-0000755823 00000 n
-0000755961 00000 n
-0000756130 00000 n
-0000756278 00000 n
-0000756442 00000 n
-0000756586 00000 n
-0000756756 00000 n
-0000756905 00000 n
-0000757064 00000 n
-0000757213 00000 n
-0000757382 00000 n
-0000757530 00000 n
-0000757693 00000 n
-0000757837 00000 n
-0000758007 00000 n
-0000758156 00000 n
-0000758315 00000 n
-0000758464 00000 n
-0000758622 00000 n
-0000758769 00000 n
-0000758938 00000 n
-0000759086 00000 n
-0000759252 00000 n
-0000759397 00000 n
-0000759568 00000 n
-0000759718 00000 n
-0000759878 00000 n
-0000760028 00000 n
-0000760191 00000 n
-0000760335 00000 n
-0000760505 00000 n
-0000760654 00000 n
-0000760814 00000 n
-0000760964 00000 n
-0000761135 00000 n
-0000761285 00000 n
-0000761441 00000 n
-0000761586 00000 n
-0000761745 00000 n
-0000761894 00000 n
-0000762063 00000 n
-0000762211 00000 n
-0000762366 00000 n
-0000762511 00000 n
-0000762683 00000 n
-0000762834 00000 n
-0000762994 00000 n
-0000763144 00000 n
-0000763313 00000 n
-0000763461 00000 n
-0000763627 00000 n
-0000763773 00000 n
-0000763946 00000 n
-0000764098 00000 n
-0000764259 00000 n
-0000764410 00000 n
-0000764581 00000 n
-0000764731 00000 n
-0000764897 00000 n
-0000765043 00000 n
-0000765216 00000 n
-0000765368 00000 n
-0000765529 00000 n
-0000765680 00000 n
-0000765850 00000 n
-0000765999 00000 n
-0000766162 00000 n
-0000766323 00000 n
-0000766463 00000 n
-0000766604 00000 n
-0000766764 00000 n
-0000766902 00000 n
-0000767050 00000 n
-0000767187 00000 n
-0000767345 00000 n
-0000767481 00000 n
-0000767646 00000 n
-0000767789 00000 n
-0000767960 00000 n
-0000768109 00000 n
-0000768268 00000 n
-0000768416 00000 n
-0000768585 00000 n
-0000768732 00000 n
-0000768886 00000 n
-0000769029 00000 n
-0000769200 00000 n
-0000769349 00000 n
-0000769508 00000 n
-0000769656 00000 n
-0000769825 00000 n
-0000769972 00000 n
-0000770137 00000 n
-0000770280 00000 n
-0000770451 00000 n
-0000770600 00000 n
-0000770760 00000 n
-0000770909 00000 n
-0000771079 00000 n
-0000771227 00000 n
-0000771391 00000 n
-0000771535 00000 n
-0000771706 00000 n
-0000771855 00000 n
-0000772014 00000 n
-0000772162 00000 n
-0000772332 00000 n
-0000772480 00000 n
-0000772645 00000 n
-0000772790 00000 n
-0000772962 00000 n
-0000773112 00000 n
-0000773271 00000 n
-0000773419 00000 n
-0000773577 00000 n
-0000773723 00000 n
-0000773893 00000 n
-0000774041 00000 n
-0000774207 00000 n
-0000774351 00000 n
-0000774523 00000 n
-0000774673 00000 n
-0000774832 00000 n
-0000774980 00000 n
-0000775140 00000 n
-0000775288 00000 n
-0000775459 00000 n
-0000775608 00000 n
-0000775772 00000 n
-0000775917 00000 n
-0000776090 00000 n
-0000776241 00000 n
-0000776402 00000 n
-0000776552 00000 n
-0000776712 00000 n
-0000776860 00000 n
-0000777031 00000 n
-0000777180 00000 n
-0000777336 00000 n
-0000777480 00000 n
-0000777649 00000 n
-0000777796 00000 n
-0000777955 00000 n
-0000778103 00000 n
-0000778260 00000 n
-0000778395 00000 n
-0000778547 00000 n
-0000778680 00000 n
-0000778840 00000 n
-0000778978 00000 n
-0000779126 00000 n
-0000779263 00000 n
-0000779421 00000 n
-0000779567 00000 n
-0000779736 00000 n
-0000779883 00000 n
-0000780046 00000 n
-0000780189 00000 n
-0000780348 00000 n
-0000780496 00000 n
-0000780665 00000 n
-0000780812 00000 n
-0000780978 00000 n
-0000781122 00000 n
-0000781293 00000 n
-0000781442 00000 n
-0000781601 00000 n
-0000781749 00000 n
-0000781918 00000 n
-0000782065 00000 n
-0000782230 00000 n
-0000782373 00000 n
-0000782545 00000 n
-0000782695 00000 n
-0000782855 00000 n
-0000783004 00000 n
-0000783174 00000 n
-0000783322 00000 n
-0000783488 00000 n
-0000783632 00000 n
-0000783803 00000 n
-0000783952 00000 n
-0000784112 00000 n
-0000784261 00000 n
-0000784421 00000 n
-0000784569 00000 n
-0000784739 00000 n
-0000784887 00000 n
-0000785043 00000 n
-0000785187 00000 n
-0000785346 00000 n
-0000785494 00000 n
-0000785664 00000 n
-0000785812 00000 n
-0000785968 00000 n
-0000786113 00000 n
-0000786273 00000 n
-0000786422 00000 n
-0000786591 00000 n
-0000786738 00000 n
-0000786906 00000 n
-0000787052 00000 n
-0000787225 00000 n
-0000787376 00000 n
-0000787537 00000 n
-0000787687 00000 n
-0000787858 00000 n
-0000788007 00000 n
-0000788178 00000 n
-0000788327 00000 n
-0000788503 00000 n
-0000788657 00000 n
-0000788832 00000 n
-0000788985 00000 n
-0000789144 00000 n
-0000789291 00000 n
-0000789454 00000 n
-0000789605 00000 n
-0000789769 00000 n
-0000789922 00000 n
-0000790078 00000 n
-0000790224 00000 n
-0000790380 00000 n
-0000790514 00000 n
-0000790669 00000 n
-0000790802 00000 n
-0000790959 00000 n
-0000791094 00000 n
-0000791265 00000 n
-0000791414 00000 n
-0000791576 00000 n
-0000791716 00000 n
-0000791879 00000 n
-0000792031 00000 n
-0000792196 00000 n
-0000792339 00000 n
-0000792509 00000 n
-0000792657 00000 n
-0000792841 00000 n
-0000793005 00000 n
-0000793181 00000 n
-0000793335 00000 n
-0000793499 00000 n
-0000793641 00000 n
-0000793816 00000 n
-0000793969 00000 n
-0000794138 00000 n
-0000794285 00000 n
-0000794451 00000 n
-0000794595 00000 n
-0000794880 00000 n
-0000794959 00000 n
-0000795123 00000 n
-0000795314 00000 n
-0000795542 00000 n
-0000795759 00000 n
-0000795929 00000 n
-0000796147 00000 n
-0000796393 00000 n
-0000796566 00000 n
-0000796747 00000 n
-0000797012 00000 n
-0000797197 00000 n
-0000797378 00000 n
-0000797659 00000 n
-0000797844 00000 n
-0000798025 00000 n
-0000798282 00000 n
-0000798455 00000 n
-0000798636 00000 n
-0000798892 00000 n
-0000799081 00000 n
-0000799280 00000 n
-0000799475 00000 n
-0000799656 00000 n
-0000799977 00000 n
-0000800163 00000 n
-0000800332 00000 n
-0000800656 00000 n
-0000800845 00000 n
-0000801044 00000 n
-0000801225 00000 n
-0000801509 00000 n
-0000801699 00000 n
-0000801899 00000 n
-0000802095 00000 n
-0000802264 00000 n
-0000802560 00000 n
-0000802749 00000 n
-0000802948 00000 n
-0000803129 00000 n
-0000803514 00000 n
-0000803708 00000 n
-0000803911 00000 n
-0000804097 00000 n
-0000804609 00000 n
-0000804802 00000 n
-0000805006 00000 n
-0000805191 00000 n
-0000805616 00000 n
-0000805810 00000 n
-0000806014 00000 n
-0000806213 00000 n
-0000806398 00000 n
-0000806706 00000 n
-0000806899 00000 n
-0000807088 00000 n
-0000807396 00000 n
-0000807589 00000 n
-0000807793 00000 n
-0000807967 00000 n
-0000808252 00000 n
-0000808442 00000 n
-0000808628 00000 n
-0000808950 00000 n
-0000809144 00000 n
-0000809349 00000 n
-0000809536 00000 n
-0000810062 00000 n
-0000810256 00000 n
-0000810460 00000 n
-0000810635 00000 n
-0000811153 00000 n
-0000811348 00000 n
-0000811553 00000 n
-0000811739 00000 n
-0000812316 00000 n
-0000812510 00000 n
-0000812714 00000 n
-0000812900 00000 n
-0000813213 00000 n
-0000813407 00000 n
-0000813612 00000 n
-0000813798 00000 n
-0000814099 00000 n
-0000814293 00000 n
-0000814498 00000 n
-0000814684 00000 n
-0000814994 00000 n
-0000815189 00000 n
+0000000825 00000 n
+0000000876 00000 n
+0000001030 00000 n
+0000001274 00000 n
+0000001452 00000 n
+0000001619 00000 n
+0000032859 00000 n
+0000033637 00000 n
+0000064848 00000 n
+0000065638 00000 n
+0000097137 00000 n
+0000097927 00000 n
+0000129710 00000 n
+0000130508 00000 n
+0000151897 00000 n
+0000152487 00000 n
+0000154919 00000 n
+0000155156 00000 n
+0000155199 00000 n
+0000155248 00000 n
+0000155386 00000 n
+0000155559 00000 n
+0000155614 00000 n
+0000155789 00000 n
+0000155833 00000 n
+0000168038 00000 n
+0000168299 00000 n
+0000168342 00000 n
+0000168397 00000 n
+0000168440 00000 n
+0000168612 00000 n
+0000168667 00000 n
+0000168842 00000 n
+0000168898 00000 n
+0000168953 00000 n
+0000169008 00000 n
+0000169064 00000 n
+0000169119 00000 n
+0000169284 00000 n
+0000169339 00000 n
+0000169395 00000 n
+0000185870 00000 n
+0000186151 00000 n
+0000186194 00000 n
+0000186350 00000 n
+0000186405 00000 n
+0000186460 00000 n
+0000186515 00000 n
+0000186670 00000 n
+0000186725 00000 n
+0000186883 00000 n
+0000186938 00000 n
+0000186993 00000 n
+0000187295 00000 n
+0000187605 00000 n
+0000187661 00000 n
+0000187717 00000 n
+0000206002 00000 n
+0000206283 00000 n
+0000206326 00000 n
+0000206381 00000 n
+0000206436 00000 n
+0000206491 00000 n
+0000206648 00000 n
+0000206703 00000 n
+0000206758 00000 n
+0000206814 00000 n
+0000206970 00000 n
+0000207026 00000 n
+0000207184 00000 n
+0000207240 00000 n
+0000222968 00000 n
+0000223218 00000 n
+0000223261 00000 n
+0000223316 00000 n
+0000223371 00000 n
+0000223426 00000 n
+0000223481 00000 n
+0000223537 00000 n
+0000223593 00000 n
+0000223648 00000 n
+0000224032 00000 n
+0000224088 00000 n
+0000241574 00000 n
+0000241841 00000 n
+0000241884 00000 n
+0000241939 00000 n
+0000242257 00000 n
+0000242313 00000 n
+0000242474 00000 n
+0000242529 00000 n
+0000242585 00000 n
+0000242641 00000 n
+0000260676 00000 n
+0000260951 00000 n
+0000260994 00000 n
+0000261155 00000 n
+0000261211 00000 n
+0000261267 00000 n
+0000261323 00000 n
+0000261379 00000 n
+0000261435 00000 n
+0000261491 00000 n
+0000261547 00000 n
+0000261604 00000 n
+0000261766 00000 n
+0000275423 00000 n
+0000275693 00000 n
+0000275738 00000 n
+0000275795 00000 n
+0000275852 00000 n
+0000275909 00000 n
+0000275967 00000 n
+0000276024 00000 n
+0000276082 00000 n
+0000276244 00000 n
+0000276302 00000 n
+0000276360 00000 n
+0000276417 00000 n
+0000295564 00000 n
+0000295842 00000 n
+0000295899 00000 n
+0000296041 00000 n
+0000296087 00000 n
+0000296145 00000 n
+0000296203 00000 n
+0000296261 00000 n
+0000296425 00000 n
+0000296482 00000 n
+0000313788 00000 n
+0000314058 00000 n
+0000314103 00000 n
+0000314160 00000 n
+0000314217 00000 n
+0000314381 00000 n
+0000314438 00000 n
+0000314495 00000 n
+0000314761 00000 n
+0000314818 00000 n
+0000314876 00000 n
+0000334004 00000 n
+0000334290 00000 n
+0000334442 00000 n
+0000334499 00000 n
+0000334556 00000 n
+0000334613 00000 n
+0000334671 00000 n
+0000334982 00000 n
+0000335145 00000 n
+0000335202 00000 n
+0000335502 00000 n
+0000335560 00000 n
+0000335618 00000 n
+0000335942 00000 n
+0000336000 00000 n
+0000336163 00000 n
+0000354513 00000 n
+0000354799 00000 n
+0000354844 00000 n
+0000354901 00000 n
+0000354958 00000 n
+0000355015 00000 n
+0000355178 00000 n
+0000355235 00000 n
+0000355292 00000 n
+0000355350 00000 n
+0000355507 00000 n
+0000355565 00000 n
+0000355729 00000 n
+0000355787 00000 n
+0000372878 00000 n
+0000373164 00000 n
+0000373209 00000 n
+0000373266 00000 n
+0000373323 00000 n
+0000373486 00000 n
+0000373544 00000 n
+0000373721 00000 n
+0000373778 00000 n
+0000373836 00000 n
+0000373894 00000 n
+0000373952 00000 n
+0000374109 00000 n
+0000390496 00000 n
+0000390782 00000 n
+0000390827 00000 n
+0000390989 00000 n
+0000391046 00000 n
+0000391103 00000 n
+0000391160 00000 n
+0000391217 00000 n
+0000391274 00000 n
+0000391437 00000 n
+0000391495 00000 n
+0000391552 00000 n
+0000391609 00000 n
+0000391769 00000 n
+0000405815 00000 n
+0000406085 00000 n
+0000406130 00000 n
+0000406187 00000 n
+0000406244 00000 n
+0000406400 00000 n
+0000406457 00000 n
+0000406514 00000 n
+0000406572 00000 n
+0000406629 00000 n
+0000406686 00000 n
+0000406744 00000 n
+0000423293 00000 n
+0000423571 00000 n
+0000423616 00000 n
+0000423673 00000 n
+0000423830 00000 n
+0000423888 00000 n
+0000424394 00000 n
+0000424552 00000 n
+0000424609 00000 n
+0000424667 00000 n
+0000424725 00000 n
+0000443977 00000 n
+0000444247 00000 n
+0000444292 00000 n
+0000444349 00000 n
+0000444407 00000 n
+0000444464 00000 n
+0000444625 00000 n
+0000444682 00000 n
+0000444740 00000 n
+0000444798 00000 n
+0000445170 00000 n
+0000462687 00000 n
+0000462957 00000 n
+0000463014 00000 n
+0000463071 00000 n
+0000463469 00000 n
+0000463526 00000 n
+0000463583 00000 n
+0000463640 00000 n
+0000463800 00000 n
+0000463857 00000 n
+0000463915 00000 n
+0000480278 00000 n
+0000480556 00000 n
+0000480601 00000 n
+0000480771 00000 n
+0000480828 00000 n
+0000480885 00000 n
+0000481178 00000 n
+0000481235 00000 n
+0000481292 00000 n
+0000481349 00000 n
+0000481407 00000 n
+0000481465 00000 n
+0000481637 00000 n
+0000481695 00000 n
+0000498893 00000 n
+0000499150 00000 n
+0000499195 00000 n
+0000499252 00000 n
+0000499298 00000 n
+0000499356 00000 n
+0000499534 00000 n
+0000519442 00000 n
+0000519699 00000 n
+0000519745 00000 n
+0000520060 00000 n
+0000520214 00000 n
+0000520272 00000 n
+0000540818 00000 n
+0000541091 00000 n
+0000541252 00000 n
+0000541309 00000 n
+0000541366 00000 n
+0000541536 00000 n
+0000541703 00000 n
+0000563114 00000 n
+0000563387 00000 n
+0000563536 00000 n
+0000563707 00000 n
+0000563866 00000 n
+0000563923 00000 n
+0000585748 00000 n
+0000586037 00000 n
+0000586205 00000 n
+0000586352 00000 n
+0000586501 00000 n
+0000586652 00000 n
+0000586812 00000 n
+0000586870 00000 n
+0000609832 00000 n
+0000610121 00000 n
+0000610290 00000 n
+0000610458 00000 n
+0000610628 00000 n
+0000610800 00000 n
+0000610960 00000 n
+0000632637 00000 n
+0000632926 00000 n
+0000632971 00000 n
+0000633130 00000 n
+0000633288 00000 n
+0000633448 00000 n
+0000633599 00000 n
+0000633749 00000 n
+0000655507 00000 n
+0000655788 00000 n
+0000655845 00000 n
+0000656014 00000 n
+0000656182 00000 n
+0000656352 00000 n
+0000656524 00000 n
+0000678195 00000 n
+0000678468 00000 n
+0000678627 00000 n
+0000678684 00000 n
+0000678855 00000 n
+0000679024 00000 n
+0000702191 00000 n
+0000702488 00000 n
+0000702634 00000 n
+0000702805 00000 n
+0000702962 00000 n
+0000703102 00000 n
+0000703279 00000 n
+0000703336 00000 n
+0000703505 00000 n
+0000723965 00000 n
+0000724230 00000 n
+0000724397 00000 n
+0000724443 00000 n
+0000724913 00000 n
+0000725076 00000 n
+0000725134 00000 n
+0000746264 00000 n
+0000746553 00000 n
+0000746720 00000 n
+0000746860 00000 n
+0000746918 00000 n
+0000747094 00000 n
+0000747266 00000 n
+0000747324 00000 n
+0000747494 00000 n
+0000767262 00000 n
+0000767543 00000 n
+0000767712 00000 n
+0000767867 00000 n
+0000768011 00000 n
+0000768175 00000 n
+0000768232 00000 n
+0000788833 00000 n
+0000789122 00000 n
+0000789167 00000 n
+0000789336 00000 n
+0000789485 00000 n
+0000789648 00000 n
+0000789803 00000 n
+0000789958 00000 n
+0000790004 00000 n
+0000807070 00000 n
+0000807351 00000 n
+0000807500 00000 n
+0000807675 00000 n
+0000807720 00000 n
+0000807880 00000 n
+0000808050 00000 n
+0000808194 00000 n
+0000808339 00000 n
+0000808504 00000 n
+0000808660 00000 n
+0000808818 00000 n
+0000808965 00000 n
+0000809127 00000 n
+0000809269 00000 n
+0000809434 00000 n
+0000809578 00000 n
+0000809735 00000 n
+0000809881 00000 n
+0000810037 00000 n
+0000810182 00000 n
+0000810337 00000 n
+0000810481 00000 n
+0000810640 00000 n
+0000810788 00000 n
+0000810946 00000 n
+0000811093 00000 n
+0000811259 00000 n
+0000811404 00000 n
+0000811564 00000 n
+0000811713 00000 n
+0000811871 00000 n
+0000812018 00000 n
+0000812173 00000 n
+0000812318 00000 n
+0000812478 00000 n
+0000812627 00000 n
+0000812787 00000 n
+0000812936 00000 n
+0000813091 00000 n
+0000813236 00000 n
+0000813404 00000 n
+0000813551 00000 n
+0000813710 00000 n
+0000813858 00000 n
+0000814014 00000 n
+0000814160 00000 n
+0000814320 00000 n
+0000814469 00000 n
+0000814635 00000 n
+0000814780 00000 n
+0000814940 00000 n
+0000815089 00000 n
+0000815247 00000 n
0000815394 00000 n
-0000815568 00000 n
-0000815885 00000 n
-0000816079 00000 n
-0000816283 00000 n
-0000816469 00000 n
-0000816846 00000 n
-0000817041 00000 n
-0000817246 00000 n
-0000817447 00000 n
-0000817621 00000 n
-0000818006 00000 n
-0000818200 00000 n
-0000818405 00000 n
-0000818605 00000 n
-0000818792 00000 n
-0000819182 00000 n
-0000819377 00000 n
-0000819569 00000 n
-0000819769 00000 n
-0000819955 00000 n
-0000820236 00000 n
-0000820430 00000 n
-0000820634 00000 n
-0000820821 00000 n
-0000821114 00000 n
-0000821308 00000 n
-0000821500 00000 n
+0000815561 00000 n
+0000815707 00000 n
+0000815879 00000 n
+0000816030 00000 n
+0000816189 00000 n
+0000816337 00000 n
+0000816495 00000 n
+0000816642 00000 n
+0000816796 00000 n
+0000816940 00000 n
+0000817112 00000 n
+0000817263 00000 n
+0000817424 00000 n
+0000817574 00000 n
+0000817733 00000 n
+0000817882 00000 n
+0000818042 00000 n
+0000818191 00000 n
+0000818357 00000 n
+0000818502 00000 n
+0000818672 00000 n
+0000818821 00000 n
+0000818980 00000 n
+0000819128 00000 n
+0000819274 00000 n
+0000819409 00000 n
+0000819563 00000 n
+0000819696 00000 n
+0000819855 00000 n
+0000819993 00000 n
+0000820141 00000 n
+0000820279 00000 n
+0000820448 00000 n
+0000820596 00000 n
+0000820760 00000 n
+0000820904 00000 n
+0000821074 00000 n
+0000821223 00000 n
+0000821382 00000 n
+0000821531 00000 n
0000821700 00000 n
-0000821886 00000 n
-0000822175 00000 n
-0000822365 00000 n
-0000822552 00000 n
-0000823017 00000 n
-0000823212 00000 n
-0000823417 00000 n
-0000823603 00000 n
-0000824048 00000 n
-0000824242 00000 n
-0000824446 00000 n
-0000824633 00000 n
-0000825079 00000 n
-0000825274 00000 n
-0000825467 00000 n
-0000825667 00000 n
-0000825854 00000 n
-0000826100 00000 n
-0000826279 00000 n
-0000826466 00000 n
-0000826748 00000 n
-0000826939 00000 n
-0000827113 00000 n
-0000827416 00000 n
-0000827610 00000 n
-0000827814 00000 n
-0000828000 00000 n
-0000828228 00000 n
-0000828434 00000 n
-0000828639 00000 n
-0000828836 00000 n
+0000821848 00000 n
+0000822011 00000 n
+0000822155 00000 n
+0000822325 00000 n
+0000822474 00000 n
+0000822633 00000 n
+0000822782 00000 n
+0000822940 00000 n
+0000823087 00000 n
+0000823256 00000 n
+0000823404 00000 n
+0000823570 00000 n
+0000823715 00000 n
+0000823886 00000 n
+0000824036 00000 n
+0000824196 00000 n
+0000824346 00000 n
+0000824509 00000 n
+0000824653 00000 n
+0000824823 00000 n
+0000824972 00000 n
+0000825132 00000 n
+0000825282 00000 n
+0000825453 00000 n
+0000825603 00000 n
+0000825759 00000 n
+0000825904 00000 n
+0000826063 00000 n
+0000826212 00000 n
+0000826381 00000 n
+0000826529 00000 n
+0000826684 00000 n
+0000826829 00000 n
+0000827001 00000 n
+0000827152 00000 n
+0000827312 00000 n
+0000827462 00000 n
+0000827631 00000 n
+0000827779 00000 n
+0000827945 00000 n
+0000828091 00000 n
+0000828264 00000 n
+0000828416 00000 n
+0000828577 00000 n
+0000828728 00000 n
+0000828899 00000 n
0000829049 00000 n
-0000829274 00000 n
-0000829518 00000 n
-0000829710 00000 n
-0000829898 00000 n
-0000830095 00000 n
-0000830295 00000 n
-0000830471 00000 n
-0000830695 00000 n
-0000830871 00000 n
-0000831068 00000 n
-0000831340 00000 n
-0000831572 00000 n
-0000831757 00000 n
-0000831974 00000 n
-0000832179 00000 n
-0000832353 00000 n
-0000832993 00000 n
-0000841001 00000 n
-0000841217 00000 n
-0000842580 00000 n
-0000843647 00000 n
-0000851399 00000 n
-0000851620 00000 n
-0000852983 00000 n
-0000854060 00000 n
-0000857321 00000 n
-0000857547 00000 n
-0000858910 00000 n
-0000860026 00000 n
-0000862169 00000 n
-0000862383 00000 n
-0000863746 00000 n
+0000829215 00000 n
+0000829361 00000 n
+0000829534 00000 n
+0000829686 00000 n
+0000829847 00000 n
+0000829998 00000 n
+0000830168 00000 n
+0000830317 00000 n
+0000830480 00000 n
+0000830641 00000 n
+0000830781 00000 n
+0000830922 00000 n
+0000831082 00000 n
+0000831220 00000 n
+0000831368 00000 n
+0000831505 00000 n
+0000831663 00000 n
+0000831799 00000 n
+0000831964 00000 n
+0000832107 00000 n
+0000832278 00000 n
+0000832427 00000 n
+0000832586 00000 n
+0000832734 00000 n
+0000832903 00000 n
+0000833050 00000 n
+0000833204 00000 n
+0000833347 00000 n
+0000833518 00000 n
+0000833667 00000 n
+0000833826 00000 n
+0000833974 00000 n
+0000834143 00000 n
+0000834290 00000 n
+0000834455 00000 n
+0000834598 00000 n
+0000834769 00000 n
+0000834918 00000 n
+0000835078 00000 n
+0000835227 00000 n
+0000835397 00000 n
+0000835545 00000 n
+0000835709 00000 n
+0000835853 00000 n
+0000836024 00000 n
+0000836173 00000 n
+0000836332 00000 n
+0000836480 00000 n
+0000836650 00000 n
+0000836798 00000 n
+0000836963 00000 n
+0000837108 00000 n
+0000837280 00000 n
+0000837430 00000 n
+0000837589 00000 n
+0000837737 00000 n
+0000837895 00000 n
+0000838041 00000 n
+0000838211 00000 n
+0000838359 00000 n
+0000838525 00000 n
+0000838669 00000 n
+0000838841 00000 n
+0000838991 00000 n
+0000839150 00000 n
+0000839298 00000 n
+0000839458 00000 n
+0000839606 00000 n
+0000839777 00000 n
+0000839926 00000 n
+0000840090 00000 n
+0000840235 00000 n
+0000840408 00000 n
+0000840559 00000 n
+0000840720 00000 n
+0000840870 00000 n
+0000841030 00000 n
+0000841178 00000 n
+0000841349 00000 n
+0000841498 00000 n
+0000841654 00000 n
+0000841798 00000 n
+0000841967 00000 n
+0000842114 00000 n
+0000842273 00000 n
+0000842421 00000 n
+0000842578 00000 n
+0000842713 00000 n
+0000842857 00000 n
+0000842989 00000 n
+0000843137 00000 n
+0000843274 00000 n
+0000843432 00000 n
+0000843568 00000 n
+0000843733 00000 n
+0000843876 00000 n
+0000844047 00000 n
+0000844196 00000 n
+0000844355 00000 n
+0000844503 00000 n
+0000844661 00000 n
+0000844807 00000 n
+0000844972 00000 n
+0000845115 00000 n
+0000845286 00000 n
+0000845435 00000 n
+0000845594 00000 n
+0000845742 00000 n
+0000845900 00000 n
+0000846046 00000 n
+0000846210 00000 n
+0000846353 00000 n
+0000846524 00000 n
+0000846673 00000 n
+0000846833 00000 n
+0000846982 00000 n
+0000847141 00000 n
+0000847288 00000 n
+0000847458 00000 n
+0000847606 00000 n
+0000847768 00000 n
+0000847911 00000 n
+0000848082 00000 n
+0000848231 00000 n
+0000848391 00000 n
+0000848540 00000 n
+0000848705 00000 n
+0000848850 00000 n
+0000849010 00000 n
+0000849159 00000 n
+0000849328 00000 n
+0000849475 00000 n
+0000849640 00000 n
+0000849783 00000 n
+0000849955 00000 n
+0000850105 00000 n
+0000850265 00000 n
+0000850414 00000 n
+0000850584 00000 n
+0000850732 00000 n
+0000850897 00000 n
+0000851040 00000 n
+0000851213 00000 n
+0000851364 00000 n
+0000851525 00000 n
+0000851675 00000 n
+0000851846 00000 n
+0000851995 00000 n
+0000852152 00000 n
+0000852297 00000 n
+0000852458 00000 n
+0000852608 00000 n
+0000852779 00000 n
+0000852928 00000 n
+0000853084 00000 n
+0000853229 00000 n
+0000853389 00000 n
+0000853538 00000 n
+0000853705 00000 n
+0000853850 00000 n
+0000854015 00000 n
+0000854158 00000 n
+0000854317 00000 n
+0000854454 00000 n
+0000854602 00000 n
+0000854739 00000 n
+0000854897 00000 n
+0000855033 00000 n
+0000855191 00000 n
+0000855327 00000 n
+0000855501 00000 n
+0000855653 00000 n
+0000855826 00000 n
+0000855977 00000 n
+0000856135 00000 n
+0000856281 00000 n
+0000856446 00000 n
+0000856599 00000 n
+0000856763 00000 n
+0000856916 00000 n
+0000857096 00000 n
+0000857254 00000 n
+0000857421 00000 n
+0000857566 00000 n
+0000857735 00000 n
+0000857882 00000 n
+0000858048 00000 n
+0000858192 00000 n
+0000858349 00000 n
+0000858495 00000 n
+0000858667 00000 n
+0000858817 00000 n
+0000858980 00000 n
+0000859121 00000 n
+0000859285 00000 n
+0000859438 00000 n
+0000859603 00000 n
+0000859746 00000 n
+0000859916 00000 n
+0000860064 00000 n
+0000860249 00000 n
+0000860414 00000 n
+0000860592 00000 n
+0000860748 00000 n
+0000860913 00000 n
+0000861056 00000 n
+0000861231 00000 n
+0000861384 00000 n
+0000861553 00000 n
+0000861700 00000 n
+0000861866 00000 n
+0000862010 00000 n
+0000862295 00000 n
+0000862374 00000 n
+0000862538 00000 n
+0000862729 00000 n
+0000862957 00000 n
+0000863174 00000 n
+0000863344 00000 n
+0000863562 00000 n
+0000863808 00000 n
+0000863981 00000 n
+0000864162 00000 n
+0000864427 00000 n
+0000864612 00000 n
+0000864793 00000 n
+0000865074 00000 n
+0000865259 00000 n
+0000865440 00000 n
+0000865697 00000 n
+0000865870 00000 n
+0000866051 00000 n
+0000866307 00000 n
+0000866496 00000 n
+0000866695 00000 n
+0000866890 00000 n
+0000867071 00000 n
+0000867392 00000 n
+0000867578 00000 n
+0000867747 00000 n
+0000868071 00000 n
+0000868260 00000 n
+0000868459 00000 n
+0000868640 00000 n
+0000868924 00000 n
+0000869114 00000 n
+0000869314 00000 n
+0000869510 00000 n
+0000869679 00000 n
+0000869975 00000 n
+0000870164 00000 n
+0000870363 00000 n
+0000870544 00000 n
+0000870929 00000 n
+0000871123 00000 n
+0000871326 00000 n
+0000871512 00000 n
+0000872024 00000 n
+0000872217 00000 n
+0000872421 00000 n
+0000872606 00000 n
+0000873031 00000 n
+0000873225 00000 n
+0000873416 00000 n
+0000873615 00000 n
+0000873800 00000 n
+0000874108 00000 n
+0000874301 00000 n
+0000874490 00000 n
+0000874798 00000 n
+0000874991 00000 n
+0000875195 00000 n
+0000875369 00000 n
+0000875654 00000 n
+0000875844 00000 n
+0000876030 00000 n
+0000876352 00000 n
+0000876546 00000 n
+0000876751 00000 n
+0000876938 00000 n
+0000877464 00000 n
+0000877658 00000 n
+0000877862 00000 n
+0000878037 00000 n
+0000878555 00000 n
+0000878750 00000 n
+0000878955 00000 n
+0000879141 00000 n
+0000879718 00000 n
+0000879912 00000 n
+0000880116 00000 n
+0000880302 00000 n
+0000880615 00000 n
+0000880809 00000 n
+0000881014 00000 n
+0000881200 00000 n
+0000881501 00000 n
+0000881695 00000 n
+0000881900 00000 n
+0000882086 00000 n
+0000882396 00000 n
+0000882591 00000 n
+0000882796 00000 n
+0000882970 00000 n
+0000883287 00000 n
+0000883481 00000 n
+0000883685 00000 n
+0000883871 00000 n
+0000884248 00000 n
+0000884443 00000 n
+0000884648 00000 n
+0000884849 00000 n
+0000885023 00000 n
+0000885408 00000 n
+0000885602 00000 n
+0000885807 00000 n
+0000886007 00000 n
+0000886194 00000 n
+0000886584 00000 n
+0000886779 00000 n
+0000886971 00000 n
+0000887171 00000 n
+0000887357 00000 n
+0000887638 00000 n
+0000887832 00000 n
+0000888036 00000 n
+0000888223 00000 n
+0000888476 00000 n
+0000888666 00000 n
+0000888840 00000 n
+0000889149 00000 n
+0000889343 00000 n
+0000889547 00000 n
+0000889733 00000 n
+0000890035 00000 n
+0000890229 00000 n
+0000890433 00000 n
+0000890620 00000 n
+0000891137 00000 n
+0000891331 00000 n
+0000891536 00000 n
+0000891736 00000 n
+0000891923 00000 n
+0000892461 00000 n
+0000892643 00000 n
+0000892833 00000 n
+0000893123 00000 n
+0000893313 00000 n
+0000893499 00000 n
+0000893965 00000 n
+0000894160 00000 n
+0000894364 00000 n
+0000894550 00000 n
+0000894995 00000 n
+0000895189 00000 n
+0000895393 00000 n
+0000895579 00000 n
+0000895837 00000 n
+0000896015 00000 n
+0000896201 00000 n
+0000896482 00000 n
+0000896672 00000 n
+0000896858 00000 n
+0000897161 00000 n
+0000897356 00000 n
+0000897561 00000 n
+0000897748 00000 n
+0000897976 00000 n
+0000898182 00000 n
+0000898387 00000 n
+0000898584 00000 n
+0000898797 00000 n
+0000899022 00000 n
+0000899266 00000 n
+0000899458 00000 n
+0000899658 00000 n
+0000899847 00000 n
+0000900035 00000 n
+0000900247 00000 n
+0000900423 00000 n
+0000900647 00000 n
+0000900824 00000 n
+0000901033 00000 n
+0000901306 00000 n
+0000901539 00000 n
+0000901723 00000 n
+0000901939 00000 n
+0000902132 00000 n
+0000902294 00000 n
+0000902968 00000 n
+0000910976 00000 n
+0000911192 00000 n
+0000912555 00000 n
+0000913622 00000 n
+0000921374 00000 n
+0000921595 00000 n
+0000922958 00000 n
+0000924035 00000 n
+0000927296 00000 n
+0000927522 00000 n
+0000928885 00000 n
+0000930001 00000 n
+0000932144 00000 n
+0000932358 00000 n
+0000933721 00000 n
trailer
-<< /Size 860
+<< /Size 911
/Root 2 0 R
/Info 1 0 R
>>
startxref
-864872
+934847
%%EOF
diff --git a/docs/user-guide.rst b/docs/user-guide.rst
index b3c1535b2..5cfcf1abd 100644
--- a/docs/user-guide.rst
+++ b/docs/user-guide.rst
@@ -1,10 +1,10 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
-.. Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.
+.. Copyright (c) 2017-2021 AT&T Intellectual Property. All rights reserved.
-Control loop in CLAMP
----------------------
-There are 2 control loop levels in CLAMP:
+Control loop in Policy/CLAMP
+----------------------------
+There are 2 control loop levels in Policy/CLAMP:
- Control loop template: This is created from the DCAE blueprint (designed in the DCAE designer), and distributed by SDC to CLAMP.
- Control loop instance: Based on the template, it represents a physical control loop in the platform related to a service and a VNF.
@@ -116,8 +116,8 @@ In the *Loop Operations* menu, lists the operations to be perform to the loop.
|clamp-loop-operation-menu|
-Submitting the Control loop to policy
--------------------------------------
+Submitting the Control loop to core policy
+------------------------------------------
The SUBMIT operation can be used to send the configuration to policy engine.
If everything is successful, the status to the policy will become *SENT*. Clamp should also show proper logs in logs view.
diff --git a/models/pom.xml b/models/pom.xml
new file mode 100644
index 000000000..380ae0c03
--- /dev/null
+++ b/models/pom.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.policy.clamp</groupId>
+ <artifactId>policy-clamp</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>policy-clamp-models</artifactId>
+ <name>${project.artifactId}</name>
+</project>
diff --git a/participant/participant-impl/participant-impl-cds/pom.xml b/participant/participant-impl/participant-impl-cds/pom.xml
new file mode 100644
index 000000000..ccdd8bee7
--- /dev/null
+++ b/participant/participant-impl/participant-impl-cds/pom.xml
@@ -0,0 +1,34 @@
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.policy.clamp.participant</groupId>
+ <artifactId>policy-clamp-participant-impl</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>policy-clamp-participant-impl-cds</artifactId>
+ <name>${project.artifactId}</name>
+ <description>CDS participant, that allows CDS to partake in control loops</description>
+</project>
diff --git a/participant/participant-impl/participant-impl-dcae/pom.xml b/participant/participant-impl/participant-impl-dcae/pom.xml
new file mode 100644
index 000000000..6186ced61
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/pom.xml
@@ -0,0 +1,34 @@
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.policy.clamp.participant</groupId>
+ <artifactId>policy-clamp-participant-impl</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>policy-clamp-participant-impl-dcae</artifactId>
+ <name>${project.artifactId}</name>
+ <description>DCAE participant, that allows DCAE to partake in control loops</description>
+</project>
diff --git a/participant/participant-impl/participant-impl-kubernetes/pom.xml b/participant/participant-impl/participant-impl-kubernetes/pom.xml
new file mode 100644
index 000000000..a85c5fdbf
--- /dev/null
+++ b/participant/participant-impl/participant-impl-kubernetes/pom.xml
@@ -0,0 +1,34 @@
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.policy.clamp.participant</groupId>
+ <artifactId>policy-clamp-participant-impl</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>policy-clamp-participant-impl-kubernetes</artifactId>
+ <name>${project.artifactId}</name>
+ <description>Kubernetes participant, that allows microservices running in Kubernetes to partake in control loops</description>
+</project>
diff --git a/participant/participant-impl/participant-impl-policy/pom.xml b/participant/participant-impl/participant-impl-policy/pom.xml
new file mode 100644
index 000000000..a5a75626e
--- /dev/null
+++ b/participant/participant-impl/participant-impl-policy/pom.xml
@@ -0,0 +1,34 @@
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.policy.clamp.participant</groupId>
+ <artifactId>policy-clamp-participant-impl</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>policy-clamp-participant-impl-policy</artifactId>
+ <name>${project.artifactId}</name>
+ <description>Policy participant, that allows Policy to partake in control loops</description>
+</project>
diff --git a/participant/participant-impl/participant-impl-simulator/pom.xml b/participant/participant-impl/participant-impl-simulator/pom.xml
new file mode 100644
index 000000000..d54a23e53
--- /dev/null
+++ b/participant/participant-impl/participant-impl-simulator/pom.xml
@@ -0,0 +1,34 @@
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.policy.clamp.participant</groupId>
+ <artifactId>policy-clamp-participant-impl</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>policy-clamp-participant-impl-simulator</artifactId>
+ <name>${project.artifactId}</name>
+ <description>Participant simulator, used to test control loops</description>
+</project>
diff --git a/participant/participant-impl/pom.xml b/participant/participant-impl/pom.xml
new file mode 100644
index 000000000..6c67bfa51
--- /dev/null
+++ b/participant/participant-impl/pom.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.policy.clamp.participant</groupId>
+ <artifactId>policy-clamp-participant</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>policy-clamp-participant-impl</artifactId>
+ <name>${project.artifactId}</name>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>participant-impl-simulator</module>
+ <module>participant-impl-dcae</module>
+ <module>participant-impl-policy</module>
+ <module>participant-impl-cds</module>
+ <module>participant-impl-kubernetes</module>
+ </modules>
+</project>
diff --git a/participant/participant-intermediary/pom.xml b/participant/participant-intermediary/pom.xml
new file mode 100644
index 000000000..df354d46c
--- /dev/null
+++ b/participant/participant-intermediary/pom.xml
@@ -0,0 +1,37 @@
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.policy.clamp.participant</groupId>
+ <artifactId>policy-clamp-participant</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.onap.policy.clamp.participant</groupId>
+ <artifactId>policy-clamp-participant-intermediary</artifactId>
+ <name>${project.artifactId}</name>
+ <description>Common intermediary library for managing DMaaP participant messaging and holding participant and control
+ loop state</description>
+
+</project>
diff --git a/participant/pom.xml b/participant/pom.xml
new file mode 100644
index 000000000..c18ee14d0
--- /dev/null
+++ b/participant/pom.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.policy.clamp</groupId>
+ <artifactId>policy-clamp</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.onap.policy.clamp.participant</groupId>
+ <artifactId>policy-clamp-participant</artifactId>
+ <name>${project.artifactId}</name>
+ <description>participants that communicate with the runtime server to handle control loops</description>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>participant-intermediary</module>
+ <module>participant-impl</module>
+ </modules>
+</project>
diff --git a/pom.xml b/pom.xml
index 51498084f..6f86ff513 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,1335 +1,71 @@
-<?xml version="1.0" encoding="UTF-8"?>
<!--
============LICENSE_START=======================================================
- ONAP POLICY-CLAMP
- ================================================================================
- Copyright (C) 2017-2021 AT&T Intellectual Property. All rights
- reserved.
- Modifications Copyright (C) 2021 Nordix Foundation.
+ Copyright (C) 2021 Nordix Foundation.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
+ http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
- ============LICENSE_END============================================
- ===================================================================
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.onap.policy</groupId>
- <artifactId>clamp</artifactId>
- <version>6.0.3-SNAPSHOT</version>
- <name>policy-clamp</name>
+ ============LICENSE_END=========================================================
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.policy.parent</groupId>
<artifactId>integration</artifactId>
- <version>3.3.0</version>
- <relativePath/>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
- <description>
- This is the MAVEN project that builds everything for ONAP POLICY-CLAMP.
- Docker engine is normally requires to perfom all possible tasks (including integration tests)
-
- It can build:
- - The ONAP POLICY-CLAMP JAR that contains CLAMP back-end code.
- - The DOCKER images for:
- * POLICY-CLAMP backend (Java Spring)
- * POLICY-CLAMP frontend (Javscript React)
+ <groupId>org.onap.policy.clamp</groupId>
+ <artifactId>policy-clamp</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ <name>${project.artifactId}</name>
- It can test:
- - The POLICY-CLAMP backend, JAVA unit testing
- - The POLICY-CLAMP backend, JAVA integration tests (with Spring + docker mariadb database + docker policy/dcae
- emulator written in python)
- - The POLICY-CLAMP frontend, Javascript tests (NodeJS(NPM) + JEST and Enzyme for React)
-
- The test coverage for dev's can be found after a "clean install" build in:
- - Clamp backend: target/jacoco-dev.exec (unit tests + integration tests merged)
- or separately target/coverage-reports/jacoco.exec and target/coverage-reports/jacoco-it.exec
- - Clamp frontend: target/ui-react/coverage
-
- Useful mvn commands:
- - mvn clean install: Build Clamp backend JAR + unit tests + integration tests + NPM tests (+coverage for all)
- - mvn clean install -DskipITs=true: Build Clamp backend JAR + unit tests + NPM tests (+coverage for all), it
- does not require a DOCKER engine
- - mvn clean install -DskipTests -P docker: Build Clamp backend JAR + all docker images
-
- To start POLICY-CLAMP (Build it before):
- - Use docker-compose file in ./extra/docker/clamp/docker-compose.yml
- - Use the script located in ./extra/bin/start-backend.sh + start-frontend.sh
- - Use your IDE to use the Jar or start NVM/NPM
+ <packaging>pom</packaging>
+ <description>
+ This is the root Maven module for the policy-clamp project.
+
+ It contains the following modules:
+ - policy-clamp-common: Common code for all CLAMP modules
+ - policy-clamp-models: POJOs and other model code for REST and DMaaP messages and for persistence
+ - policy-clamp-runtime: The runtime server for CLAMP
+ - policy-clamp-participant: Modules for CLAMP control loop participants
+ o policy-clamp-participant-intermediary: A common JAR that handles participant state and DMaaP handling
+ o policy-clamp-participant-impl-cds: A standard participant for interworking with CDS
+ o policy-clamp-participant-impl-dcae: A standard participant for interworking with DCAE
+ o policy-clamp-participant-impl-kubernetes: A standard participant for Kubernetes microservices
+ o policy-clamp-participant-impl-policy: A standard participant for handling polcies for Policy Framework
+ o policy-clamp-participant-impl-simulator: A participant simulator for integration testing
</description>
<properties>
- <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
- <clamp.project.version>${project.version}</clamp.project.version>
- <clamp.build.timestamp>${maven.build.timestamp}</clamp.build.timestamp>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-
- <eelf.core.version>1.0.0</eelf.core.version>
- <camel.version>2.25.3</camel.version>
- <springboot.version>2.2.13.RELEASE</springboot.version>
-
- <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
- <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
- <sonar.coverage.jacoco.xmlReportPaths>${project.build.directory}/jacoco-html-xml-reports/jacoco.xml
- </sonar.coverage.jacoco.xmlReportPaths>
- <sonar.projectVersion>${project.version}</sonar.projectVersion>
- <sonar.log.level>DEBUG</sonar.log.level>
- <sonar.nodejs.executable>${project.build.directory}/${ui.react.src}/node/node</sonar.nodejs.executable>
- <sonar.verbose>true</sonar.verbose>
- <sonar.sources>src/main,${project.build.directory}/${ui.react.src}/src</sonar.sources>
- <sonar.exclusions>src/main/resources/**</sonar.exclusions>
- <sonar.scm.exclusions.disabled>true</sonar.scm.exclusions.disabled>
- <sonar.javascript.lcov.reportPaths>${project.build.directory}/${ui.react.src}/coverage/lcov.info
- </sonar.javascript.lcov.reportPaths>
- <sonar.coverage.exclusions>
- src/main/resources/**,target/ui-react/src/**/*.test.js,target/ui-react/src/setupTests.js
- </sonar.coverage.exclusions>
- <docker.push.registry>localhost:5000</docker.push.registry>
- <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
- <docker.skip.build>true</docker.skip.build>
- <docker.skip.push>true</docker.skip.push>
- <docker.skip.tag>true</docker.skip.tag>
- <skip.staging.artifacts>false</skip.staging.artifacts>
- <python.http.proxy.param/>
- <tomcat.version>9.0.37</tomcat.version>
- <ui.react.src>ui-react</ui.react.src>
- <ui.react.lib.src>ui-react-lib</ui.react.lib.src>
- <npm.publish.url>https://nexus3.onap.org/repository/npm.snapshot/</npm.publish.url>
-
- <policy.models.version>2.4.0</policy.models.version>
+ <policy.common.version>1.9.0-SNAPSHOT</policy.common.version>
+ <policy.models.version>2.5.0-SNAPSHOT</policy.models.version>
</properties>
- <profiles>
- <!-- BEGIN: NOT USABLE profiles, those are defined when specific flags are enabled -->
- <profile>
- <id>without-test</id>
- <activation>
- <property>
- <name>maven.test.skip</name>
- <value>true</value>
- </property>
- </activation>
- <properties>
- <docker.skip.run>true</docker.skip.run>
- <docker.skip>true</docker.skip>
- </properties>
- </profile>
- <profile>
- <id>without-IT-only</id>
- <activation>
- <property>
- <name>skipITs</name>
- <value>true</value>
- </property>
- </activation>
- <properties>
- <docker.skip.run>true</docker.skip.run>
- <docker.skip>true</docker.skip>
- </properties>
- </profile>
- <profile>
- <id>without-IT-only2</id>
- <activation>
- <property>
- <name>skipTests</name>
- <value>true</value>
- </property>
- </activation>
- <properties>
- <docker.skip.run>true</docker.skip.run>
- <docker.skip>true</docker.skip>
- </properties>
- </profile>
- <!-- END: NOT USABLE profiles, those are defined when specific flags are enabled -->
- <profile>
- <id>docker</id>
- <properties>
- <skip.staging.artifacts>true</skip.staging.artifacts>
- <docker.skip.build>false</docker.skip.build>
- <docker.skip.tag>false</docker.skip.tag>
- <docker.skip.push>false</docker.skip.push>
- <docker.skip>false</docker.skip>
- </properties>
- </profile>
- </profiles>
-
- <distributionManagement>
- <repository>
- <id>ecomp-releases</id>
- <name>ONAP Release Repository</name>
- <url>https://nexus.onap.org/content/repositories/releases/</url>
- </repository>
- <snapshotRepository>
- <id>ecomp-snapshots</id>
- <name>ONAP Snapshot Repository</name>
- <url>https://nexus.onap.org/content/repositories/snapshots/</url>
- </snapshotRepository>
- <site>
- <id>ecomp-site</id>
- <url>dav:https://nexus.onap.org/content/sites/site/org/onap/policy/clamp/${project.version}</url>
- </site>
- </distributionManagement>
-
- <repositories>
- <repository>
- <id>onap-public</id>
- <name>onap-public</name>
- <url>https://nexus.onap.org/content/repositories/public/</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- <repository>
- <id>ecomp-releases</id>
- <name>ONAP Release Repository</name>
- <url>https://nexus.onap.org/content/repositories/releases/</url>
- </repository>
- <repository>
- <id>ecomp-staging</id>
- <name>ONAP Staging Repository</name>
- <url>https://nexus.onap.org/content/repositories/staging/</url>
- </repository>
- <repository>
- <id>ecomp-snapshots</id>
- <name>ONAP Snapshot Repository</name>
- <url>https://nexus.onap.org/content/repositories/snapshots/</url>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- <releases>
- <enabled>false</enabled>
- </releases>
- </repository>
- <repository>
- <id>central</id>
- <url>http://repo1.maven.org/maven2/</url>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>onap-public</id>
- <name>onap-public</name>
- <url>https://nexus.onap.org/content/repositories/public/</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </pluginRepository>
- <pluginRepository>
- <id>central</id>
- <url>http://repo1.maven.org/maven2/</url>
- </pluginRepository>
- </pluginRepositories>
-
- <dependencyManagement>
- <dependencies>
- <!-- Spring Boot BOM -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-dependencies</artifactId>
- <version>${springboot.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- <!-- Camel BOM -->
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-spring-boot-dependencies</artifactId>
- <version>${camel.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
+ <modules>
+ <module>common</module>
+ <module>models</module>
+ <module>runtime</module>
+ <module>participant</module>
+ </modules>
<dependencies>
<dependency>
- <groupId>com.att.eelf</groupId>
- <artifactId>eelf-core</artifactId>
- <version>${eelf.core.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-module-junit4</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-api-mockito</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.codehaus.janino</groupId>
- <artifactId>janino</artifactId>
- <version>3.0.8</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tomcat.embed</groupId>
- <artifactId>tomcat-embed-core</artifactId>
- <version>${tomcat.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tomcat.embed</groupId>
- <artifactId>tomcat-embed-el</artifactId>
- <version>${tomcat.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tomcat.embed</groupId>
- <artifactId>tomcat-embed-websocket</artifactId>
- <version>${tomcat.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-annotations-api</artifactId>
- <version>${tomcat.version}</version>
- </dependency>
- <!-- For CAMEL -->
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-http4-starter</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-spring-boot-starter</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-jaxb-starter</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-servlet-starter</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-gson-starter</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-swagger-java-starter</artifactId>
- <exclusions>
- <exclusion>
- <groupId>javax.ws.rs</groupId>
- <artifactId>jsr311-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-ext</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <!-- Spring famework -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-json</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-tomcat</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-security</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-autoconfigure</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>com.vaadin.external.google</groupId>
- <artifactId>android-json</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- </dependency>
- <!-- Policy dependencies mainly for the models required -->
- <dependency>
- <groupId>org.onap.policy.models</groupId>
- <artifactId>policy-models-pdp</artifactId>
- <version>${policy.models.version}</version>
- </dependency>
-
- <!-- Others dependencies -->
- <!-- Jaxws is required for AAF -->
- <dependency>
- <groupId>javax.xml.ws</groupId>
- <artifactId>jaxws-api</artifactId>
- <version>2.3.1</version>
- </dependency>
- <dependency>
- <groupId>org.onap.aaf.authz</groupId>
- <artifactId>aaf-cadi-aaf</artifactId>
- <version>2.1.15</version>
- <exclusions>
- <exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- <version>1.2.3</version>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <version>1.2.3</version>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.6</version>
- </dependency>
- <dependency>
- <groupId>com.googlecode.json-simple</groupId>
- <artifactId>json-simple</artifactId>
- <version>1.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-vfs2</artifactId>
- <version>2.2</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.transaction</groupId>
- <artifactId>jta</artifactId>
- <version>1.1</version>
- </dependency>
- <dependency>
- <groupId>javax.persistence</groupId>
- <artifactId>persistence-api</artifactId>
- <version>1.0.2</version>
- </dependency>
- <!-- Other dependencies to fix nexus IQ reported vulnerabilities -->
- <dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>1.14</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.security</groupId>
- <artifactId>spring-security-web</artifactId>
- <version>5.2.3.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- <version>3.0.24</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.spec.javax.ws.rs</groupId>
- <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
- <version>1.0.1.Final</version>
- </dependency>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>27.0-jre</version>
- </dependency>
-
- <!-- Remove the MYSQL connector and replace it by Mariadb -->
- <dependency>
- <groupId>org.mariadb.jdbc</groupId>
- <artifactId>mariadb-java-client</artifactId>
- <version>2.6.2</version>
- </dependency>
- <!-- For SDC Controller -->
- <dependency>
- <groupId>org.onap.sdc.sdc-distribution-client</groupId>
- <artifactId>sdc-distribution-client</artifactId>
- <version>1.4.1</version>
- </dependency>
- <dependency>
- <groupId>org.onap.sdc.sdc-tosca</groupId>
- <artifactId>sdc-tosca</artifactId>
- <version>1.5.1</version>
- <exclusions>
- <exclusion>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.yaml</groupId>
- <artifactId>snakeyaml</artifactId>
- <version>1.26</version>
- </dependency>
- <dependency>
- <groupId>org.dom4j</groupId>
- <artifactId>dom4j</artifactId>
- <version>2.1.3</version>
- </dependency>
-
- <!-- TESTING -->
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
- <version>4.13</version>
- </dependency>
- <dependency>
- <groupId>org.assertj</groupId>
- <artifactId>assertj-core</artifactId>
- <version>3.10.0</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <version>2.28.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-api-mockito2</artifactId>
- <version>2.0.4</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-module-junit4</artifactId>
- <version>2.0.4</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.github.docker-java</groupId>
- <artifactId>docker-java-core</artifactId>
- <version>3.2.1</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>com.github.docker-java</groupId>
- <artifactId>docker-java</artifactId>
- <version>3.2.1</version>
- <scope>test</scope>
</dependency>
</dependencies>
-
- <build>
- <finalName>policy-clamp-backend</finalName>
-
- <testResources>
- <testResource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <excludes>
- <exclude>clds/aaf/**</exclude>
- </excludes>
- </testResource>
- <testResource>
- <directory>src/main/resources</directory>
- <filtering>false</filtering>
- <includes>
- <include>clds/aaf/**</include>
- </includes>
- </testResource>
- <testResource>
- <directory>src/test/resources</directory>
- <excludes>
- <exclude>**/*.jks</exclude>
- <exclude>**/*.csar</exclude>
- </excludes>
- <filtering>true</filtering>
- </testResource>
- <testResource>
- <directory>src/test/resources/https</directory>
- <includes>
- <include>**.jks</include>
- </includes>
- <filtering>false</filtering>
- <targetPath>https</targetPath>
- </testResource>
- <testResource>
- <directory>src/test/resources/example/sdc</directory>
- <includes>
- <include>**.csar</include>
- </includes>
- <filtering>false</filtering>
- <targetPath>example/sdc</targetPath>
- </testResource>
- </testResources>
- <resources>
- <!-- For AAF folder maven should not try to filter Keystores/Truststores ... Otherwise
- they will be broken and unreadable -->
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <excludes>
- <exclude>clds/aaf/**</exclude>
- </excludes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>false</filtering>
- <includes>
- <include>clds/aaf/**</include>
- </includes>
- </resource>
- <resource>
- <directory>${ui.react.src}</directory>
- <excludes>
- <exclude>node_modules</exclude>
- </excludes>
- <includes>
- <include>src/**</include>
- <include>public/**</include>
- <include>package.json</include>
- <include>package-lock.json</include>
- </includes>
- <filtering>true</filtering>
- <targetPath>${project.build.directory}/${ui.react.src}</targetPath>
- </resource>
- <resource>
- <directory>${ui.react.src}</directory>
- <includes>
- <include>src/**</include>
- </includes>
- <excludes>
- <exclude>**/__snapshots__/**</exclude>
- <exclude>**/**.test.js</exclude>
- </excludes>
- <filtering>true</filtering>
- <targetPath>${project.build.directory}/${ui.react.lib.src}</targetPath>
- </resource>
- <resource>
- <directory>${ui.react.lib.src}</directory>
- <includes>
- <include>**</include>
- </includes>
- <excludes>
- <exclude>node_modules/**</exclude>
- <exclude>package-lock.json</exclude>
- </excludes>
- <filtering>true</filtering>
- <targetPath>${project.build.directory}/${ui.react.lib.src}</targetPath>
- </resource>
- </resources>
-
- <plugins>
- <plugin>
- <groupId>de.jpdigital</groupId>
- <artifactId>hibernate52-ddl-maven-plugin</artifactId>
- <version>2.2.0</version>
- <dependencies>
- <dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- <version>2.3.0</version>
- </dependency>
- </dependencies>
- <executions>
- <execution>
- <phase>process-classes</phase>
- <goals>
- <goal>gen-ddl</goal>
- </goals>
- <configuration>
- <packages>
- <param>org.onap.policy.clamp</param>
- </packages>
- <dialects>
- <param>MARIADB53</param>
- </dialects>
- <outputDirectory>${project.basedir}/extra/sql/bulkload/</outputDirectory>
- <outputFileNameSuffix>create-tables</outputFileNameSuffix>
- <!-- <createDropStatements>true</createDropStatements> -->
- <omitDialectFromFileName>true</omitDialectFromFileName>
- </configuration>
- </execution>
- </executions>
-
- </plugin>
- <!-- Read the swagger.json file and the definition from SwaggerConfig.java; generate
- a list of .adoc files containing the APIs info in more structured way -->
- <plugin>
- <groupId>io.github.swagger2markup</groupId>
- <artifactId>swagger2markup-maven-plugin</artifactId>
- <version>1.3.3</version>
- <dependencies>
- <dependency>
- <groupId>io.github.swagger2markup</groupId>
- <artifactId>swagger2markup-import-files-ext</artifactId>
- <version>1.3.3</version>
- </dependency>
- <dependency>
- <groupId>io.github.swagger2markup</groupId>
- <artifactId>swagger2markup-spring-restdocs-ext</artifactId>
- <version>1.3.3</version>
- </dependency>
- </dependencies>
- <configuration>
- <swaggerInput>${project.basedir}/docs/swagger/swagger.json</swaggerInput>
- <outputDir>${project.build.directory}/asciidoc/generated</outputDir>
- <config>
- <swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
- </config>
- </configuration>
- <executions>
- <execution>
- <phase>post-integration-test</phase>
- <goals>
- <goal>convertSwagger2markup</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <!-- Run the generated asciidoc through Asciidoctor to generate other documentation
- types, such as PDFs or HTML5 -->
- <plugin>
- <groupId>org.asciidoctor</groupId>
- <artifactId>asciidoctor-maven-plugin</artifactId>
- <version>1.5.7.1</version>
- <dependencies>
- <dependency>
- <groupId>org.asciidoctor</groupId>
- <artifactId>asciidoctorj-pdf</artifactId>
- <version>1.5.0-alpha.10.1</version>
- </dependency>
- </dependencies>
- <configuration>
- <sourceDirectory>${project.basedir}/src/main/resources/asciidoc</sourceDirectory>
- <sourceDocumentName>swagger.adoc</sourceDocumentName>
- <attributes>
- <doctype>book</doctype>
- <toc>left</toc>
- <toclevels>3</toclevels>
- <numbered/>
- <hardbreaks/>
- <sectlinks/>
- <sectanchors/>
- <generated>${project.build.directory}/asciidoc/generated</generated>
- </attributes>
- </configuration>
-
- <executions>
- <execution>
- <id>output-html</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>process-asciidoc</goal>
- </goals>
- <configuration>
- <backend>html5</backend>
- <outputDirectory>${project.basedir}/docs/swagger</outputDirectory>
- <outputDirectory>${project.basedir}/src/main/resources/META-INF/resources/</outputDirectory>
- </configuration>
- </execution>
- <execution>
- <id>output-pdf</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>process-asciidoc</goal>
- </goals>
- <configuration>
- <backend>pdf</backend>
- <outputDirectory>${project.basedir}/docs/swagger</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.groovy.maven</groupId>
- <artifactId>gmaven-plugin</artifactId>
- <version>1.0</version>
- <executions>
- <execution>
- <id>docker-tags</id>
- <phase>validate</phase>
- <goals>
- <goal>execute</goal>
- </goals>
- <configuration>
- <source>${project.basedir}/src/main/script/TagVersion.groovy</source>
- </configuration>
- </execution>
- <execution>
- <id>npm-repos-selection</id>
- <phase>validate</phase>
- <goals>
- <goal>execute</goal>
- </goals>
- <configuration>
- <source>${project.basedir}/src/main/script/SelectNpmRepo.groovy</source>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>3.0.2</version>
- <executions>
- <execution>
- <id>jar-with-only-classes</id>
- <phase>package</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- <configuration>
- <classifier>classes</classifier>
- <includes>
- <include>org/**</include>
- </includes>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>3.0.0</version>
- <executions>
- <execution>
- <goals>
- <goal>attach-artifact</goal>
- </goals>
- <phase>package</phase>
- <configuration>
- <artifacts>
- <artifact>
- <file>${project.build.directory}/policy-clamp-backend-classes.jar</file>
- <type>jar</type>
- <classifier>classes</classifier>
- </artifact>
- </artifacts>
- </configuration>
- </execution>
- <execution>
- <id>reserve-port-for-tests</id>
- <phase>process-resources</phase>
- <goals>
- <goal>reserve-network-port</goal>
- </goals>
- <configuration>
- <portNames>
- <portName>docker.mariadb.port.host</portName>
- <portName>docker.http-cache.port.host</portName>
- <portName>clamp.it.tests.http-redirected</portName>
- <portName>clamp.it.tests.robotframework.http</portName>
- <portName>clamp.it.tests.https</portName>
- <portName>clamp.it.tests.http</portName>
- </portNames>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <version>${springboot.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>repackage</goal>
- </goals>
- <phase>package</phase>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.22.2</version>
- <configuration>
- <forkCount>1C</forkCount>
- <reuseForks>true</reuseForks>
- <useSystemClassLoader>false</useSystemClassLoader>
- <argLine>${surefireArgLine}</argLine>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-failsafe-plugin</artifactId>
- <version>2.22.2</version>
- <executions>
- <execution>
- <id>integration-tests</id>
- <goals>
- <goal>integration-test</goal>
- <goal>verify</goal>
- </goals>
- <configuration>
- <additionalClasspathElements>
- <additionalClasspathElement>${project.build.directory}/classes
- </additionalClasspathElement>
- </additionalClasspathElements>
- <includes>
- <include>**/*ItCase.java</include>
- </includes>
- <forkCount>1C</forkCount>
- <reuseForks>true</reuseForks>
- <useSystemClassLoader>false</useSystemClassLoader>
- <argLine>${failsafeArgLine}</argLine>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>io.fabric8</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>0.31.0</version>
- <dependencies>
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- <version>4.5.5</version>
- </dependency>
- </dependencies>
- <configuration>
- <verbose>true</verbose>
- <apiVersion>1.35</apiVersion>
- <images>
- <image>
- <name>docker.io/mariadb:10.5.4</name>
- <alias>mariadb</alias>
- <run>
- <env>
- <MYSQL_ROOT_PASSWORD>strong_pitchou</MYSQL_ROOT_PASSWORD>
- </env>
- <hostname>mariadb</hostname>
- <volumes>
- <bind>
- <volume>${project.basedir}/extra/sql/:/docker-entrypoint-initdb.d:rw</volume>
- <volume>${project.basedir}/extra/docker/mariadb/conf1:/etc/mysql/conf.d</volume>
- </bind>
- </volumes>
- <wait>
- <log>port: 3306</log>
- <time>300000</time>
- <exec>
- <preStop>/docker-entrypoint-initdb.d/dump/backup-data-only.sh</preStop>
- </exec>
- </wait>
- <ports>
- <port>${docker.mariadb.port.host}:3306</port>
- </ports>
- <network>
- <mode>bridge</mode>
- </network>
- </run>
- </image>
- <image>
- <name>docker.io/python:2-slim</name>
- <alias>python</alias>
- <run>
- <hostname>python</hostname>
- <volumes>
- <bind>
- <volume>
- ${project.basedir}/src/test/resources/http-cache/:/usr/src/http-cache-app
- </volume>
- <volume>
- ${project.basedir}/src/test/resources/http-cache/example/:/usr/src/http-cache-app/data-cache
- </volume>
- </bind>
- </volumes>
- <wait>
- <tcp>
- <ports>
- <port>8080</port>
- </ports>
- <mode>direct</mode>
- </tcp>
- <time>120000</time>
- </wait>
- <ports>
- <port>${docker.http-cache.port.host}:8080</port>
- </ports>
- <workingDir>/usr/src/http-cache-app</workingDir>
- <cmd>
- <shell>./start_http_cache.sh ${python.http.proxy.param}
- --python_proxyaddress=localhost:${docker.http-cache.port.host}
- </shell>
- </cmd>
- <network>
- <mode>bridge</mode>
- </network>
- </run>
- </image>
- <image>
- <name>onap/policy-clamp-backend</name>
- <alias>onap-policy-clamp-backend</alias>
- <run>
- <skip>true</skip>
- </run>
- <build>
- <cleanup>true</cleanup>
- <tags>
- <tag>latest</tag>
- <tag>${project.docker.latesttagtimestamp.version}</tag>
- <tag>${project.docker.latesttag.version}</tag>
- </tags>
- <!-- A relative path is looked up in ${project.basedir}/src/main/docker by
- default -->
- <dockerFile>backend/Dockerfile</dockerFile>
- <assembly>
- <descriptor>backend/backend-files.xml</descriptor>
- <name>onap-policy-clamp-backend</name>
- </assembly>
- </build>
- </image>
- <image>
- <name>onap/policy-clamp-frontend</name>
- <alias>onap-policy-clamp-frontend</alias>
- <run>
- <skip>true</skip>
- </run>
- <build>
- <cleanup>true</cleanup>
- <tags>
- <tag>latest</tag>
- <tag>${project.docker.latesttagtimestamp.version}</tag>
- <tag>${project.docker.latesttag.version}</tag>
- </tags>
- <!-- A relative path is looked up in ${project.basedir}/src/main/docker by
- default -->
- <dockerFile>frontend/Dockerfile</dockerFile>
- <assembly>
- <descriptor>frontend/frontend-files.xml</descriptor>
- <name>onap-policy-clamp-frontend</name>
- </assembly>
- </build>
- </image>
- </images>
- </configuration>
-
- <executions>
- <execution>
- <id>generate-images</id>
- <phase>install</phase>
- <goals>
- <goal>build</goal>
- </goals>
- </execution>
- <execution>
- <id>push-images</id>
- <phase>deploy</phase>
- <goals>
- <goal>push</goal>
- </goals>
- </execution>
- <execution>
- <id>docker-start-for-it</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start</goal>
- </goals>
- </execution>
- <execution>
- <id>docker-stop-for-it</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>stop</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
- <version>0.8.5</version>
- <configuration>
- <dumpOnExit>true</dumpOnExit>
- <append>true</append>
- <includes>
- <include>org/onap/policy/clamp/**</include>
- </includes>
- </configuration>
- <executions>
- <execution>
- <id>pre-unit-test</id>
- <goals>
- <goal>prepare-agent</goal>
- </goals>
- <configuration>
- <destFile>${project.build.directory}/coverage-reports/jacoco.exec</destFile>
- <propertyName>surefireArgLine</propertyName>
- <!-- <append>true</append> -->
- </configuration>
- </execution>
- <execution>
- <id>pre-integration-test</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>prepare-agent</goal>
- </goals>
- <configuration>
- <destFile>${project.build.directory}/coverage-reports/jacoco-it.exec</destFile>
- <propertyName>failsafeArgLine</propertyName>
- <!-- <append>true</append> -->
- <!-- Need to overwrite the policy integration parent flag -->
- <skip>false</skip>
- </configuration>
- </execution>
- <execution>
- <goals>
- <goal>merge</goal>
- </goals>
- <phase>post-integration-test</phase>
- <configuration>
- <fileSets>
- <fileSet
- implementation="org.apache.maven.shared.model.fileset.FileSet">
- <directory>${project.build.directory}/coverage-reports</directory>
- <includes>
- <include>*.exec</include>
- </includes>
- </fileSet>
- </fileSets>
- <destFile>${project.build.directory}/jacoco.exec</destFile>
- </configuration>
- </execution>
- <execution>
- <id>report-xml</id>
- <goals>
- <goal>report</goal>
- </goals>
- <configuration>
- <!-- Setting explicit path, so that we remember where it picks them up from -->
- <dataFile>${project.build.directory}/jacoco.exec</dataFile>
- <outputDirectory>${project.build.directory}/jacoco-html-xml-reports</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <!-- This plugin will be useful when we will have multi-modules project -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>versions-maven-plugin</artifactId>
- <version>1.3.1</version>
- </plugin>
-
- <plugin>
- <groupId>com.github.eirslett</groupId>
- <artifactId>frontend-maven-plugin</artifactId>
- <version>1.8.0</version>
- <configuration>
- <installDirectory>${project.build.directory}/${ui.react.src}</installDirectory>
- </configuration>
- <executions>
- <execution>
- <id>install_node_and_npm</id>
- <goals>
- <goal>install-node-and-npm</goal>
- </goals>
- <phase>generate-sources</phase>
- <configuration>
- <nodeVersion>v12.13.0</nodeVersion>
- <npmVersion>6.13.0</npmVersion>
- </configuration>
- </execution>
- <execution>
- <id>npm_install</id>
- <goals>
- <goal>npm</goal>
- </goals>
- <phase>compile</phase>
- <configuration>
- <workingDirectory>${project.build.directory}/${ui.react.src}</workingDirectory>
- <arguments>install</arguments>
- </configuration>
- </execution>
- <execution>
- <id>npm_test</id>
- <goals>
- <goal>npm</goal>
- </goals>
- <phase>test</phase>
- <configuration>
- <skip>${maven.test.skip}</skip>
- <arguments>run-script test:coverage</arguments>
- <workingDirectory>${project.build.directory}/${ui.react.src}</workingDirectory>
- </configuration>
- </execution>
- <execution>
- <id>npm_install_lib</id>
- <goals>
- <goal>npm</goal>
- </goals>
- <phase>deploy</phase>
- <configuration>
- <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
- <arguments>install</arguments>
- </configuration>
- </execution>
- <execution>
- <id>npm_build_lib</id>
- <goals>
- <goal>npm</goal>
- </goals>
- <phase>deploy</phase>
- <configuration>
- <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
- <arguments>run build</arguments>
- </configuration>
- </execution>
- <execution>
- <id>npm_publish</id>
- <goals>
- <goal>npm</goal>
- </goals>
- <phase>deploy</phase>
- <configuration>
- <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
- <arguments>publish</arguments>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.1</version>
- <configuration>
- <source>11</source>
- <target>11</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.sonarsource.scanner.maven</groupId>
- <artifactId>sonar-maven-plugin</artifactId>
- <version>3.7.0.1746</version>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>exec-maven-plugin</artifactId>
- <version>1.3.2</version>
- <executions>
- <execution>
- <id>libIndexCheck</id>
- <phase>validate</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <executable>bash</executable>
- <arguments>
- <argument>${project.basedir}/src/main/script/checkLibIndex.sh</argument>
- </arguments>
- </configuration>
- </plugin>
- <!-- Plugin to generate a X509 Certificate for https tests -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>keytool-maven-plugin</artifactId>
- <version>1.5</version>
- <executions>
- <execution>
- <id>add-certificate-for-dev</id>
- <configuration>
- <keystore>${project.build.directory}/classes/clds/aaf/org.onap.clamp.p12</keystore>
- <storepass>China in the Spring</storepass>
- <alias>clamptest</alias>
- <storetype>PKCS12</storetype>
- <keyalg>RSA</keyalg>
- <dname>cn=CN, ou=OU, o=O, c=C</dname>
- <validity>365</validity>
- </configuration>
- <goals>
- <goal>generateKeyPair</goal>
- </goals>
- <phase>generate-resources</phase>
- </execution>
- <execution>
- <id>add-certificate-for-test</id>
- <configuration>
- <keystore>${project.build.directory}/test-classes/clds/aaf/org.onap.clamp.p12</keystore>
- <storepass>China in the Spring</storepass>
- <alias>clamptest</alias>
- <storetype>PKCS12</storetype>
- <keyalg>RSA</keyalg>
- <dname>cn=CN, ou=OU, o=O, c=C</dname>
- <validity>365</validity>
- </configuration>
- <goals>
- <goal>generateKeyPair</goal>
- </goals>
- <phase>generate-test-resources</phase>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-invoker-plugin</artifactId>
- <version>3.2.1</version>
- <configuration>
- <projectsDirectory>tosca-controlloop</projectsDirectory>
- <cloneProjectsTo>${project.build.directory}/tosca-controlloop</cloneProjectsTo>
- <pomIncludes>
- <pomInclude>pom.xml</pomInclude>
- </pomIncludes>
- <streamLogs>true</streamLogs>
- </configuration>
- <executions>
- <execution>
- <id>build-tosca-controlloop</id>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
</project>
diff --git a/extra/bin-for-dev/start-backend.sh b/runtime/extra/bin-for-dev/start-backend.sh
index df513d263..df513d263 100755
--- a/extra/bin-for-dev/start-backend.sh
+++ b/runtime/extra/bin-for-dev/start-backend.sh
diff --git a/extra/bin-for-dev/start-db.sh b/runtime/extra/bin-for-dev/start-db.sh
index 97f8de1f5..97f8de1f5 100755
--- a/extra/bin-for-dev/start-db.sh
+++ b/runtime/extra/bin-for-dev/start-db.sh
diff --git a/extra/bin-for-dev/start-emulator.sh b/runtime/extra/bin-for-dev/start-emulator.sh
index 274d88939..274d88939 100755
--- a/extra/bin-for-dev/start-emulator.sh
+++ b/runtime/extra/bin-for-dev/start-emulator.sh
diff --git a/extra/bin-for-dev/start-frontend.sh b/runtime/extra/bin-for-dev/start-frontend.sh
index d5f4d2414..d5f4d2414 100755
--- a/extra/bin-for-dev/start-frontend.sh
+++ b/runtime/extra/bin-for-dev/start-frontend.sh
diff --git a/extra/docker/clamp/clamp.env b/runtime/extra/docker/clamp/clamp.env
index eb9e54784..5d31aa42e 100644
--- a/extra/docker/clamp/clamp.env
+++ b/runtime/extra/docker/clamp/clamp.env
@@ -1,2 +1,2 @@
### Be careful, this must be in one line only ###
-SPRING_APPLICATION_JSON={"spring.datasource.url":"jdbc:mariadb:sequential://db:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3","spring.profiles.active":"clamp-default,clamp-default-user,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,default-dictionary-elements","clamp.config.policy.api.url":"http4://third-party-proxy:8085","clamp.config.policy.pap.url":"http4://third-party-proxy:8085","clamp.config.dcae.inventory.url":"http://third-party-proxy:8085","clamp.config.dcae.deployment.url":"http4://third-party-proxy:8085"}
+SPRING_APPLICATION_JSON={"spring.datasource.url":"jdbc:mariadb:sequential://db:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3","spring.profiles.active":"clamp-default,clamp-default-user,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,default-dictionary-elements","clamp.config.policy.api.url":"http://third-party-proxy:8085","clamp.config.policy.pap.url":"http://third-party-proxy:8085","clamp.config.dcae.inventory.url":"http://third-party-proxy:8085","clamp.config.dcae.deployment.url":"http://third-party-proxy:8085"}
diff --git a/extra/docker/clamp/docker-compose.yml b/runtime/extra/docker/clamp/docker-compose.yml
index c56be0aae..c56be0aae 100644
--- a/extra/docker/clamp/docker-compose.yml
+++ b/runtime/extra/docker/clamp/docker-compose.yml
diff --git a/extra/docker/mariadb/conf1/my.cnf b/runtime/extra/docker/mariadb/conf1/my.cnf
index c6631fb4e..c6631fb4e 100644
--- a/extra/docker/mariadb/conf1/my.cnf
+++ b/runtime/extra/docker/mariadb/conf1/my.cnf
diff --git a/extra/docker/mariadb/conf2/my.cnf b/runtime/extra/docker/mariadb/conf2/my.cnf
index bf5f9c177..bf5f9c177 100644
--- a/extra/docker/mariadb/conf2/my.cnf
+++ b/runtime/extra/docker/mariadb/conf2/my.cnf
diff --git a/extra/docker/mariadb/conf3/my.cnf b/runtime/extra/docker/mariadb/conf3/my.cnf
index 74f7a31b0..74f7a31b0 100644
--- a/extra/docker/mariadb/conf3/my.cnf
+++ b/runtime/extra/docker/mariadb/conf3/my.cnf
diff --git a/extra/sql/bootstrap-database.sh b/runtime/extra/sql/bootstrap-database.sh
index 224a813db..224a813db 100755
--- a/extra/sql/bootstrap-database.sh
+++ b/runtime/extra/sql/bootstrap-database.sh
diff --git a/extra/sql/bulkload/create-db.sql b/runtime/extra/sql/bulkload/create-db.sql
index ea4d97c1b..ea4d97c1b 100644
--- a/extra/sql/bulkload/create-db.sql
+++ b/runtime/extra/sql/bulkload/create-db.sql
diff --git a/extra/sql/bulkload/create-tables.sql b/runtime/extra/sql/bulkload/create-tables.sql
index 111a4058e..111a4058e 100644
--- a/extra/sql/bulkload/create-tables.sql
+++ b/runtime/extra/sql/bulkload/create-tables.sql
diff --git a/extra/sql/dump/backup-data-only.sh b/runtime/extra/sql/dump/backup-data-only.sh
index 8ebebf91d..8ebebf91d 100755
--- a/extra/sql/dump/backup-data-only.sh
+++ b/runtime/extra/sql/dump/backup-data-only.sh
diff --git a/extra/sql/dump/backup-database.sh b/runtime/extra/sql/dump/backup-database.sh
index 1ae7ee2b7..1ae7ee2b7 100755
--- a/extra/sql/dump/backup-database.sh
+++ b/runtime/extra/sql/dump/backup-database.sh
diff --git a/extra/sql/dump/load-fake-data.sh b/runtime/extra/sql/dump/load-fake-data.sh
index 572972683..572972683 100755
--- a/extra/sql/dump/load-fake-data.sh
+++ b/runtime/extra/sql/dump/load-fake-data.sh
diff --git a/extra/sql/dump/test-data.sql b/runtime/extra/sql/dump/test-data.sql
index 367ddb61d..367ddb61d 100644
--- a/extra/sql/dump/test-data.sql
+++ b/runtime/extra/sql/dump/test-data.sql
diff --git a/runtime/pom.xml b/runtime/pom.xml
new file mode 100644
index 000000000..66d555ac7
--- /dev/null
+++ b/runtime/pom.xml
@@ -0,0 +1,1250 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ ONAP POLICY-CLAMP
+ ================================================================================
+ Copyright (C) 2017-2021 AT&T Intellectual Property. All rights reserved.
+ Modifications Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END============================================
+ ===================================================================
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.policy.clamp</groupId>
+ <artifactId>policy-clamp</artifactId>
+ <version>6.1.2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>policy-clamp-runtime</artifactId>
+ <name>${project.artifactId}</name>
+
+ <description>
+ This is the MAVEN project that builds everything for ONAP POLICY-CLAMP.
+ Docker engine is normally required to perfom all possible tasks (including integration tests)
+
+ It can build:
+ - The ONAP POLICY-CLAMP JAR that contains CLAMP back-end code.
+ - The DOCKER images for:
+ * POLICY-CLAMP backend (Java Spring)
+ * POLICY-CLAMP frontend (Javascript React)
+
+ It can test:
+ - The POLICY-CLAMP backend, JAVA unit testing
+ - The POLICY-CLAMP backend, JAVA integration tests (with Spring + docker mariadb database + docker policy/dcae
+ emulator written in python)
+ - The POLICY-CLAMP frontend, Javascript tests (NodeJS(NPM) + JEST and Enzyme for React)
+
+ The test coverage for dev's can be found after a "clean install" build in:
+ - Clamp backend: target/jacoco-dev.exec (unit tests + integration tests merged)
+ or separately target/coverage-reports/jacoco.exec and target/coverage-reports/jacoco-it.exec
+ - Clamp frontend: target/ui-react/coverage
+
+ Useful mvn commands:
+ - mvn clean install: Build Clamp backend JAR + unit tests + integration tests + NPM tests (+coverage for all)
+ - mvn clean install -DskipITs=true: Build Clamp backend JAR + unit tests + NPM tests (+coverage for all), it
+ does not require a DOCKER engine
+ - mvn clean install -DskipTests -P docker: Build Clamp backend JAR + all docker images
+
+ To start POLICY-CLAMP (Build it before):
+ - Use docker-compose file in ./extra/docker/clamp/docker-compose.yml
+ - Use the script located in ./extra/bin/start-backend.sh + start-frontend.sh
+ - Use your IDE to use the Jar or start NVM/NPM
+
+ </description>
+
+ <properties>
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
+ <clamp.project.version>${project.version}</clamp.project.version>
+ <clamp.build.timestamp>${maven.build.timestamp}</clamp.build.timestamp>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+ <eelf.core.version>1.0.0</eelf.core.version>
+ <camel.version>3.7.3</camel.version>
+ <springboot.version>2.4.4</springboot.version>
+
+ <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
+ <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
+ <sonar.coverage.jacoco.xmlReportPaths>${project.build.directory}/jacoco-html-xml-reports/jacoco.xml
+ </sonar.coverage.jacoco.xmlReportPaths>
+ <sonar.projectVersion>${project.version}</sonar.projectVersion>
+ <sonar.log.level>DEBUG</sonar.log.level>
+ <sonar.nodejs.executable>${project.build.directory}/${ui.react.src}/node/node</sonar.nodejs.executable>
+ <sonar.verbose>true</sonar.verbose>
+ <sonar.sources>src/main,${project.build.directory}/${ui.react.src}/src</sonar.sources>
+ <sonar.exclusions>src/main/resources/**</sonar.exclusions>
+ <sonar.scm.exclusions.disabled>true</sonar.scm.exclusions.disabled>
+ <sonar.javascript.lcov.reportPaths>${project.build.directory}/${ui.react.src}/coverage/lcov.info
+ </sonar.javascript.lcov.reportPaths>
+ <sonar.coverage.exclusions>
+ src/main/resources/**,target/ui-react/src/**/*.test.js,target/ui-react/src/setupTests.js
+ </sonar.coverage.exclusions>
+ <docker.push.registry>localhost:5000</docker.push.registry>
+ <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
+ <docker.skip.build>true</docker.skip.build>
+ <docker.skip.push>true</docker.skip.push>
+ <docker.skip.tag>true</docker.skip.tag>
+ <skip.staging.artifacts>false</skip.staging.artifacts>
+ <python.http.proxy.param/>
+ <tomcat.version>9.0.45</tomcat.version>
+ <ui.react.src>ui-react</ui.react.src>
+ <ui.react.lib.src>ui-react-lib</ui.react.lib.src>
+ <npm.publish.url>https://nexus3.onap.org/repository/npm.snapshot/</npm.publish.url>
+ </properties>
+
+ <profiles>
+ <!-- BEGIN: NOT USABLE profiles, those are defined when specific flags are enabled -->
+ <profile>
+ <id>without-test</id>
+ <activation>
+ <property>
+ <name>maven.test.skip</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <properties>
+ <docker.skip.run>true</docker.skip.run>
+ <docker.skip>true</docker.skip>
+ </properties>
+ </profile>
+ <profile>
+ <id>without-IT-only</id>
+ <activation>
+ <property>
+ <name>skipITs</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <properties>
+ <docker.skip.run>true</docker.skip.run>
+ <docker.skip>true</docker.skip>
+ </properties>
+ </profile>
+ <profile>
+ <id>without-IT-only2</id>
+ <activation>
+ <property>
+ <name>skipTests</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <properties>
+ <docker.skip.run>true</docker.skip.run>
+ <docker.skip>true</docker.skip>
+ </properties>
+ </profile>
+ <!-- END: NOT USABLE profiles, those are defined when specific flags are enabled -->
+ <profile>
+ <id>docker</id>
+ <properties>
+ <skip.staging.artifacts>true</skip.staging.artifacts>
+ <docker.skip.build>false</docker.skip.build>
+ <docker.skip.tag>false</docker.skip.tag>
+ <docker.skip.push>false</docker.skip.push>
+ <docker.skip>false</docker.skip>
+ </properties>
+ </profile>
+ </profiles>
+
+ <dependencyManagement>
+ <dependencies>
+ <!-- Spring Boot BOM -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-dependencies</artifactId>
+ <version>${springboot.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ <!-- Camel BOM -->
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-spring-boot-bom</artifactId>
+ <version>${camel.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.att.eelf</groupId>
+ <artifactId>eelf-core</artifactId>
+ <version>${eelf.core.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-junit4</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-mockito</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.janino</groupId>
+ <artifactId>janino</artifactId>
+ <version>3.0.8</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tomcat.embed</groupId>
+ <artifactId>tomcat-embed-core</artifactId>
+ <version>${tomcat.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tomcat.embed</groupId>
+ <artifactId>tomcat-embed-el</artifactId>
+ <version>${tomcat.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tomcat.embed</groupId>
+ <artifactId>tomcat-embed-websocket</artifactId>
+ <version>${tomcat.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tomcat</groupId>
+ <artifactId>tomcat-annotations-api</artifactId>
+ <version>${tomcat.version}</version>
+ </dependency>
+ <!-- For CAMEL -->
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-http-starter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-spring-boot-starter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-jaxb-starter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-servlet-starter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-gson-starter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-swagger-java-starter</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>jsr311-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-ext</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- Spring famework -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-json</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-tomcat</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.glassfish</groupId>
+ <artifactId>jakarta.el</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-security</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-autoconfigure</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.vaadin.external.google</groupId>
+ <artifactId>android-json</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
+ </dependency>
+ <!-- Policy dependencies mainly for the models required -->
+ <dependency>
+ <groupId>org.onap.policy.models</groupId>
+ <artifactId>policy-models-pdp</artifactId>
+ <version>${policy.models.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.containers</groupId>
+ <artifactId>jersey-container-servlet</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-reflect</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib-common</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!-- Others dependencies -->
+ <!-- Jaxws is required for AAF -->
+ <dependency>
+ <groupId>javax.xml.ws</groupId>
+ <artifactId>jaxws-api</artifactId>
+ <version>2.3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aaf.authz</groupId>
+ <artifactId>aaf-cadi-aaf</artifactId>
+ <version>2.1.15</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-core</artifactId>
+ <version>1.2.3</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>1.2.3</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.8.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.googlecode.json-simple</groupId>
+ <artifactId>json-simple</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ <version>2.8.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.squareup.okhttp</groupId>
+ <artifactId>okhttp</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.transaction</groupId>
+ <artifactId>jta</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0.2</version>
+ </dependency>
+ <!-- Other dependencies to fix nexus IQ reported vulnerabilities -->
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>3.3.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.spec.javax.ws.rs</groupId>
+ <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
+ <version>1.0.1.Final</version>
+ </dependency>
+
+
+ <!-- Remove the MYSQL connector and replace it by Mariadb -->
+ <dependency>
+ <groupId>org.mariadb.jdbc</groupId>
+ <artifactId>mariadb-java-client</artifactId>
+ <version>2.7.2</version>
+ </dependency>
+ <!-- For SDC Controller -->
+ <dependency>
+ <groupId>org.onap.sdc.sdc-distribution-client</groupId>
+ <artifactId>sdc-distribution-client</artifactId>
+ <version>1.4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.sdc.sdc-tosca</groupId>
+ <artifactId>sdc-tosca</artifactId>
+ <version>1.5.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.yaml</groupId>
+ <artifactId>snakeyaml</artifactId>
+ <version>1.28</version>
+ </dependency>
+ <dependency>
+ <groupId>org.dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>2.1.3</version>
+ </dependency>
+
+ <!-- TESTING -->
+ <dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <version>5.7.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.10.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.github.docker-java</groupId>
+ <artifactId>docker-java-core</artifactId>
+ <version>3.2.7</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.github.docker-java</groupId>
+ <artifactId>docker-java</artifactId>
+ <version>3.2.7</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.policy.common</groupId>
+ <artifactId>utils-test</artifactId>
+ <version>${policy.common.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>policy-clamp-backend</finalName>
+
+ <testResources>
+ <testResource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <excludes>
+ <exclude>clds/aaf/**</exclude>
+ </excludes>
+ </testResource>
+ <testResource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <includes>
+ <include>clds/aaf/**</include>
+ </includes>
+ </testResource>
+ <testResource>
+ <directory>src/test/resources</directory>
+ <excludes>
+ <exclude>**/*.jks</exclude>
+ <exclude>**/*.csar</exclude>
+ </excludes>
+ <filtering>true</filtering>
+ </testResource>
+ <testResource>
+ <directory>src/test/resources/https</directory>
+ <includes>
+ <include>**.jks</include>
+ </includes>
+ <filtering>false</filtering>
+ <targetPath>https</targetPath>
+ </testResource>
+ <testResource>
+ <directory>src/test/resources/example/sdc</directory>
+ <includes>
+ <include>**.csar</include>
+ </includes>
+ <filtering>false</filtering>
+ <targetPath>example/sdc</targetPath>
+ </testResource>
+ </testResources>
+ <resources>
+ <!-- For AAF folder maven should not try to filter Keystores/Truststores ... Otherwise
+ they will be broken and unreadable -->
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <excludes>
+ <exclude>clds/aaf/**</exclude>
+ </excludes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <includes>
+ <include>clds/aaf/**</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>${ui.react.src}</directory>
+ <excludes>
+ <exclude>node_modules</exclude>
+ </excludes>
+ <includes>
+ <include>src/**</include>
+ <include>public/**</include>
+ <include>package.json</include>
+ <include>package-lock.json</include>
+ </includes>
+ <filtering>true</filtering>
+ <targetPath>${project.build.directory}/${ui.react.src}</targetPath>
+ </resource>
+ <resource>
+ <directory>${ui.react.src}</directory>
+ <includes>
+ <include>src/**</include>
+ </includes>
+ <excludes>
+ <exclude>**/__snapshots__/**</exclude>
+ <exclude>**/**.test.js</exclude>
+ </excludes>
+ <filtering>true</filtering>
+ <targetPath>${project.build.directory}/${ui.react.lib.src}</targetPath>
+ </resource>
+ <resource>
+ <directory>${ui.react.lib.src}</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>node_modules/**</exclude>
+ <exclude>package-lock.json</exclude>
+ </excludes>
+ <filtering>true</filtering>
+ <targetPath>${project.build.directory}/${ui.react.lib.src}</targetPath>
+ </resource>
+ </resources>
+
+ <plugins>
+ <plugin>
+ <groupId>de.jpdigital</groupId>
+ <artifactId>hibernate52-ddl-maven-plugin</artifactId>
+ <version>2.2.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.3.0</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>gen-ddl</goal>
+ </goals>
+ <configuration>
+ <packages>
+ <param>org.onap.policy.clamp</param>
+ </packages>
+ <dialects>
+ <param>MARIADB53</param>
+ </dialects>
+ <outputDirectory>${project.basedir}/extra/sql/bulkload/</outputDirectory>
+ <outputFileNameSuffix>create-tables</outputFileNameSuffix>
+ <!-- <createDropStatements>true</createDropStatements> -->
+ <omitDialectFromFileName>true</omitDialectFromFileName>
+ </configuration>
+ </execution>
+ </executions>
+
+ </plugin>
+ <!-- Read the swagger.json file and the definition from SwaggerConfig.java; generate
+ a list of .adoc files containing the APIs info in more structured way -->
+ <plugin>
+ <groupId>io.github.swagger2markup</groupId>
+ <artifactId>swagger2markup-maven-plugin</artifactId>
+ <version>1.3.3</version>
+ <dependencies>
+ <dependency>
+ <groupId>io.github.swagger2markup</groupId>
+ <artifactId>swagger2markup-import-files-ext</artifactId>
+ <version>1.3.3</version>
+ </dependency>
+ <dependency>
+ <groupId>io.github.swagger2markup</groupId>
+ <artifactId>swagger2markup-spring-restdocs-ext</artifactId>
+ <version>1.3.3</version>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <swaggerInput>${project.basedir}/docs/swagger/swagger.json</swaggerInput>
+ <outputDir>${project.build.directory}/asciidoc/generated</outputDir>
+ <config>
+ <swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
+ </config>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>convertSwagger2markup</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Run the generated asciidoc through Asciidoctor to generate other documentation
+ types, such as PDFs or HTML5 -->
+ <plugin>
+ <groupId>org.asciidoctor</groupId>
+ <artifactId>asciidoctor-maven-plugin</artifactId>
+ <version>1.5.7.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.asciidoctor</groupId>
+ <artifactId>asciidoctorj-pdf</artifactId>
+ <version>1.5.0-alpha.10.1</version>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <sourceDirectory>${project.basedir}/src/main/resources/asciidoc</sourceDirectory>
+ <sourceDocumentName>swagger.adoc</sourceDocumentName>
+ <attributes>
+ <doctype>book</doctype>
+ <toc>left</toc>
+ <toclevels>3</toclevels>
+ <numbered/>
+ <hardbreaks/>
+ <sectlinks/>
+ <sectanchors/>
+ <generated>${project.build.directory}/asciidoc/generated</generated>
+ </attributes>
+ </configuration>
+
+ <executions>
+ <execution>
+ <id>output-html</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>process-asciidoc</goal>
+ </goals>
+ <configuration>
+ <backend>html5</backend>
+ <outputDirectory>${project.basedir}/docs/swagger</outputDirectory>
+ <outputDirectory>${project.basedir}/src/main/resources/META-INF/resources/</outputDirectory>
+ </configuration>
+ </execution>
+ <execution>
+ <id>output-pdf</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>process-asciidoc</goal>
+ </goals>
+ <configuration>
+ <backend>pdf</backend>
+ <outputDirectory>${project.basedir}/docs/swagger</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <id>docker-tags</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>${project.basedir}/src/main/script/TagVersion.groovy</source>
+ </configuration>
+ </execution>
+ <execution>
+ <id>npm-repos-selection</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>${project.basedir}/src/main/script/SelectNpmRepo.groovy</source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.2.0</version>
+ <executions>
+ <execution>
+ <id>jar-with-only-classes</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>classes</classifier>
+ <includes>
+ <include>org/**</include>
+ </includes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>3.2.0</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>${project.build.directory}/policy-clamp-backend-classes.jar</file>
+ <type>jar</type>
+ <classifier>classes</classifier>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ <execution>
+ <id>reserve-port-for-tests</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>reserve-network-port</goal>
+ </goals>
+ <configuration>
+ <portNames>
+ <portName>docker.mariadb.port.host</portName>
+ <portName>docker.http-cache.port.host</portName>
+ <portName>clamp.it.tests.http-redirected</portName>
+ <portName>clamp.it.tests.robotframework.http</portName>
+ <portName>clamp.it.tests.https</portName>
+ <portName>clamp.it.tests.http</portName>
+ </portNames>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <version>${springboot.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ <phase>package</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.22.2</version>
+ <configuration>
+ <forkCount>1C</forkCount>
+ <reuseForks>true</reuseForks>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <argLine>${surefireArgLine}</argLine>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <version>2.22.2</version>
+ <executions>
+ <execution>
+ <id>integration-tests</id>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ <configuration>
+ <additionalClasspathElements>
+ <additionalClasspathElement>${project.build.directory}/classes
+ </additionalClasspathElement>
+ </additionalClasspathElements>
+ <includes>
+ <include>**/*ItCase.java</include>
+ </includes>
+ <forkCount>1C</forkCount>
+ <reuseForks>true</reuseForks>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <argLine>${failsafeArgLine}</argLine>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <version>0.35.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.5.5</version>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <verbose>true</verbose>
+ <apiVersion>1.35</apiVersion>
+ <images>
+ <image>
+ <name>docker.io/mariadb:10.5.4</name>
+ <alias>mariadb</alias>
+ <run>
+ <env>
+ <MYSQL_ROOT_PASSWORD>strong_pitchou</MYSQL_ROOT_PASSWORD>
+ </env>
+ <hostname>mariadb</hostname>
+ <volumes>
+ <bind>
+ <volume>${project.basedir}/extra/sql/:/docker-entrypoint-initdb.d:rw</volume>
+ <volume>${project.basedir}/extra/docker/mariadb/conf1:/etc/mysql/conf.d</volume>
+ </bind>
+ </volumes>
+ <wait>
+ <log>port: 3306</log>
+ <time>300000</time>
+ <exec>
+ <preStop>/docker-entrypoint-initdb.d/dump/backup-data-only.sh</preStop>
+ </exec>
+ </wait>
+ <ports>
+ <port>${docker.mariadb.port.host}:3306</port>
+ </ports>
+ <network>
+ <mode>bridge</mode>
+ </network>
+ </run>
+ </image>
+ <image>
+ <name>docker.io/python:2-slim</name>
+ <alias>python</alias>
+ <run>
+ <hostname>python</hostname>
+ <volumes>
+ <bind>
+ <volume>
+ ${project.basedir}/src/test/resources/http-cache/:/usr/src/http-cache-app
+ </volume>
+ <volume>
+ ${project.basedir}/src/test/resources/http-cache/example/:/usr/src/http-cache-app/data-cache
+ </volume>
+ </bind>
+ </volumes>
+ <wait>
+ <tcp>
+ <ports>
+ <port>8080</port>
+ </ports>
+ <mode>direct</mode>
+ </tcp>
+ <time>120000</time>
+ </wait>
+ <ports>
+ <port>${docker.http-cache.port.host}:8080</port>
+ </ports>
+ <workingDir>/usr/src/http-cache-app</workingDir>
+ <cmd>
+ <shell>./start_http_cache.sh ${python.http.proxy.param}
+ --python_proxyaddress=localhost:${docker.http-cache.port.host}
+ </shell>
+ </cmd>
+ <network>
+ <mode>bridge</mode>
+ </network>
+ </run>
+ </image>
+ <image>
+ <name>onap/policy-clamp-backend</name>
+ <alias>onap-policy-clamp-backend</alias>
+ <run>
+ <skip>true</skip>
+ </run>
+ <build>
+ <cleanup>true</cleanup>
+ <tags>
+ <tag>latest</tag>
+ <tag>${project.docker.latesttagtimestamp.version}</tag>
+ <tag>${project.docker.latesttag.version}</tag>
+ </tags>
+ <!-- A relative path is looked up in ${project.basedir}/src/main/docker by
+ default -->
+ <dockerFile>backend/Dockerfile</dockerFile>
+ <assembly>
+ <descriptor>backend/backend-files.xml</descriptor>
+ <name>onap-policy-clamp-backend</name>
+ </assembly>
+ </build>
+ </image>
+ <image>
+ <name>onap/policy-clamp-frontend</name>
+ <alias>onap-policy-clamp-frontend</alias>
+ <run>
+ <skip>true</skip>
+ </run>
+ <build>
+ <cleanup>true</cleanup>
+ <tags>
+ <tag>latest</tag>
+ <tag>${project.docker.latesttagtimestamp.version}</tag>
+ <tag>${project.docker.latesttag.version}</tag>
+ </tags>
+ <!-- A relative path is looked up in ${project.basedir}/src/main/docker by
+ default -->
+ <dockerFile>frontend/Dockerfile</dockerFile>
+ <assembly>
+ <descriptor>frontend/frontend-files.xml</descriptor>
+ <name>onap-policy-clamp-frontend</name>
+ </assembly>
+ </build>
+ </image>
+ </images>
+ </configuration>
+
+ <executions>
+ <execution>
+ <id>generate-images</id>
+ <phase>install</phase>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>push-images</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>push</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>docker-start-for-it</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>start</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>docker-stop-for-it</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>stop</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <version>0.8.5</version>
+ <configuration>
+ <dumpOnExit>true</dumpOnExit>
+ <append>true</append>
+ <includes>
+ <include>org/onap/policy/clamp/**</include>
+ </includes>
+ </configuration>
+ <executions>
+ <execution>
+ <id>pre-unit-test</id>
+ <goals>
+ <goal>prepare-agent</goal>
+ </goals>
+ <configuration>
+ <destFile>${project.build.directory}/coverage-reports/jacoco.exec</destFile>
+ <propertyName>surefireArgLine</propertyName>
+ <!-- <append>true</append> -->
+ </configuration>
+ </execution>
+ <execution>
+ <id>pre-integration-test</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>prepare-agent</goal>
+ </goals>
+ <configuration>
+ <destFile>${project.build.directory}/coverage-reports/jacoco-it.exec</destFile>
+ <propertyName>failsafeArgLine</propertyName>
+ <!-- <append>true</append> -->
+ <!-- Need to overwrite the policy integration parent flag -->
+ <skip>false</skip>
+ </configuration>
+ </execution>
+ <execution>
+ <goals>
+ <goal>merge</goal>
+ </goals>
+ <phase>post-integration-test</phase>
+ <configuration>
+ <fileSets>
+ <fileSet
+ implementation="org.apache.maven.shared.model.fileset.FileSet">
+ <directory>${project.build.directory}/coverage-reports</directory>
+ <includes>
+ <include>*.exec</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ <destFile>${project.build.directory}/jacoco.exec</destFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>report-xml</id>
+ <goals>
+ <goal>report</goal>
+ </goals>
+ <configuration>
+ <!-- Setting explicit path, so that we remember where it picks them up from -->
+ <dataFile>${project.build.directory}/jacoco.exec</dataFile>
+ <outputDirectory>${project.build.directory}/jacoco-html-xml-reports</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- This plugin will be useful when we will have multi-modules project -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>versions-maven-plugin</artifactId>
+ <version>1.3.1</version>
+ </plugin>
+
+ <plugin>
+ <groupId>com.github.eirslett</groupId>
+ <artifactId>frontend-maven-plugin</artifactId>
+ <version>1.11.3</version>
+ <configuration>
+ <installDirectory>${project.build.directory}/${ui.react.src}</installDirectory>
+ <npmDownloadRoot>${repo.npm}</npmDownloadRoot>
+ </configuration>
+ <executions>
+ <execution>
+ <id>install_node_and_npm</id>
+ <goals>
+ <goal>install-node-and-npm</goal>
+ </goals>
+ <phase>generate-sources</phase>
+ <configuration>
+ <nodeVersion>v14.16.1</nodeVersion>
+ <npmVersion>6.14.13</npmVersion>
+ </configuration>
+ </execution>
+ <execution>
+ <id>npm_install</id>
+ <goals>
+ <goal>npm</goal>
+ </goals>
+ <phase>compile</phase>
+ <configuration>
+ <workingDirectory>${project.build.directory}/${ui.react.src}</workingDirectory>
+ <arguments>install</arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>npm_test</id>
+ <goals>
+ <goal>npm</goal>
+ </goals>
+ <phase>test</phase>
+ <configuration>
+ <skip>${maven.test.skip}</skip>
+ <arguments>run-script test:coverage</arguments>
+ <workingDirectory>${project.build.directory}/${ui.react.src}</workingDirectory>
+ </configuration>
+ </execution>
+ <execution>
+ <id>npm_install_lib</id>
+ <goals>
+ <goal>npm</goal>
+ </goals>
+ <phase>deploy</phase>
+ <configuration>
+ <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
+ <arguments>install</arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>npm_build_lib</id>
+ <goals>
+ <goal>npm</goal>
+ </goals>
+ <phase>deploy</phase>
+ <configuration>
+ <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
+ <arguments>run build</arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>npm_publish</id>
+ <goals>
+ <goal>npm</goal>
+ </goals>
+ <phase>deploy</phase>
+ <configuration>
+ <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
+ <arguments>publish</arguments>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.8.1</version>
+ <configuration>
+ <source>11</source>
+ <target>11</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.sonarsource.scanner.maven</groupId>
+ <artifactId>sonar-maven-plugin</artifactId>
+ <version>3.7.0.1746</version>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.3.2</version>
+ <executions>
+ <execution>
+ <id>libIndexCheck</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <executable>bash</executable>
+ <arguments>
+ <argument>${project.basedir}/src/main/script/checkLibIndex.sh</argument>
+ </arguments>
+ </configuration>
+ </plugin>
+ <!-- Plugin to generate a X509 Certificate for https tests -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>keytool-maven-plugin</artifactId>
+ <version>1.5</version>
+ <executions>
+ <execution>
+ <id>add-certificate-for-dev</id>
+ <configuration>
+ <keystore>${project.build.directory}/classes/clds/aaf/org.onap.clamp.p12</keystore>
+ <storepass>China in the Spring</storepass>
+ <alias>clamptest</alias>
+ <storetype>PKCS12</storetype>
+ <keyalg>RSA</keyalg>
+ <dname>cn=CN, ou=OU, o=O, c=C</dname>
+ <validity>365</validity>
+ </configuration>
+ <goals>
+ <goal>generateKeyPair</goal>
+ </goals>
+ <phase>generate-resources</phase>
+ </execution>
+ <execution>
+ <id>add-certificate-for-test</id>
+ <configuration>
+ <keystore>${project.build.directory}/test-classes/clds/aaf/org.onap.clamp.p12</keystore>
+ <storepass>China in the Spring</storepass>
+ <alias>clamptest</alias>
+ <storetype>PKCS12</storetype>
+ <keyalg>RSA</keyalg>
+ <dname>cn=CN, ou=OU, o=O, c=C</dname>
+ <validity>365</validity>
+ </configuration>
+ <goals>
+ <goal>generateKeyPair</goal>
+ </goals>
+ <phase>generate-test-resources</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/runtime/runtime/src/main/resources/META-INF/resources/swagger.html b/runtime/runtime/src/main/resources/META-INF/resources/swagger.html
new file mode 100644
index 000000000..b6f49a78f
--- /dev/null
+++ b/runtime/runtime/src/main/resources/META-INF/resources/swagger.html
@@ -0,0 +1,454 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 1.5.7.1">
+<title>Untitled</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<style>
+/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
+/* Uncomment @import statement below to use as custom stylesheet */
+/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
+audio,canvas,video{display:inline-block}
+audio:not([controls]){display:none;height:0}
+script{display:none!important}
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
+a{background:transparent}
+a:focus{outline:thin dotted}
+a:active,a:hover{outline:0}
+h1{font-size:2em;margin:.67em 0}
+abbr[title]{border-bottom:1px dotted}
+b,strong{font-weight:bold}
+dfn{font-style:italic}
+hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
+mark{background:#ff0;color:#000}
+code,kbd,pre,samp{font-family:monospace;font-size:1em}
+pre{white-space:pre-wrap}
+q{quotes:"\201C" "\201D" "\2018" "\2019"}
+small{font-size:80%}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+sup{top:-.5em}
+sub{bottom:-.25em}
+img{border:0}
+svg:not(:root){overflow:hidden}
+figure{margin:0}
+fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
+legend{border:0;padding:0}
+button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
+button,input{line-height:normal}
+button,select{text-transform:none}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
+button[disabled],html input[disabled]{cursor:default}
+input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
+button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
+textarea{overflow:auto;vertical-align:top}
+table{border-collapse:collapse;border-spacing:0}
+*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+html,body{font-size:100%}
+body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
+a:hover{cursor:pointer}
+img,object,embed{max-width:100%;height:auto}
+object,embed{height:100%}
+img{-ms-interpolation-mode:bicubic}
+.left{float:left!important}
+.right{float:right!important}
+.text-left{text-align:left!important}
+.text-right{text-align:right!important}
+.text-center{text-align:center!important}
+.text-justify{text-align:justify!important}
+.hide{display:none}
+img,object,svg{display:inline-block;vertical-align:middle}
+textarea{height:auto;min-height:50px}
+select{width:100%}
+.center{margin-left:auto;margin-right:auto}
+.stretch{width:100%}
+.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
+div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
+a{color:#2156a5;text-decoration:underline;line-height:inherit}
+a:hover,a:focus{color:#1d4b8f}
+a img{border:none}
+p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
+p aside{font-size:.875em;line-height:1.35;font-style:italic}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
+h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
+h1{font-size:2.125em}
+h2{font-size:1.6875em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
+h4,h5{font-size:1.125em}
+h6{font-size:1em}
+hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
+em,i{font-style:italic;line-height:inherit}
+strong,b{font-weight:bold;line-height:inherit}
+small{font-size:60%;line-height:inherit}
+code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
+ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
+ul,ol{margin-left:1.5em}
+ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
+ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
+ul.square{list-style-type:square}
+ul.circle{list-style-type:circle}
+ul.disc{list-style-type:disc}
+ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
+dl dt{margin-bottom:.3125em;font-weight:bold}
+dl dd{margin-bottom:1.25em}
+abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
+abbr{text-transform:none}
+blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
+blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
+blockquote cite::before{content:"\2014 \0020"}
+blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
+blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
+@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
+h1{font-size:2.75em}
+h2{font-size:2.3125em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
+h4{font-size:1.4375em}}
+table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
+table thead,table tfoot{background:#f7f8f7}
+table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
+table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
+table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
+table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
+h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
+.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
+.clearfix::after,.float-group::after{clear:both}
+*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
+*:not(pre)>code.nobreak{word-wrap:normal}
+*:not(pre)>code.nowrap{white-space:nowrap}
+pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
+em em{font-style:normal}
+strong strong{font-weight:400}
+.keyseq{color:rgba(51,51,51,.8)}
+kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
+.keyseq kbd:first-child{margin-left:0}
+.keyseq kbd:last-child{margin-right:0}
+.menuseq,.menuref{color:#000}
+.menuseq b:not(.caret),.menuref{font-weight:inherit}
+.menuseq{word-spacing:-.02em}
+.menuseq b.caret{font-size:1.25em;line-height:.8}
+.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
+b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
+b.button::before{content:"[";padding:0 3px 0 2px}
+b.button::after{content:"]";padding:0 2px 0 3px}
+p a>code:hover{color:rgba(0,0,0,.9)}
+#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
+#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
+#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
+#content{margin-top:1.25em}
+#content::before{content:none}
+#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
+#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
+#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
+#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
+#header .details span:first-child{margin-left:-.125em}
+#header .details span.email a{color:rgba(0,0,0,.85)}
+#header .details br{display:none}
+#header .details br+span::before{content:"\00a0\2013\00a0"}
+#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
+#header .details br+span#revremark::before{content:"\00a0|\00a0"}
+#header #revnumber{text-transform:capitalize}
+#header #revnumber::after{content:"\00a0"}
+#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
+#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
+#toc>ul{margin-left:.125em}
+#toc ul.sectlevel0>li>a{font-style:italic}
+#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
+#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
+#toc li{line-height:1.3334;margin-top:.3334em}
+#toc a{text-decoration:none}
+#toc a:active{text-decoration:underline}
+#toctitle{color:#7a2518;font-size:1.2em}
+@media screen and (min-width:768px){#toctitle{font-size:1.375em}
+body.toc2{padding-left:15em;padding-right:0}
+#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
+#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
+#toc.toc2>ul{font-size:.9em;margin-bottom:0}
+#toc.toc2 ul ul{margin-left:0;padding-left:1em}
+#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
+body.toc2.toc-right{padding-left:0;padding-right:15em}
+body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}
+@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
+#toc.toc2{width:20em}
+#toc.toc2 #toctitle{font-size:1.375em}
+#toc.toc2>ul{font-size:.95em}
+#toc.toc2 ul ul{padding-left:1.25em}
+body.toc2.toc-right{padding-left:0;padding-right:20em}}
+#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+#content #toc>:first-child{margin-top:0}
+#content #toc>:last-child{margin-bottom:0}
+#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
+#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
+#content{margin-bottom:.625em}
+.sect1{padding-bottom:.625em}
+@media screen and (min-width:768px){#content{margin-bottom:1.25em}
+.sect1{padding-bottom:1.25em}}
+.sect1:last-child{padding-bottom:0}
+.sect1+.sect1{border-top:1px solid #efefed}
+#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
+#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
+#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
+#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
+#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
+.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
+.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
+.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:80px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
+.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
+.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
+.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
+@media screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
+@media screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
+.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
+.listingblock pre.highlightjs{padding:0}
+.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
+.listingblock pre.prettyprint{border-width:0}
+.listingblock>.content{position:relative}
+.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
+.listingblock:hover code[data-lang]::before{display:block}
+.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:#999}
+.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
+table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
+table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
+table.pyhltable td.code{padding-left:.75em;padding-right:0}
+pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
+pre.pygments .lineno{display:inline-block;margin-right:.25em}
+table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
+.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
+.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
+.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
+.quoteblock blockquote{margin:0;padding:0;border:0}
+.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
+.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
+.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
+.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
+.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
+.quoteblock .quoteblock blockquote::before{display:none}
+.verseblock{margin:0 1em 1.25em}
+.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
+.verseblock pre strong{font-weight:400}
+.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
+.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
+.quoteblock .attribution br,.verseblock .attribution br{display:none}
+.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
+.quoteblock.abstract{margin:0 1em 1.25em;display:block}
+.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
+.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{word-spacing:0;line-height:1.6}
+.quoteblock.abstract blockquote::before,.quoteblock.abstract p::before{display:none}
+table.tableblock{max-width:100%;border-collapse:separate}
+p.tableblock:last-child{margin-bottom:0}
+td.tableblock>.content{margin-bottom:-1.25em}
+table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
+table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
+table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
+table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
+table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
+table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
+table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
+table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
+table.frame-all{border-width:1px}
+table.frame-sides{border-width:0 1px}
+table.frame-topbot,table.frame-ends{border-width:1px 0}
+table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd){background:#f8f8f7}
+table.stripes-none tr,table.stripes-odd tr:nth-of-type(even){background:none}
+th.halign-left,td.halign-left{text-align:left}
+th.halign-right,td.halign-right{text-align:right}
+th.halign-center,td.halign-center{text-align:center}
+th.valign-top,td.valign-top{vertical-align:top}
+th.valign-bottom,td.valign-bottom{vertical-align:bottom}
+th.valign-middle,td.valign-middle{vertical-align:middle}
+table thead th,table tfoot th{font-weight:bold}
+tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
+tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
+p.tableblock>code:only-child{background:none;padding:0}
+p.tableblock{font-size:1em}
+td>div.verse{white-space:pre}
+ol{margin-left:1.75em}
+ul li ol{margin-left:1.5em}
+dl dd{margin-left:1.125em}
+dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
+ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
+ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
+ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
+ul.unstyled,ol.unstyled{margin-left:0}
+ul.checklist{margin-left:.625em}
+ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
+ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
+ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
+ul.inline>li{margin-left:1.25em}
+.unstyled dl dt{font-weight:400;font-style:normal}
+ol.arabic{list-style-type:decimal}
+ol.decimal{list-style-type:decimal-leading-zero}
+ol.loweralpha{list-style-type:lower-alpha}
+ol.upperalpha{list-style-type:upper-alpha}
+ol.lowerroman{list-style-type:lower-roman}
+ol.upperroman{list-style-type:upper-roman}
+ol.lowergreek{list-style-type:lower-greek}
+.hdlist>table,.colist>table{border:0;background:none}
+.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
+td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
+td.hdlist1{font-weight:bold;padding-bottom:1.25em}
+.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
+.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
+.colist td:not([class]):first-child img{max-width:none}
+.colist td:not([class]):last-child{padding:.25em 0}
+.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
+.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
+.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
+.imageblock>.title{margin-bottom:0}
+.imageblock.thumb,.imageblock.th{border-width:6px}
+.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
+.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
+.image.left{margin-right:.625em}
+.image.right{margin-left:.625em}
+a.image{text-decoration:none;display:inline-block}
+a.image object{pointer-events:none}
+sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
+sup.footnote a,sup.footnoteref a{text-decoration:none}
+sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
+#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
+#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
+#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
+#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
+#footnotes .footnote:last-of-type{margin-bottom:0}
+#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
+.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
+.gist .file-data>table td.line-data{width:99%}
+div.unbreakable{page-break-inside:avoid}
+.big{font-size:larger}
+.small{font-size:smaller}
+.underline{text-decoration:underline}
+.overline{text-decoration:overline}
+.line-through{text-decoration:line-through}
+.aqua{color:#00bfbf}
+.aqua-background{background-color:#00fafa}
+.black{color:#000}
+.black-background{background-color:#000}
+.blue{color:#0000bf}
+.blue-background{background-color:#0000fa}
+.fuchsia{color:#bf00bf}
+.fuchsia-background{background-color:#fa00fa}
+.gray{color:#606060}
+.gray-background{background-color:#7d7d7d}
+.green{color:#006000}
+.green-background{background-color:#007d00}
+.lime{color:#00bf00}
+.lime-background{background-color:#00fa00}
+.maroon{color:#600000}
+.maroon-background{background-color:#7d0000}
+.navy{color:#000060}
+.navy-background{background-color:#00007d}
+.olive{color:#606000}
+.olive-background{background-color:#7d7d00}
+.purple{color:#600060}
+.purple-background{background-color:#7d007d}
+.red{color:#bf0000}
+.red-background{background-color:#fa0000}
+.silver{color:#909090}
+.silver-background{background-color:#bcbcbc}
+.teal{color:#006060}
+.teal-background{background-color:#007d7d}
+.white{color:#bfbfbf}
+.white-background{background-color:#fafafa}
+.yellow{color:#bfbf00}
+.yellow-background{background-color:#fafa00}
+span.icon>.fa{cursor:default}
+a span.icon>.fa{cursor:inherit}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
+.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]::after{content:attr(data-value)}
+pre .conum[data-value]{position:relative;top:-.125em}
+b.conum *{color:inherit!important}
+.conum:not([data-value]):empty{display:none}
+dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
+h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
+p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
+p{margin-bottom:1.25rem}
+.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
+.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
+.print-only{display:none!important}
+@page{margin:1.25cm .75cm}
+@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
+html{font-size:80%}
+a{color:inherit!important;text-decoration:underline!important}
+a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
+a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
+abbr[title]::after{content:" (" attr(title) ")"}
+pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
+thead{display:table-header-group}
+svg{max-width:100%}
+p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
+h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
+#toc,.sidebarblock,.exampleblock>.content{background:none!important}
+#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
+body.book #header{text-align:center}
+body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
+body.book #header .details{border:0!important;display:block;padding:0!important}
+body.book #header .details span:first-child{margin-left:0!important}
+body.book #header .details br{display:block}
+body.book #header .details br+span::before{content:none!important}
+body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
+body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
+.listingblock code[data-lang]::before{display:block}
+#footer{padding:0 .9375em}
+.hide-on-print{display:none!important}
+.print-only{display:block!important}
+.hide-for-print{display:none!important}
+.show-for-print{display:inherit!important}}
+@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
+.sect1{padding:0!important}
+.sect1+.sect1{border:0}
+#footer{background:none}
+#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
+@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
+</style>
+</head>
+<body class="book">
+<div id="header">
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/overview.adoc[]<br>
+Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/paths.adoc[]<br>
+Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/security.adoc[]<br>
+Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/definitions.adoc[]</p>
+</div>
+</div>
+</div>
+</div>
+<div id="footer">
+<div id="footer-text">
+Last updated 2021-05-06 17:18:25 BST
+</div>
+</div>
+</body>
+</html>
diff --git a/src/main/docker/backend/Dockerfile b/runtime/src/main/docker/backend/Dockerfile
index 63268d805..bb964158e 100644
--- a/src/main/docker/backend/Dockerfile
+++ b/runtime/src/main/docker/backend/Dockerfile
@@ -2,7 +2,7 @@
# ============LICENSE_START=======================================================
# ONAP CLAMP
# ================================================================================
-# Copyright (C) 2018 AT&T Intellectual Property. All rights
+# Copyright (C) 2018, 2021 AT&T Intellectual Property. All rights
# reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,7 +21,7 @@
#
###
-FROM onap/integration-java11:7.1.0
+FROM onap/integration-java11:8.0.0
MAINTAINER "The Onap Team"
LABEL Description="This image contains alpine, openjdk 11 and policy clamp"
@@ -41,7 +41,13 @@ RUN mkdir -p /opt/policy/clamp && \
VOLUME /opt/policy/clamp/config
COPY --chown=onap:onap onap-policy-clamp-backend/policy-clamp-backend.jar /opt/policy/clamp/policy-clamp-backend.jar
+RUN set -x && \
+ apk add --update libintl && \
+ apk add --virtual build_deps gettext && \
+ cp /usr/bin/envsubst /usr/local/bin/envsubst && \
+ apk del build_deps
USER onap
WORKDIR /opt/policy/clamp/
-ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-XX:MinRAMPercentage=50.0", "-XX:MaxRAMPercentage=75.0","-jar" ,"./policy-clamp-backend.jar"] \ No newline at end of file
+ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-XX:MinRAMPercentage=50.0", "-XX:MaxRAMPercentage=75.0","-jar" ,"./policy-clamp-backend.jar"]
+
diff --git a/src/main/docker/backend/backend-files.xml b/runtime/src/main/docker/backend/backend-files.xml
index c73c47f64..c73c47f64 100644
--- a/src/main/docker/backend/backend-files.xml
+++ b/runtime/src/main/docker/backend/backend-files.xml
diff --git a/src/main/docker/frontend/Dockerfile b/runtime/src/main/docker/frontend/Dockerfile
index e67495350..1d64d2a2d 100644
--- a/src/main/docker/frontend/Dockerfile
+++ b/runtime/src/main/docker/frontend/Dockerfile
@@ -1,70 +1,71 @@
-###
-# ============LICENSE_START=======================================================
-# ONAP CLAMP
-# ================================================================================
-# Copyright (C) 2019 AT&T Intellectual Property. All rights
-# reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END============================================
-# ===================================================================
-#
-###
-
-# build environment
-FROM node:12.10.0-alpine as build
-WORKDIR /app
-#ENV PATH /app/node_modules/.bin:$PATH
-COPY onap-policy-clamp-frontend/ /app/
-RUN npm install --silent && \
- npm run build
-
-FROM nginx:1.17.0-alpine
-
-MAINTAINER "The Onap Team"
-LABEL Description="This image contains Clamp frontend"
-
-ARG http_proxy
-ARG https_proxy
-ENV HTTP_PROXY=$http_proxy
-ENV HTTPS_PROXY=$https_proxy
-ENV http_proxy=$HTTP_PROXY
-ENV https_proxy=$HTTPS_PROXY
-
-RUN addgroup onap && \
- adduser -D -G onap clamp && \
- mkdir /var/log/onap && \
- chmod a+rwx /var/log/onap
-
-COPY --from=build /app/build /usr/share/nginx/html
-COPY --from=build /app/ssl /etc/ssl
-
-RUN rm /etc/nginx/conf.d/default.conf && \
- ln -sf /dev/stdout /var/log/nginx/access.log && \
- ln -sf /dev/stderr /var/log/nginx/error.log
-
-COPY nginx/nginx.conf /etc/nginx/nginx.conf
-COPY nginx/default.conf /etc/nginx/conf.d/default.conf
-
-WORKDIR /app
-
-RUN chown -R clamp:onap /app && chmod -R 755 /app && \
- chown -R clamp:onap /var/cache/nginx && \
- chown -R clamp:onap /var/log/nginx && \
- chown -R clamp:onap /etc/nginx/conf.d && \
- touch /var/run/nginx.pid && \
- chown -R clamp:onap /var/run/nginx.pid
-
-USER clamp
-EXPOSE 2443
-CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file
+###
+# ============LICENSE_START=======================================================
+# ONAP CLAMP
+# ================================================================================
+# Copyright (C) 2019 AT&T Intellectual Property. All rights
+# reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END============================================
+# ===================================================================
+#
+###
+
+# build environment
+FROM node:12.10.0-alpine as build
+WORKDIR /app
+#ENV PATH /app/node_modules/.bin:$PATH
+COPY onap-policy-clamp-frontend/ /app/
+RUN npm install --silent && \
+ npm run build
+
+FROM nginx:1.17.0-alpine
+
+MAINTAINER "The Onap Team"
+LABEL Description="This image contains Clamp frontend"
+
+ARG http_proxy
+ARG https_proxy
+ENV HTTP_PROXY=$http_proxy
+ENV HTTPS_PROXY=$https_proxy
+ENV http_proxy=$HTTP_PROXY
+ENV https_proxy=$HTTPS_PROXY
+
+RUN addgroup onap && \
+ adduser -D -G onap clamp && \
+ mkdir /var/log/onap && \
+ chmod a+rwx /var/log/onap
+
+COPY --from=build /app/build /usr/share/nginx/html
+COPY --from=build /app/ssl /etc/ssl
+
+RUN rm /etc/nginx/conf.d/default.conf && \
+ ln -sf /dev/stdout /var/log/nginx/access.log && \
+ ln -sf /dev/stderr /var/log/nginx/error.log
+
+COPY nginx/nginx.conf /etc/nginx/nginx.conf
+COPY nginx/default.conf /etc/nginx/conf.d/default.conf
+
+WORKDIR /app
+
+RUN chown -R clamp:onap /app && chmod -R 755 /app && \
+ chown -R clamp:onap /var/cache/nginx && \
+ chown -R clamp:onap /var/log/nginx && \
+ chown -R clamp:onap /etc/nginx/conf.d && \
+ touch /var/run/nginx.pid && \
+ chown -R clamp:onap /var/run/nginx.pid
+
+USER clamp
+EXPOSE 2443
+CMD ["nginx", "-g", "daemon off;"]
+
diff --git a/src/main/docker/frontend/frontend-files.xml b/runtime/src/main/docker/frontend/frontend-files.xml
index aaf32be81..aaf32be81 100644
--- a/src/main/docker/frontend/frontend-files.xml
+++ b/runtime/src/main/docker/frontend/frontend-files.xml
diff --git a/src/main/docker/frontend/nginx/default.conf b/runtime/src/main/docker/frontend/nginx/default.conf
index 570806034..570806034 100644
--- a/src/main/docker/frontend/nginx/default.conf
+++ b/runtime/src/main/docker/frontend/nginx/default.conf
diff --git a/src/main/docker/frontend/nginx/nginx.conf b/runtime/src/main/docker/frontend/nginx/nginx.conf
index beeb2b1eb..beeb2b1eb 100644
--- a/src/main/docker/frontend/nginx/nginx.conf
+++ b/runtime/src/main/docker/frontend/nginx/nginx.conf
diff --git a/src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java b/runtime/src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java
index f703e3363..89be4fc28 100644
--- a/src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Modifications Copyright (c) 2019 Samsung
@@ -48,17 +48,14 @@ import org.springframework.stereotype.Component;
public class AuthorizationController {
protected static final EELFLogger logger =
- EELFManager.getInstance().getLogger(AuthorizationController.class);
+ EELFManager.getInstance().getLogger(AuthorizationController.class);
protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
- protected static final EELFLogger securityLogger =
- EELFManager.getInstance().getSecurityLogger();
+ protected static final EELFLogger securityLogger = EELFManager.getInstance().getSecurityLogger();
// By default we'll set it to a default handler
@Autowired
private ClampProperties refProp;
- private SecurityContext securityContext = SecurityContextHolder.getContext();
-
public static final String PERM_PREFIX = "security.permission.type.";
private static final String PERM_INSTANCE = "security.permission.instance";
@@ -81,23 +78,19 @@ public class AuthorizationController {
*/
public static String getPrincipalName(SecurityContext securityContext) {
String principal = AuthorizationController.retrieveUserName(securityContext);
- String name = "Not found";
- if (principal != null) {
- name = principal;
- }
- return name;
+ return principal != null ? principal : "Not found";
}
/**
* Insert authorize the api based on the permission.
*
* @param camelExchange The Camel Exchange object containing the properties
- * @param typeVar The type of the permissions
- * @param instanceVar The instance of the permissions. e.g. dev
- * @param action The action of the permissions. e.g. read
+ * @param typeVar The type of the permissions
+ * @param instanceVar The instance of the permissions. e.g. dev
+ * @param action The action of the permissions. e.g. read
*/
public void authorize(Exchange camelExchange, String typeVar, String instanceVar,
- String action) {
+ String action) {
String type = refProp.getStringValue(PERM_PREFIX + typeVar);
String instance = refProp.getStringValue(PERM_INSTANCE);
@@ -108,7 +101,7 @@ public class AuthorizationController {
if (null != instanceVar && !instanceVar.isEmpty()) {
instance = instanceVar;
}
- String principalName = AuthorizationController.getPrincipalName(this.securityContext);
+ String principalName = AuthorizationController.getPrincipalName(SecurityContextHolder.getContext());
SecureServicePermission perm = SecureServicePermission.create(type, instance, action);
Date startTime = new Date();
LoggingUtils.setTargetContext("Clamp", "authorize");
@@ -131,23 +124,23 @@ public class AuthorizationController {
*/
public boolean isUserPermitted(SecureServicePermission inPermission) {
- String principalName = AuthorizationController.getPrincipalName(this.securityContext);
+ String principalName = AuthorizationController.getPrincipalName(SecurityContextHolder.getContext());
// check if the user has the permission key or the permission key with a
// combination of all instance and/or all action.
if (hasRole(inPermission.getKey()) || hasRole(inPermission.getKeyAllInstance())) {
auditLogger.info("{} authorized because user has permission with * for instance: {}",
- principalName, inPermission.getKey().replace("|", ":"));
+ principalName, inPermission.getKey().replace("|", ":"));
return true;
// the rest of these don't seem to be required - isUserInRole method
// appears to take * as a wildcard
} else if (hasRole(inPermission.getKeyAllInstanceAction())) {
auditLogger.info(
- "{} authorized because user has permission with * for instance and * for action: {}",
- principalName, inPermission.getKey().replace("|", ":"));
+ "{} authorized because user has permission with * for instance and * for action: {}",
+ principalName, inPermission.getKey().replace("|", ":"));
return true;
} else if (hasRole(inPermission.getKeyAllAction())) {
auditLogger.info("{} authorized because user has permission with * for action: {}",
- principalName, inPermission.getKey().replace("|", ":"));
+ principalName, inPermission.getKey().replace("|", ":"));
return true;
} else {
return false;
@@ -155,7 +148,7 @@ public class AuthorizationController {
}
protected boolean hasRole(String role) {
- Authentication authentication = securityContext.getAuthentication();
+ Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication == null) {
return false;
}
@@ -176,11 +169,11 @@ public class AuthorizationController {
*/
public ClampInformation getClampInformation() {
ClampInformation clampInfo = new ClampInformation();
- Authentication authentication = securityContext.getAuthentication();
+ Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication == null) {
return new ClampInformation();
}
- clampInfo.setUserName(AuthorizationController.getPrincipalName(this.securityContext));
+ clampInfo.setUserName(AuthorizationController.getPrincipalName(SecurityContextHolder.getContext()));
for (GrantedAuthority auth : authentication.getAuthorities()) {
clampInfo.getAllPermissions().add(auth.getAuthority());
}
diff --git a/src/main/java/org/onap/policy/clamp/authorization/CldsUser.java b/runtime/src/main/java/org/onap/policy/clamp/authorization/CldsUser.java
index 8f1e2bf67..8f1e2bf67 100644
--- a/src/main/java/org/onap/policy/clamp/authorization/CldsUser.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/authorization/CldsUser.java
diff --git a/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java b/runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java
index 41887a315..41887a315 100644
--- a/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java
diff --git a/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java b/runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java
index 0b178c256..0b178c256 100644
--- a/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java
diff --git a/src/main/java/org/onap/policy/clamp/authorization/UserService.java b/runtime/src/main/java/org/onap/policy/clamp/authorization/UserService.java
index c748a5a54..96347f82f 100644
--- a/src/main/java/org/onap/policy/clamp/authorization/UserService.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/authorization/UserService.java
@@ -22,8 +22,6 @@
package org.onap.policy.clamp.authorization;
-
-import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
@@ -34,14 +32,12 @@ import org.springframework.stereotype.Controller;
@Controller
public class UserService {
- private SecurityContext securityContext = SecurityContextHolder.getContext();
-
/**
* REST service that returns the username.
*
* @return the user name
*/
public String getUser() {
- return AuthorizationController.getPrincipalName(securityContext);
+ return AuthorizationController.getPrincipalName(SecurityContextHolder.getContext());
}
} \ No newline at end of file
diff --git a/src/main/java/org/onap/policy/clamp/clds/Application.java b/runtime/src/main/java/org/onap/policy/clamp/clds/Application.java
index 79247ca63..ba300ac09 100644
--- a/src/main/java/org/onap/policy/clamp/clds/Application.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/Application.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Modifications Copyright (c) 2019 Samsung
@@ -28,13 +28,13 @@ package org.onap.policy.clamp.clds;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
import java.io.IOException;
-import java.io.InputStream;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Enumeration;
+import org.apache.camel.component.servlet.springboot.ServletMappingAutoConfiguration;
import org.apache.catalina.connector.Connector;
import org.onap.policy.clamp.clds.util.ClampVersioning;
import org.onap.policy.clamp.clds.util.ResourceFileUtils;
@@ -61,10 +61,11 @@ import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
-@ComponentScan(basePackages = { "org.onap.policy.clamp" })
-@SpringBootApplication(exclude = { SecurityAutoConfiguration.class, UserDetailsServiceAutoConfiguration.class })
-@EnableJpaRepositories(basePackages = { "org.onap.policy.clamp" })
-@EntityScan(basePackages = { "org.onap.policy.clamp" })
+@ComponentScan(basePackages = {"org.onap.policy.clamp"})
+@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, UserDetailsServiceAutoConfiguration.class,
+ ServletMappingAutoConfiguration.class})
+@EnableJpaRepositories(basePackages = {"org.onap.policy.clamp"})
+@EntityScan(basePackages = {"org.onap.policy.clamp"})
@EnableTransactionManagement
@EnableConfigurationProperties
@EnableAsync
@@ -76,7 +77,7 @@ public class Application extends SpringBootServletInitializer {
// This settings is an additional one to Spring config,
// only if we want to have an additional port automatically redirected to
// HTTPS
- @Value("${server.http-to-https-redirection.port:none}")
+ @Value("${server.http-to-https-redirection.port:#{null}}")
private String httpRedirectedPort;
/**
* This 8080 is the default port used by spring if this parameter is not
@@ -84,8 +85,19 @@ public class Application extends SpringBootServletInitializer {
*/
@Value("${server.port:8080}")
private String springServerPort;
- @Value("${server.ssl.key-store:none}")
- private String sslKeystoreFile;
+
+ @Value("${server.ssl.key-store:#{null}}")
+ private String keystoreFile;
+
+ @Value("${server.ssl.key-store-password:#{null}}")
+ private String keyStorePass;
+
+ @Value("${server.ssl.key-store-type:JKS}")
+ private String keyStoreType;
+
+
+ @Value("${clamp.config.keyFile:classpath:/clds/aaf/org.onap.clamp.keyfile}")
+ private String keyFile;
@Autowired
private Environment env;
@@ -95,6 +107,11 @@ public class Application extends SpringBootServletInitializer {
return application.sources(Application.class);
}
+ /**
+ * Main method that starts the Clamp backend.
+ *
+ * @param args app params
+ */
public static void main(String[] args) {
// Start the Spring application
SpringApplication.run(Application.class, args);
@@ -124,7 +141,7 @@ public class Application extends SpringBootServletInitializer {
@Bean
public ServletWebServerFactory getEmbeddedServletContainerFactory() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
- if (!"none".equals(httpRedirectedPort) && !"none".equals(sslKeystoreFile)) {
+ if (httpRedirectedPort != null && keystoreFile != null) {
// Automatically redirect to HTTPS
tomcat = new TomcatEmbeddedServletContainerFactoryRedirection();
Connector newConnector = createRedirectConnector(Integer.parseInt(springServerPort));
@@ -152,14 +169,10 @@ public class Application extends SpringBootServletInitializer {
private String getSslExpirationDate() throws IOException {
StringBuilder result = new StringBuilder(" :: SSL Certificates :: ");
try {
- if (env.getProperty("server.ssl.key-store") != null) {
-
- KeyStore keystore = KeyStore.getInstance(env.getProperty("server.ssl.key-store-type"));
- String password = PassDecoder.decode(env.getProperty("server.ssl.key-store-password"),
- env.getProperty("clamp.config.keyFile"));
- String keyStore = env.getProperty("server.ssl.key-store");
- InputStream is = ResourceFileUtils.getResourceAsStream(keyStore.replaceAll("classpath:", ""));
- keystore.load(is, password.toCharArray());
+ if (keystoreFile != null) {
+ KeyStore keystore = KeyStore.getInstance(keyStoreType);
+ keystore.load(ResourceFileUtils.getResourceAsStream(keystoreFile.replace("classpath:", "")),
+ PassDecoder.decode(keyStorePass, keyFile).toCharArray());
Enumeration<String> aliases = keystore.aliases();
while (aliases.hasMoreElements()) {
diff --git a/src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java b/runtime/src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java
index 939cea49c..939cea49c 100644
--- a/src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java b/runtime/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java
index 5149dd3b7..ccde7cf11 100644
--- a/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
* Copyright (C) 2018, 2021 AT&T Intellectual Property. All rights
* reserved.
@@ -31,12 +31,14 @@ import java.io.IOException;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.camel.component.servlet.CamelHttpTransportServlet;
+import org.apache.commons.lang3.StringUtils;
import org.onap.policy.clamp.authorization.SecureServicePermission;
import org.springframework.context.ApplicationContext;
import org.springframework.http.HttpStatus;
@@ -46,6 +48,7 @@ import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
+import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class ClampServlet extends CamelHttpTransportServlet {
@@ -70,9 +73,22 @@ public class ClampServlet extends CamelHttpTransportServlet {
private static List<SecureServicePermission> permissionList;
private synchronized List<String> loadDynamicAuthenticationClasses() {
- return Arrays.stream(WebApplicationContextUtils.getWebApplicationContext(getServletContext())
- .getEnvironment().getProperty(AUTHENTICATION_CLASS).split(",")).map(className -> className.trim())
- .collect(Collectors.toList());
+ WebApplicationContext webAppContext = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
+ if (webAppContext != null) {
+ String authClassProperty = webAppContext.getEnvironment().getProperty(AUTHENTICATION_CLASS);
+ if (!StringUtils.isBlank(authClassProperty)) {
+ return Arrays.stream(authClassProperty.split(",")).map(String::trim)
+ .collect(Collectors.toList());
+ }
+ logger.warn(
+ "No authentication classes defined in Clamp BE config " + AUTHENTICATION_CLASS
+ + " AAF authentication could be broken due to that");
+ } else {
+ logger.error(
+ "WebApplicationContext is NULL, no authentication classes will be loaded in clamp BE"
+ + ", AAF authentication could be broken");
+ }
+ return Collections.emptyList();
}
private synchronized List<SecureServicePermission> getPermissionList() {
diff --git a/src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java b/runtime/src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java
index f66a09c41..f66a09c41 100644
--- a/src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java b/runtime/src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java
index ff79ef413..cb74ad9e4 100644
--- a/src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java
@@ -1,227 +1,229 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 Huawei Technologies Co., Ltd.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- * ================================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.client;
-
-import static java.lang.Boolean.parseBoolean;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import java.util.Date;
-import java.util.Map;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Exchange;
-import org.apache.camel.builder.ExchangeBuilder;
-import org.onap.policy.clamp.clds.exception.cds.CdsParametersException;
-import org.onap.policy.clamp.clds.model.cds.CdsBpWorkFlowListResponse;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.clds.util.LoggingUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- * This class implements the communication with CDS for the service inventory.
- */
-@Component
-public class CdsServices {
-
- @Autowired
- CamelContext camelContext;
-
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CdsServices.class);
-
- private static final String TYPE = "type";
- private static final String PROPERTIES = "properties";
- private static final String LIST = "list";
-
- /**
- * Constructor.
- */
- @Autowired
- public CdsServices() {
- }
-
-
- /**
- * Query CDS to get blueprint's workflow list.
- *
- * @param blueprintName CDS blueprint name
- * @param blueprintVersion CDS blueprint version
- * @return CdsBpWorkFlowListResponse CDS blueprint's workflow list
- */
- public CdsBpWorkFlowListResponse getBlueprintWorkflowList(String blueprintName, String blueprintVersion) {
- LoggingUtils.setTargetContext("CDS", "getBlueprintWorkflowList");
-
- Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext)
- .withProperty("blueprintName", blueprintName).withProperty("blueprintVersion", blueprintVersion)
- .build();
-
- Exchange exchangeResponse = camelContext.createProducerTemplate()
- .send("direct:get-blueprint-workflow-list", myCamelExchange);
-
- if (Integer.valueOf(200).equals(exchangeResponse.getIn().getHeader("CamelHttpResponseCode"))) {
- String cdsResponse = (String) exchangeResponse.getIn().getBody();
- logger.info("getBlueprintWorkflowList, response from CDS:" + cdsResponse);
- LoggingUtils.setResponseContext("0", "Get Blueprint workflow list", this.getClass().getName());
- Date startTime = new Date();
- LoggingUtils.setTimeContext(startTime, new Date());
- return JsonUtils.GSON_JPA_MODEL.fromJson(cdsResponse, CdsBpWorkFlowListResponse.class);
- } else {
- logger.error("CDS getBlueprintWorkflowList FAILED");
- return null;
- }
-
- }
-
- /**
- * Query CDS to get input properties of workflow.
- *
- * @param blueprintName CDS blueprint name
- * @param blueprintVersion CDS blueprint name
- * @param workflow CDS blueprint's workflow
- * @return input properties in json format
- */
- public JsonObject getWorkflowInputProperties(String blueprintName, String blueprintVersion,
- String workflow) {
- LoggingUtils.setTargetContext("CDS", "getWorkflowInputProperties");
-
- Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext)
- .withBody(getCdsPayloadForWorkFlow(blueprintName, blueprintVersion, workflow))
- .build();
-
- Exchange exchangeResponse = camelContext.createProducerTemplate()
- .send("direct:get-blueprint-workflow-input-properties", myCamelExchange);
-
- if (Integer.valueOf(200).equals(exchangeResponse.getIn().getHeader("CamelHttpResponseCode"))) {
- String cdsResponse = (String) exchangeResponse.getIn().getBody();
- logger.info("getWorkflowInputProperties, response from CDS:" + cdsResponse);
- LoggingUtils.setResponseContext("0", "Get Blueprint workflow input properties", this.getClass().getName());
- Date startTime = new Date();
- LoggingUtils.setTimeContext(startTime, new Date());
- return parseCdsResponse(cdsResponse);
- } else {
- logger.error("CDS getWorkflowInputProperties FAILED");
- return null;
- }
- }
-
- protected JsonObject parseCdsResponse(String response) {
- JsonObject root = JsonParser.parseString(response).getAsJsonObject();
- JsonObject inputs = root.getAsJsonObject("workFlowData").getAsJsonObject("inputs");
- JsonObject dataTypes = root.getAsJsonObject("dataTypes");
-
- JsonObject workFlowProperties = new JsonObject();
- workFlowProperties.add("inputs", getInputProperties(inputs, dataTypes, new JsonObject()));
- return workFlowProperties;
- }
-
- private JsonObject getInputProperties(JsonObject inputs, JsonObject dataTypes,
- JsonObject inputObject) {
- if (inputs == null) {
- return inputObject;
- }
-
- for (Map.Entry<String, JsonElement> entry : inputs.entrySet()) {
- String key = entry.getKey();
- JsonObject inputProperty = inputs.getAsJsonObject(key);
- String type = inputProperty.get(TYPE).getAsString();
- if (isComplexType(type, dataTypes)) {
- inputObject.add(key, handleComplexType(type, dataTypes));
- } else if (LIST.equalsIgnoreCase(type)) {
- handleListType(key, inputProperty, dataTypes, inputObject);
- } else if (isInputParam(inputProperty)) {
- inputObject.add(key, entry.getValue());
- }
- }
- return inputObject;
- }
-
- private void handleListType(String propertyName,
- JsonObject inputProperty,
- JsonObject dataTypes,
- JsonObject inputObject) {
- if (inputProperty.get("entry_schema") == null) {
- throw new CdsParametersException("Entry schema is null for " + propertyName);
- }
-
- String type = inputProperty.get("entry_schema").getAsJsonObject().get(
- TYPE).getAsString();
- if (dataTypes.get(type) != null) {
- JsonObject jsonObject = new JsonObject();
- jsonObject.addProperty(TYPE, LIST);
- jsonObject.add(PROPERTIES, getPropertiesObject(type, dataTypes));
- inputObject.add(propertyName, jsonObject);
- } else if (isInputParam(inputProperty)) {
- inputObject.add(propertyName, inputProperty);
- }
- }
-
- private JsonObject handleComplexType(String key, JsonObject dataTypes) {
- JsonObject jsonObject = new JsonObject();
- jsonObject.addProperty(TYPE, "object");
- jsonObject.add(PROPERTIES, getPropertiesObject(key, dataTypes));
- return jsonObject;
- }
-
- private JsonObject getPropertiesObject(String key, JsonObject dataTypes) {
- JsonObject properties = dataTypes.get(key).getAsJsonObject().get(PROPERTIES).getAsJsonObject();
- JsonObject object = new JsonObject();
- getInputProperties(properties, dataTypes, object);
- return object;
- }
-
- private boolean isComplexType(String type, JsonObject dataTypes) {
- if (dataTypes == null) {
- return false;
- }
- return dataTypes.get(type) != null;
- }
-
- private boolean isInputParam(JsonObject inputProperty) {
- JsonElement inputParam = inputProperty.get("input-param");
- if (inputParam == null) {
- return false;
- }
- return parseBoolean(inputParam.getAsString());
- }
-
- /**
- * Creates payload to query CDS to get workflow input properties.
- *
- * @param blueprintName CDS blueprint name
- * @param version CDS blueprint version
- * @param workflow CDS blueprint workflow
- * @return returns payload in json format
- */
- public String getCdsPayloadForWorkFlow(String blueprintName, String version, String workflow) {
- JsonObject jsonObject = new JsonObject();
- jsonObject.addProperty("blueprintName", blueprintName);
- jsonObject.addProperty("version", version);
- jsonObject.addProperty("returnContent", "json");
- jsonObject.addProperty("workflowName", workflow);
- jsonObject.addProperty("specType", "TOSCA");
- return jsonObject.toString();
- }
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd.
+ * ================================================================================
+ * Modifications Copyright (C) 2021 AT&T.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ * ================================================================================
+ *
+ */
+
+package org.onap.policy.clamp.clds.client;
+
+import static java.lang.Boolean.parseBoolean;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import java.io.IOException;
+import java.util.Date;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.ExchangeBuilder;
+import org.onap.policy.clamp.clds.exception.cds.CdsParametersException;
+import org.onap.policy.clamp.clds.model.cds.CdsBpWorkFlowListResponse;
+import org.onap.policy.clamp.clds.util.JsonUtils;
+import org.onap.policy.clamp.clds.util.LoggingUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Component;
+
+/**
+ * This class implements the communication with CDS for the service inventory.
+ */
+@Component
+public class CdsServices {
+
+ @Autowired
+ CamelContext camelContext;
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CdsServices.class);
+
+ private static final String TYPE = "type";
+ private static final String PROPERTIES = "properties";
+ private static final String LIST = "list";
+
+ /**
+ * Query CDS to get blueprint's workflow list.
+ *
+ * @param blueprintName CDS blueprint name
+ * @param blueprintVersion CDS blueprint version
+ * @return CdsBpWorkFlowListResponse CDS blueprint's workflow list
+ */
+ public CdsBpWorkFlowListResponse getBlueprintWorkflowList(String blueprintName, String blueprintVersion) {
+ LoggingUtils.setTargetContext("CDS", "getBlueprintWorkflowList");
+
+ try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) {
+ Exchange exchangeResponse =
+ producerTemplate.send("direct:get-blueprint-workflow-list", ExchangeBuilder.anExchange(camelContext)
+ .withProperty("blueprintName", blueprintName)
+ .withProperty("blueprintVersion", blueprintVersion)
+ .withProperty("raiseHttpExceptionFlag", false).build());
+
+ if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
+ .is2xxSuccessful()) {
+ String cdsResponse = (String) exchangeResponse.getIn().getBody();
+ logger.info("getBlueprintWorkflowList, response from CDS:" + cdsResponse);
+ LoggingUtils.setResponseContext("0", "Get Blueprint workflow list", this.getClass().getName());
+ Date startTime = new Date();
+ LoggingUtils.setTimeContext(startTime, new Date());
+ return JsonUtils.GSON_JPA_MODEL.fromJson(cdsResponse, CdsBpWorkFlowListResponse.class);
+ } else {
+ logger.error("CDS getBlueprintWorkflowList FAILED");
+ }
+ } catch (IOException e) {
+ logger.error("IOException caught when trying to execute get-blueprint-workflow-list flow", e);
+ }
+ return null;
+ }
+
+ /**
+ * Query CDS to get input properties of workflow.
+ *
+ * @param blueprintName CDS blueprint name
+ * @param blueprintVersion CDS blueprint name
+ * @param workflow CDS blueprint's workflow
+ * @return input properties in json format
+ */
+ public JsonObject getWorkflowInputProperties(String blueprintName, String blueprintVersion,
+ String workflow) {
+ LoggingUtils.setTargetContext("CDS", "getWorkflowInputProperties");
+
+ try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) {
+ Exchange exchangeResponse = producerTemplate
+ .send("direct:get-blueprint-workflow-input-properties", ExchangeBuilder.anExchange(camelContext)
+ .withBody(getCdsPayloadForWorkFlow(blueprintName, blueprintVersion, workflow))
+ .withProperty("raiseHttpExceptionFlag", false).build());
+ if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
+ .is2xxSuccessful()) {
+ String cdsResponse = (String) exchangeResponse.getIn().getBody();
+ logger.info("getWorkflowInputProperties, response from CDS:" + cdsResponse);
+ LoggingUtils
+ .setResponseContext("0", "Get Blueprint workflow input properties", this.getClass().getName());
+ Date startTime = new Date();
+ LoggingUtils.setTimeContext(startTime, new Date());
+ return parseCdsResponse(cdsResponse);
+ } else {
+ logger.error("CDS getWorkflowInputProperties FAILED");
+ }
+ } catch (IOException e) {
+ logger.error("IOException caught when trying to execute get-blueprint-workflow-input-properties flow", e);
+ }
+ return null;
+ }
+
+ protected JsonObject parseCdsResponse(String response) {
+ JsonObject root = JsonParser.parseString(response).getAsJsonObject();
+ JsonObject inputs = root.getAsJsonObject("workFlowData").getAsJsonObject("inputs");
+ JsonObject dataTypes = root.getAsJsonObject("dataTypes");
+
+ JsonObject workFlowProperties = new JsonObject();
+ workFlowProperties.add("inputs", getInputProperties(inputs, dataTypes, new JsonObject()));
+ return workFlowProperties;
+ }
+
+ private JsonObject getInputProperties(JsonObject inputs, JsonObject dataTypes, JsonObject inputObject) {
+ if (inputs == null) {
+ return inputObject;
+ }
+
+ for (Map.Entry<String, JsonElement> entry : inputs.entrySet()) {
+ String key = entry.getKey();
+ JsonObject inputProperty = inputs.getAsJsonObject(key);
+ String type = inputProperty.get(TYPE).getAsString();
+ if (isComplexType(type, dataTypes)) {
+ inputObject.add(key, handleComplexType(type, dataTypes));
+ } else if (LIST.equalsIgnoreCase(type)) {
+ handleListType(key, inputProperty, dataTypes, inputObject);
+ } else if (isInputParam(inputProperty)) {
+ inputObject.add(key, entry.getValue());
+ }
+ }
+ return inputObject;
+ }
+
+ private void handleListType(String propertyName,
+ JsonObject inputProperty,
+ JsonObject dataTypes,
+ JsonObject inputObject) {
+ if (inputProperty.get("entry_schema") == null) {
+ throw new CdsParametersException("Entry schema is null for " + propertyName);
+ }
+
+ String type = inputProperty.get("entry_schema").getAsJsonObject().get(
+ TYPE).getAsString();
+ if (dataTypes != null && dataTypes.get(type) != null) {
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty(TYPE, LIST);
+ jsonObject.add(PROPERTIES, getPropertiesObject(type, dataTypes));
+ inputObject.add(propertyName, jsonObject);
+ } else if (isInputParam(inputProperty)) {
+ inputObject.add(propertyName, inputProperty);
+ }
+ }
+
+ private JsonObject handleComplexType(String key, JsonObject dataTypes) {
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty(TYPE, "object");
+ jsonObject.add(PROPERTIES, getPropertiesObject(key, dataTypes));
+ return jsonObject;
+ }
+
+ private JsonObject getPropertiesObject(String key, JsonObject dataTypes) {
+ JsonObject properties = dataTypes.get(key).getAsJsonObject().get(PROPERTIES).getAsJsonObject();
+ JsonObject object = new JsonObject();
+ getInputProperties(properties, dataTypes, object);
+ return object;
+ }
+
+ private boolean isComplexType(String type, JsonObject dataTypes) {
+ if (dataTypes == null) {
+ return false;
+ }
+ return dataTypes.get(type) != null;
+ }
+
+ private boolean isInputParam(JsonObject inputProperty) {
+ JsonElement inputParam = inputProperty.get("input-param");
+ if (inputParam == null) {
+ return false;
+ }
+ return parseBoolean(inputParam.getAsString());
+ }
+
+ /**
+ * Creates payload to query CDS to get workflow input properties.
+ *
+ * @param blueprintName CDS blueprint name
+ * @param version CDS blueprint version
+ * @param workflow CDS blueprint workflow
+ * @return returns payload in json format
+ */
+ public String getCdsPayloadForWorkFlow(String blueprintName, String version, String workflow) {
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty("blueprintName", blueprintName);
+ jsonObject.addProperty("version", version);
+ jsonObject.addProperty("returnContent", "json");
+ jsonObject.addProperty("workflowName", workflow);
+ jsonObject.addProperty("specType", "TOSCA");
+ return jsonObject.toString();
+ }
+}
diff --git a/src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java b/runtime/src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java
index fed061e7d..843107040 100644
--- a/src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java
@@ -1,139 +1,144 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * Modifications copyright (c) 2018 Nokia
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.client;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import java.io.IOException;
-import java.util.Date;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Exchange;
-import org.apache.camel.builder.ExchangeBuilder;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
-import org.json.simple.parser.ParseException;
-import org.onap.policy.clamp.clds.config.ClampProperties;
-import org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse;
-import org.onap.policy.clamp.clds.util.JsonUtils;
-import org.onap.policy.clamp.clds.util.LoggingUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- * This class implements the communication with DCAE for the service inventory.
- */
-@Component
-public class DcaeInventoryServices {
-
- @Autowired
- CamelContext camelContext;
-
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeInventoryServices.class);
- protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
- protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
- public static final String DCAE_INVENTORY_URL = "dcae.inventory.url";
- public static final String DCAE_INVENTORY_RETRY_INTERVAL = "dcae.intentory.retry.interval";
- public static final String DCAE_INVENTORY_RETRY_LIMIT = "dcae.intentory.retry.limit";
- private final ClampProperties refProp;
-
- /**
- * Constructor.
- */
- @Autowired
- public DcaeInventoryServices(ClampProperties refProp) {
- this.refProp = refProp;
- }
-
- private int getTotalCountFromDcaeInventoryResponse(String responseStr) throws ParseException {
- JSONParser parser = new JSONParser();
- Object obj0 = parser.parse(responseStr);
- JSONObject jsonObj = (JSONObject) obj0;
- Long totalCount = (Long) jsonObj.get("totalCount");
- return totalCount.intValue();
- }
-
- private DcaeInventoryResponse getItemsFromDcaeInventoryResponse(String responseStr) throws ParseException {
- JSONParser parser = new JSONParser();
- Object obj0 = parser.parse(responseStr);
- JSONObject jsonObj = (JSONObject) obj0;
- JSONArray itemsArray = (JSONArray) jsonObj.get("items");
- JSONObject dcaeServiceType0 = (JSONObject) itemsArray.get(0);
- return JsonUtils.GSON.fromJson(dcaeServiceType0.toString(), DcaeInventoryResponse.class);
- }
-
- /**
- * DO a query to DCAE to get some Information.
- *
- * @param artifactName The artifact Name
- * @param serviceUuid The service UUID
- * @param resourceUuid The resource UUID
- * @return The DCAE inventory for the artifact in DcaeInventoryResponse
- * @throws IOException In case of issues with the stream
- * @throws ParseException In case of issues with the Json parsing
- */
- public DcaeInventoryResponse getDcaeInformation(String artifactName, String serviceUuid, String resourceUuid)
- throws IOException, ParseException, InterruptedException {
- LoggingUtils.setTargetContext("DCAE", "getDcaeInformation");
-
- int retryInterval = 0;
- int retryLimit = 1;
- if (refProp.getStringValue(DCAE_INVENTORY_RETRY_LIMIT) != null) {
- retryLimit = Integer.valueOf(refProp.getStringValue(DCAE_INVENTORY_RETRY_LIMIT));
- }
- if (refProp.getStringValue(DCAE_INVENTORY_RETRY_INTERVAL) != null) {
- retryInterval = Integer.valueOf(refProp.getStringValue(DCAE_INVENTORY_RETRY_INTERVAL));
- }
- for (int i = 0; i < retryLimit; i++) {
- Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext)
- .withProperty("blueprintResourceId", resourceUuid).withProperty("blueprintServiceId", serviceUuid)
- .withProperty("blueprintName", artifactName).build();
- metricsLogger.info("Attempt n°" + i + " to contact DCAE inventory");
-
- Exchange exchangeResponse = camelContext.createProducerTemplate()
- .send("direct:get-dcae-blueprint-inventory", myCamelExchange);
-
- if (Integer.valueOf(200).equals(exchangeResponse.getIn().getHeader("CamelHttpResponseCode"))) {
- String dcaeResponse = (String) exchangeResponse.getIn().getBody();
- int totalCount = getTotalCountFromDcaeInventoryResponse(dcaeResponse);
- metricsLogger.info("getDcaeInformation complete: totalCount returned=" + totalCount);
- if (totalCount > 0) {
- logger.info("getDcaeInformation, answer from DCAE inventory:" + dcaeResponse);
- LoggingUtils.setResponseContext("0", "Get Dcae Information success", this.getClass().getName());
- Date startTime = new Date();
- LoggingUtils.setTimeContext(startTime, new Date());
- return getItemsFromDcaeInventoryResponse(dcaeResponse);
- } else {
- logger.info("Dcae inventory totalCount returned is 0, so waiting " + retryInterval
- + "ms before retrying ...");
- // wait for a while and try to connect to DCAE again
- Thread.sleep(retryInterval);
- }
- }
- }
- logger.warn("Dcae inventory totalCount returned is still 0, after " + retryLimit + " attempts, returning NULL");
- return null;
- }
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * Modifications copyright (c) 2018 Nokia
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.clds.client;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import java.io.IOException;
+import java.util.Date;
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.ExchangeBuilder;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
+import org.onap.policy.clamp.clds.config.ClampProperties;
+import org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse;
+import org.onap.policy.clamp.clds.util.JsonUtils;
+import org.onap.policy.clamp.clds.util.LoggingUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Component;
+
+/**
+ * This class implements the communication with DCAE for the service inventory.
+ */
+@Component
+public class DcaeInventoryServices {
+
+ @Autowired
+ CamelContext camelContext;
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeInventoryServices.class);
+ protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
+ protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+ public static final String DCAE_INVENTORY_URL = "dcae.inventory.url";
+ public static final String DCAE_INVENTORY_RETRY_INTERVAL = "dcae.intentory.retry.interval";
+ public static final String DCAE_INVENTORY_RETRY_LIMIT = "dcae.intentory.retry.limit";
+ private final ClampProperties refProp;
+
+ /**
+ * Constructor.
+ */
+ @Autowired
+ public DcaeInventoryServices(ClampProperties refProp) {
+ this.refProp = refProp;
+ }
+
+ private int getTotalCountFromDcaeInventoryResponse(String responseStr) throws ParseException {
+ JSONParser parser = new JSONParser();
+ Object obj0 = parser.parse(responseStr);
+ JSONObject jsonObj = (JSONObject) obj0;
+ Long totalCount = (Long) jsonObj.get("totalCount");
+ return totalCount.intValue();
+ }
+
+ private DcaeInventoryResponse getItemsFromDcaeInventoryResponse(String responseStr) throws ParseException {
+ JSONParser parser = new JSONParser();
+ Object obj0 = parser.parse(responseStr);
+ JSONObject jsonObj = (JSONObject) obj0;
+ JSONArray itemsArray = (JSONArray) jsonObj.get("items");
+ JSONObject dcaeServiceType0 = (JSONObject) itemsArray.get(0);
+ return JsonUtils.GSON.fromJson(dcaeServiceType0.toString(), DcaeInventoryResponse.class);
+ }
+
+ /**
+ * DO a query to DCAE to get some Information.
+ *
+ * @param artifactName The artifact Name
+ * @param serviceUuid The service UUID
+ * @param resourceUuid The resource UUID
+ * @return The DCAE inventory for the artifact in DcaeInventoryResponse
+ * @throws IOException In case of issues with the stream
+ * @throws ParseException In case of issues with the Json parsing
+ */
+ public DcaeInventoryResponse getDcaeInformation(String artifactName, String serviceUuid, String resourceUuid)
+ throws IOException, ParseException, InterruptedException {
+ LoggingUtils.setTargetContext("DCAE", "getDcaeInformation");
+
+ int retryInterval = 0;
+ int retryLimit = 1;
+ if (refProp.getStringValue(DCAE_INVENTORY_RETRY_LIMIT) != null) {
+ retryLimit = Integer.valueOf(refProp.getStringValue(DCAE_INVENTORY_RETRY_LIMIT));
+ }
+ if (refProp.getStringValue(DCAE_INVENTORY_RETRY_INTERVAL) != null) {
+ retryInterval = Integer.valueOf(refProp.getStringValue(DCAE_INVENTORY_RETRY_INTERVAL));
+ }
+ for (int i = 0; i < retryLimit; i++) {
+ metricsLogger.info("Attempt n°" + i + " to contact DCAE inventory");
+ try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) {
+ Exchange exchangeResponse = producerTemplate
+ .send("direct:get-dcae-blueprint-inventory", ExchangeBuilder.anExchange(camelContext)
+ .withProperty("blueprintResourceId", resourceUuid)
+ .withProperty("blueprintServiceId", serviceUuid)
+ .withProperty("blueprintName", artifactName)
+ .withProperty("raiseHttpExceptionFlag", false).build());
+
+ if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
+ .is2xxSuccessful()) {
+ String dcaeResponse = (String) exchangeResponse.getIn().getBody();
+ int totalCount = getTotalCountFromDcaeInventoryResponse(dcaeResponse);
+ metricsLogger.info("getDcaeInformation complete: totalCount returned=" + totalCount);
+ if (totalCount > 0) {
+ logger.info("getDcaeInformation, answer from DCAE inventory:" + dcaeResponse);
+ LoggingUtils.setResponseContext("0", "Get Dcae Information success", this.getClass().getName());
+ Date startTime = new Date();
+ LoggingUtils.setTimeContext(startTime, new Date());
+ return getItemsFromDcaeInventoryResponse(dcaeResponse);
+ } else {
+ logger.info("Dcae inventory totalCount returned is 0, so waiting " + retryInterval
+ + "ms before retrying ...");
+ // wait for a while and try to connect to DCAE again
+ Thread.sleep(retryInterval);
+ }
+ }
+ }
+ }
+ logger.warn("Dcae inventory totalCount returned is still 0, after " + retryLimit + " attempts, returning NULL");
+ return null;
+ }
+}
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java
index 9b6338e00..9b6338e00 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java
new file mode 100644
index 000000000..5f10c0afb
--- /dev/null
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java
@@ -0,0 +1,166 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2018, 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ */
+
+package org.onap.policy.clamp.clds.config;
+
+import java.io.IOException;
+import java.security.KeyManagementException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import java.util.Objects;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManagerFactory;
+import org.apache.camel.CamelContext;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.http.HttpComponent;
+import org.apache.camel.model.rest.RestBindingMode;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.config.Registry;
+import org.apache.http.config.RegistryBuilder;
+import org.apache.http.conn.socket.ConnectionSocketFactory;
+import org.apache.http.conn.socket.PlainConnectionSocketFactory;
+import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
+import org.onap.policy.clamp.clds.util.ClampVersioning;
+import org.onap.policy.clamp.clds.util.ResourceFileUtils;
+import org.onap.policy.clamp.util.PassDecoder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CamelConfiguration extends RouteBuilder {
+
+ private static final String HTTP = "http";
+ private static final String HTTPS = "https";
+
+ @Autowired
+ CamelContext camelContext;
+
+ @Value("${server.ssl.key-store:#{null}}")
+ private String keyStore;
+
+ @Value("${server.ssl.key-store-type:JKS}")
+ private String keyStoreType;
+
+ @Value("${server.ssl.key-store-password:#{null}}")
+ private String keyStorePass;
+
+ @Value("${server.ssl.trust-store:#{null}}")
+ private String trustStore;
+
+ @Value("${server.ssl.trust-store-password:#{null}}")
+ private String trustStorePass;
+
+ @Value("${server.ssl.trust-store-type:JKS}")
+ private String trustStoreType;
+
+ @Value("${server.ssl.trust-store-algorithm:PKIX}")
+ private String trustStoreAlgorithm;
+
+ @Value("${clamp.config.httpclient.connectTimeout:-1}")
+ private int connectTimeout;
+
+ @Value("${clamp.config.httpclient.connectRequestTimeout:-1}")
+ private int connectRequestTimeout;
+
+ @Value("${clamp.config.httpclient.socketTimeout:-1}")
+ private int socketTimeout;
+
+ @Value("${clamp.config.keyFile:#{null}}")
+ private String keyFile;
+
+
+ @Autowired
+ private ClampProperties clampProperties;
+
+ private void configureDefaultSslProperties() {
+ if (trustStore != null) {
+ System.setProperty("javax.net.ssl.trustStore", Thread.currentThread().getContextClassLoader()
+ .getResource(trustStore.replaceFirst("classpath:", "")).getPath());
+ System.setProperty("javax.net.ssl.trustStorePassword", Objects.requireNonNull(
+ PassDecoder.decode(trustStorePass, keyFile)));
+ System.setProperty("javax.net.ssl.trustStoreType", trustStoreType);
+ System.setProperty("ssl.TrustManagerFactory.algorithm", trustStoreAlgorithm);
+ }
+ if (keyStore != null) {
+ System.setProperty("javax.net.ssl.keyStore", Thread.currentThread().getContextClassLoader()
+ .getResource(keyStore.replaceFirst("classpath:", "")).getPath());
+ System.setProperty("javax.net.ssl.keyStorePassword", Objects.requireNonNull(
+ PassDecoder.decode(keyStorePass, keyFile)));
+ System.setProperty("javax.net.ssl.keyStoreType", keyStoreType);
+ }
+
+ }
+
+ private void configureCamelHttpComponent()
+ throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException, CertificateException,
+ IOException {
+ RequestConfig requestConfig = RequestConfig.custom()
+ .setConnectTimeout(connectTimeout)
+ .setConnectionRequestTimeout(connectRequestTimeout)
+ .setSocketTimeout(socketTimeout).build();
+
+ if (trustStore != null) {
+ KeyStore truststore = KeyStore.getInstance(trustStoreType);
+ truststore.load(
+ ResourceFileUtils.getResourceAsStream(trustStore),
+ Objects.requireNonNull(PassDecoder.decode(trustStorePass, keyFile)).toCharArray());
+ TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(trustStoreAlgorithm);
+ trustFactory.init(truststore);
+ SSLContext sslcontext = SSLContext.getInstance("TLS");
+ sslcontext.init(null, trustFactory.getTrustManagers(), null);
+ camelContext.getComponent(HTTPS, HttpComponent.class).setHttpClientConfigurer(builder -> {
+ SSLSocketFactory factory = new SSLSocketFactory(sslcontext,
+ SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
+ builder.setSSLSocketFactory(factory);
+ builder.setConnectionManager(new BasicHttpClientConnectionManager(
+ RegistryBuilder.<ConnectionSocketFactory>create().register(HTTPS, factory).build()))
+ .setDefaultRequestConfig(requestConfig);
+ });
+ }
+ camelContext.getComponent(HTTP, HttpComponent.class).setHttpClientConfigurer(builder -> {
+ Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
+ .register(HTTP, PlainConnectionSocketFactory.getSocketFactory()).build();
+ builder.setConnectionManager(new BasicHttpClientConnectionManager(registry))
+ .setDefaultRequestConfig(requestConfig);
+ });
+ }
+
+ @Override
+ public void configure()
+ throws KeyManagementException, KeyStoreException, NoSuchAlgorithmException, CertificateException,
+ IOException {
+ restConfiguration().component("servlet").bindingMode(RestBindingMode.json).jsonDataFormat("clamp-gson")
+ .dataFormatProperty("prettyPrint", "true")// .enableCORS(true)
+ // turn on swagger api-doc
+ .apiContextPath("api-doc").apiVendorExtension(true).apiProperty("api.title", "Clamp Rest API")
+ .apiProperty("api.version", ClampVersioning.getCldsVersionFromProps())
+ .apiProperty("base.path", "/restservices/clds/");
+
+ // Configure httpClient properties for Camel HTTP/HTTPS calls
+ configureDefaultSslProperties();
+ configureCamelHttpComponent();
+ }
+}
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java
index f11e16733..f11e16733 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java
index 20d7143fb..20d7143fb 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java
index 27cf0b941..27cf0b941 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java
index 015868141..bb7b76af3 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Modifications Copyright (c) 2019 Samsung
@@ -73,6 +73,8 @@ public class DefaultUserConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) {
try {
+ // Do no remove the csrf as recommended by Sonar otherwise Put/post will not work
+ // Moreover this default user class is only used by dev, on prod we use AAF and this code will be disabled
http.csrf().disable().httpBasic().and().authorizeRequests().antMatchers("/restservices/clds/v1/user/**")
.authenticated().anyRequest().permitAll().and().sessionManagement()
.maximumSessions(1);
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java
index a72cffd09..a72cffd09 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java
index 3e2e62b66..3e2e62b66 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java
index 4748edf6d..5d8cbb05e 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
+ * Copyright (C) 2018, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Modifications Copyright (c) 2019 Samsung
@@ -20,7 +20,7 @@
* limitations under the License.
* ============LICENSE_END============================================
* ===================================================================
- *
+ *
*/
package org.onap.policy.clamp.clds.config.sdc;
@@ -37,7 +37,6 @@ import org.onap.policy.clamp.clds.util.JsonUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
-import org.springframework.core.io.Resource;
/**
* This class maps the SDC config JSON file. This JSON can have multiple
@@ -49,10 +48,14 @@ public class SdcControllersConfiguration {
private static final String CONTROLLER_SUBTREE_KEY = "sdc-connections";
@Autowired
protected ApplicationContext appContext;
+
+ @Value("${clamp.config.keyFile:classpath:/clds/aaf/org.onap.clamp.keyfile}")
+ private String keyFile;
+
/**
* The file name that will be loaded by Spring.
*/
- @Value("${clamp.config.files.sdcController:'classpath:/clds/sdc-controllers-config.json'}")
+ @Value("${clamp.config.files.sdcController:classpath:/clds/sdc-controllers-config.json}")
protected String sdcControllerFile;
/**
* The root of the JSON.
@@ -66,11 +69,10 @@ public class SdcControllersConfiguration {
*/
@PostConstruct
public void loadConfiguration() throws IOException {
- Resource resource = appContext.getResource(sdcControllerFile);
- // Try to load json tree
- jsonRootNode = JsonUtils.GSON.fromJson(new InputStreamReader(
- resource.getInputStream(), StandardCharsets.UTF_8),
- JsonObject.class);
+ try (InputStreamReader controllerFile = new InputStreamReader(
+ appContext.getResource(sdcControllerFile).getInputStream(), StandardCharsets.UTF_8)) {
+ jsonRootNode = JsonUtils.GSON.fromJson(controllerFile, JsonObject.class);
+ }
}
public SdcSingleControllerConfiguration getSdcSingleControllerConfiguration(String controllerName) {
@@ -86,8 +88,9 @@ public class SdcControllersConfiguration {
Map<String, SdcSingleControllerConfiguration> result = new HashMap<>();
if (jsonRootNode.get(CONTROLLER_SUBTREE_KEY) != null) {
jsonRootNode.get(CONTROLLER_SUBTREE_KEY).getAsJsonObject().entrySet().forEach(
- entry -> result.put(entry.getKey(),
- new SdcSingleControllerConfiguration(entry.getValue().getAsJsonObject(), entry.getKey())));
+ entry -> result.put(entry.getKey(),
+ new SdcSingleControllerConfiguration(entry.getValue().getAsJsonObject(), entry.getKey(),
+ keyFile)));
} else {
throw new SdcParametersException(
CONTROLLER_SUBTREE_KEY + " key not found in the file: " + sdcControllerFile);
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java
index 0bbbf19dc..67060d776 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
+ * Copyright (C) 2018, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,22 +18,17 @@
* limitations under the License.
* ============LICENSE_END============================================
* ===================================================================
- *
+ *
*/
package org.onap.policy.clamp.clds.config.sdc;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
import com.google.gson.JsonObject;
-import java.security.GeneralSecurityException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
-import org.apache.commons.codec.DecoderException;
import org.onap.policy.clamp.clds.exception.sdc.controller.SdcParametersException;
-import org.onap.policy.clamp.clds.util.CryptoUtils;
+import org.onap.policy.clamp.util.PassDecoder;
import org.onap.sdc.api.consumer.IConfiguration;
/**
@@ -41,8 +36,8 @@ import org.onap.sdc.api.consumer.IConfiguration;
*/
public class SdcSingleControllerConfiguration implements IConfiguration {
- private static final EELFLogger logger = EELFManager.getInstance()
- .getLogger(SdcSingleControllerConfiguration.class);
+ private final String keyFile;
+
/**
* The sdc Controller name corresponding.
*/
@@ -78,23 +73,20 @@ public class SdcSingleControllerConfiguration implements IConfiguration {
public static final String OTHER = "OTHER";
public static final String TOSCA_CSAR = "TOSCA_CSAR";
public static final String VF_MODULES_METADATA = "VF_MODULES_METADATA";
- private static final String[] SUPPORTED_ARTIFACT_TYPES = {
- TOSCA_CSAR, VF_MODULES_METADATA
- };
- public static final List<String> SUPPORTED_ARTIFACT_TYPES_LIST = Collections
- .unmodifiableList(Arrays.asList(SUPPORTED_ARTIFACT_TYPES));
+ private static final String[] SUPPORTED_ARTIFACT_TYPES = {TOSCA_CSAR, VF_MODULES_METADATA};
+ public static final List<String> SUPPORTED_ARTIFACT_TYPES_LIST = List.of(SUPPORTED_ARTIFACT_TYPES);
/**
* This constructor builds a SdcSingleControllerConfiguration from the
* corresponding json.
- *
- * @param jsonNode
- * The JSON node
- * @param controllerName
- * The controller name that must appear in the JSON
+ *
+ * @param jsonNode The JSON node
+ * @param controllerName The controller name that must appear in the JSON
+ * @param keyFileLocation The location of the file to decode the password using CADI
*/
- public SdcSingleControllerConfiguration(JsonObject jsonNode, String controllerName) {
+ public SdcSingleControllerConfiguration(JsonObject jsonNode, String controllerName, String keyFileLocation) {
jsonRootNode = jsonNode;
+ keyFile = keyFileLocation;
setSdcControllerName(controllerName);
testAllRequiredParameters();
}
@@ -130,10 +122,10 @@ public class SdcSingleControllerConfiguration implements IConfiguration {
}
}
- private String getEncryptedStringConfig(String key) throws GeneralSecurityException, DecoderException {
+ private String getEncryptedStringConfig(String key) {
if (jsonRootNode != null && jsonRootNode.get(key) != null) {
return jsonRootNode.get(key).getAsString().isEmpty() ? null
- : CryptoUtils.decrypt(jsonRootNode.get(key).getAsString());
+ : PassDecoder.decode(jsonRootNode.get(key).getAsString(), keyFile);
}
return null;
}
@@ -164,12 +156,7 @@ public class SdcSingleControllerConfiguration implements IConfiguration {
@Override
public String getPassword() {
- try {
- return getEncryptedStringConfig(SDC_KEY_ATTRIBUTE_NAME);
- } catch (GeneralSecurityException | DecoderException e) {
- logger.error("Unable to decrypt the SDC password", e);
- return null;
- }
+ return getEncryptedStringConfig(SDC_KEY_ATTRIBUTE_NAME);
}
@Override
@@ -211,12 +198,7 @@ public class SdcSingleControllerConfiguration implements IConfiguration {
@Override
public String getKeyStorePassword() {
- try {
- return getEncryptedStringConfig(KEY_STORE_KEY);
- } catch (GeneralSecurityException | DecoderException e) {
- logger.error("Unable to decrypt the SDC password", e);
- return null;
- }
+ return getEncryptedStringConfig(KEY_STORE_KEY);
}
@Override
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java
index 72f09ce13..72f09ce13 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java
index 6005b0d39..6005b0d39 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java
index ef1ced0a3..ef1ced0a3 100644
--- a/src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java
index 4d4855b6f..4d4855b6f 100644
--- a/src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java
index 73c117932..73c117932 100644
--- a/src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java
index b4a013eb4..b4a013eb4 100644
--- a/src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java
index 78c2c6331..78c2c6331 100644
--- a/src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java
index 6939fdf06..6939fdf06 100644
--- a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java
index e3f16f908..e3f16f908 100644
--- a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java
index 1202ec199..1202ec199 100644
--- a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java
index e391ee7e8..e391ee7e8 100644
--- a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java
index 3c0240ef3..3c0240ef3 100644
--- a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java
index fe573882f..fe573882f 100644
--- a/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java b/runtime/src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java
index 6fa8ecb2b..6fa8ecb2b 100644
--- a/src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java
index 5708cb6ec..5708cb6ec 100644
--- a/src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java
index c814a628d..c814a628d 100644
--- a/src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java
index a3b42524e..a3b42524e 100644
--- a/src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java
index a69d1a353..a69d1a353 100644
--- a/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java
index 72ae61359..72ae61359 100644
--- a/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java
index 4d6e544da..4d6e544da 100644
--- a/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java
index 9389a51fc..9389a51fc 100644
--- a/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java
index ca46c6d31..ca46c6d31 100644
--- a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java
index 4ca6b1cf4..39e64e46b 100644
--- a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2018-2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,9 +26,9 @@ package org.onap.policy.clamp.clds.sdc.controller;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import java.security.SecureRandom;
import java.util.Date;
import java.util.Map.Entry;
-import java.util.concurrent.ThreadLocalRandom;
import org.onap.policy.clamp.clds.config.ClampProperties;
import org.onap.policy.clamp.clds.config.sdc.SdcSingleControllerConfiguration;
import org.onap.policy.clamp.clds.exception.sdc.controller.BlueprintParserException;
@@ -261,7 +261,7 @@ public class SdcSingleController {
try {
// wait for a random time, so that 2 running Clamp will not treat
// the same Notification at the same time
- Thread.sleep(ThreadLocalRandom.current().nextInt(1, 10) * 1000L);
+ Thread.sleep((new SecureRandom().nextInt(10) + 1) * 1000L);
logger.info("Notification received for service UUID:" + notificationData.getServiceUUID());
this.changeControllerStatus(SdcSingleControllerStatus.BUSY);
csar = new CsarHandler(notificationData, this.sdcConfig.getSdcControllerName(),
@@ -383,23 +383,28 @@ public class SdcSingleController {
try {
IComponentDoneStatusMessage message = new IComponentDoneStatusMessage() {
- @Override public String getDistributionID() {
+ @Override
+ public String getDistributionID() {
return notificationData.getDistributionID();
}
- @Override public String getConsumerID() {
+ @Override
+ public String getConsumerID() {
return sdcConfig.getConsumerID();
}
- @Override public long getTimestamp() {
+ @Override
+ public long getTimestamp() {
return System.currentTimeMillis();
}
- @Override public DistributionStatusEnum getStatus() {
+ @Override
+ public DistributionStatusEnum getStatus() {
return status;
}
- @Override public String getComponentName() {
+ @Override
+ public String getComponentName() {
return sdcConfig.getUser();
}
};
diff --git a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java
index fe269c486..fe269c486 100644
--- a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java
index df81cfb0c..df81cfb0c 100644
--- a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java
index 519a24f46..519a24f46 100644
--- a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java
index ada47992a..ada47992a 100644
--- a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java
index 10e7a56a4..10e7a56a4 100644
--- a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java
index 436e594ce..436e594ce 100644
--- a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java b/runtime/src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java
index 02481494a..02481494a 100644
--- a/src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java
index 32f328079..32f328079 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java
index c2b5d5963..c2b5d5963 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java
index 6702a6200..6702a6200 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java
index fb684b57b..fb684b57b 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java
index 9834c78e7..fb9d66752 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java
@@ -1,72 +1,72 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.tosca.update.elements;
-
-import com.google.gson.JsonArray;
-import java.util.ArrayList;
-
-public class ArrayField {
-
- private ArrayList<Object> complexFields;
-
- /**
- * Constructor from arraryList.
- *
- * @param arrayProperties the array properties
- */
- public ArrayField(ArrayList<Object> arrayProperties) {
- this.complexFields = arrayProperties;
- }
-
- /**
- * Each LinkedHashMap is parsed to extract the Array and each of its value. They are casted for the JsonObject.
- *
- * @return JsonArray
- */
- public JsonArray deploy() {
-
- JsonArray subPropertyValuesArray = new JsonArray();
- for (Object arrayElement : complexFields) {
- //Cast for each Primitive Type
- String typeValue = arrayElement.getClass().getSimpleName();
- switch (typeValue) {
- case "String":
- subPropertyValuesArray.add((String) arrayElement);
- break;
- case "Boolean":
- subPropertyValuesArray.add((Boolean) arrayElement);
- break;
- case "Double":
- subPropertyValuesArray.add((Number) arrayElement);
- break;
- case "Integer":
- subPropertyValuesArray.add((Number) arrayElement);
- break;
- default:
- break;
- }
- }
- return subPropertyValuesArray;
- }
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.clds.tosca.update.elements;
+
+import com.google.gson.JsonArray;
+import java.util.ArrayList;
+
+public class ArrayField {
+
+ private ArrayList<Object> complexFields;
+
+ /**
+ * Constructor from arraryList.
+ *
+ * @param arrayProperties the array properties
+ */
+ public ArrayField(ArrayList<Object> arrayProperties) {
+ this.complexFields = arrayProperties;
+ }
+
+ /**
+ * Each LinkedHashMap is parsed to extract the Array and each of its value. They are casted for the JsonObject.
+ *
+ * @return JsonArray
+ */
+ public JsonArray deploy() {
+
+ JsonArray subPropertyValuesArray = new JsonArray();
+ for (Object arrayElement : complexFields) {
+ //Cast for each Primitive Type
+ String typeValue = arrayElement.getClass().getSimpleName();
+ switch (typeValue) {
+ case "String":
+ subPropertyValuesArray.add((String) arrayElement);
+ break;
+ case "Boolean":
+ subPropertyValuesArray.add((Boolean) arrayElement);
+ break;
+ case "Double":
+ subPropertyValuesArray.add((Number) arrayElement);
+ break;
+ case "Integer":
+ subPropertyValuesArray.add((Number) arrayElement);
+ break;
+ default:
+ break;
+ }
+ }
+ return subPropertyValuesArray;
+ }
+}
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java
index b41042abe..651456ca6 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java
@@ -1,222 +1,222 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.tosca.update.elements;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.Map.Entry;
-import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplate;
-
-public class Constraint {
-
- private LinkedHashMap<String, Object> constraints;
- private JsonTemplate jsonTemplate;
-
- public Constraint(LinkedHashMap<String, Object> constraints, JsonTemplate jsonTemplate) {
- this.jsonTemplate = jsonTemplate;
- this.constraints = constraints;
- }
-
- /**
- * Deploy the linkedhashmap which contains the constraints, to extract them one to one.
- *
- * @param jsonSchema The json Schema
- * @param typeProperty The ype property
- * @return the json object
- */
- public JsonObject deployConstraints(JsonObject jsonSchema, String typeProperty) {
- for (Entry<String, Object> constraint : constraints.entrySet()) {
- this.parseConstraint(jsonSchema, constraint.getKey(), constraint.getValue(), typeProperty);
- }
- return jsonSchema;
- }
-
- /**
- * Each case of Tosca constraints below parse specifically the field in the JsonObject.
- *
- * @param jsonSchema Json Schema
- * @param nameConstraint Name constraint
- * @param valueConstraint value constraint
- * @param typeProperty Type Property
- */
- @SuppressWarnings("unchecked")
- public void parseConstraint(JsonObject jsonSchema, String nameConstraint, Object valueConstraint,
- String typeProperty) {
- switch (nameConstraint) {
- case "equal":
- checkTemplateField("const", jsonSchema, valueConstraint);
- break;
- case "greater_than":
- checkTemplateField("exclusiveMinimum", jsonSchema, valueConstraint);
- break;
- case "greater_or_equal":
- checkTemplateField("minimum", jsonSchema, valueConstraint);
- break;
- case "less_than":
- checkTemplateField("exclusiveMaximum", jsonSchema, valueConstraint);
- break;
- case "less_or_equal":
- checkTemplateField("maximum", jsonSchema, valueConstraint);
- break;
- case "in_range":
- ArrayList<Integer> limitValues = (ArrayList<Integer>) valueConstraint;
- checkTemplateField("minimum", jsonSchema, limitValues.get(0));
- checkTemplateField("maximum", jsonSchema, limitValues.get(1));
- break;
- case "pattern":
- jsonSchema.addProperty(nameConstraint, (String) valueConstraint);
- break;
- case "length":
- this.getSpecificLength(jsonSchema, valueConstraint, typeProperty);
- break;
- case "min_length":
- String[] prefixValues = nameConstraint.split("_");
- this.getLimitValue(jsonSchema, valueConstraint, typeProperty, prefixValues[0]);
- break;
- case "max_length":
- String[] maxtab = nameConstraint.split("_");
- this.getLimitValue(jsonSchema, valueConstraint, typeProperty, maxtab[0]);
- break;
- default://valid_value
- this.getValueArray(jsonSchema, valueConstraint, typeProperty);
- break;
- }
-
- }
-
- /**
- * To be done.
- *
- * @param jsonSchema json schema
- * @param fieldValue field value
- * @param typeProperty For the complex components, get a specific number of items/properties
- */
- public void getSpecificLength(JsonObject jsonSchema, Object fieldValue, String typeProperty) {
- switch (typeProperty.toLowerCase()) {
- case "string":
- checkTemplateField("minLength", jsonSchema, fieldValue);
- checkTemplateField("maxLength", jsonSchema, fieldValue);
- break;
- case "array":
- if (fieldValue.equals(1) && jsonTemplate.hasFields("uniqueItems")) {
- jsonSchema.addProperty("uniqueItems", true);
- } else {
- checkTemplateField("minItems", jsonSchema, fieldValue);
- checkTemplateField("maxItems", jsonSchema, fieldValue);
- }
- break;
- default:// Map && List
- checkTemplateField("minProperties", jsonSchema, fieldValue);
- checkTemplateField("maxProperties", jsonSchema, fieldValue);
- break;
- }
-
- }
-
- /**
- * To be done.
- *
- * @param jsonSchema json schema
- * @param fieldValue field value
- * @param typeProperty type property
- * @param side Get the limits fieldValue for the properties : depend of the type of the component
- */
- public void getLimitValue(JsonObject jsonSchema, Object fieldValue, String typeProperty, String side) {
- switch (typeProperty) {
- case "string":
- if (side.equals("min")) {
- checkTemplateField("minLength", jsonSchema, fieldValue);
- } else {
- checkTemplateField("maxLength", jsonSchema, fieldValue);
- }
- break;
- default:// Array
- if (side.equals("min")) {
- checkTemplateField("minItems", jsonSchema, fieldValue);
- } else {
- checkTemplateField("maxItems", jsonSchema, fieldValue);
- }
- break;
- }
-
- }
-
- /**
- * To be done.
- *
- * @param jsonSchema Json schema
- * @param fieldValue field value
- * @param typeProperty Get as Enum the valid values for the property
- */
- public void getValueArray(JsonObject jsonSchema, Object fieldValue, String typeProperty) {
- if (jsonTemplate.hasFields("enum")) {
- JsonArray enumeration = new JsonArray();
- if (typeProperty.equals("string") || typeProperty.equals("String")) {
- ArrayList<String> arrayValues = (ArrayList<String>) fieldValue;
- for (String arrayItem : arrayValues) {
- enumeration.add(arrayItem);
- }
- jsonSchema.add("enum", enumeration);
- } else {
- ArrayList<Number> arrayValues = (ArrayList<Number>) fieldValue;
- for (Number arrayItem : arrayValues) {
- enumeration.add(arrayItem);
- }
- jsonSchema.add("enum", enumeration);
- }
- }
- }
-
- /**
- * To be done.
- *
- * @param field Field
- * @param jsonSchema Json schema
- * @param fieldValue Simple way to avoid code duplication
- */
- public void checkTemplateField(String field, JsonObject jsonSchema, Object fieldValue) {
- if (jsonTemplate.hasFields(field)) {
- String typeField = fieldValue.getClass().getSimpleName();
- switch (typeField) {
- case "String":
- jsonSchema.addProperty(field, (String) fieldValue);
- break;
- case "Integer":
- jsonSchema.addProperty(field, (Integer) fieldValue);
- break;
- case "Number":
- jsonSchema.addProperty(field, (Number) fieldValue);
- break;
- case "Boolean":
- jsonSchema.addProperty(field, (Boolean) fieldValue);
- break;
- default:
- break;
- }
- }
- }
-
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.clds.tosca.update.elements;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.Map.Entry;
+import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplate;
+
+public class Constraint {
+
+ private LinkedHashMap<String, Object> constraints;
+ private JsonTemplate jsonTemplate;
+
+ public Constraint(LinkedHashMap<String, Object> constraints, JsonTemplate jsonTemplate) {
+ this.jsonTemplate = jsonTemplate;
+ this.constraints = constraints;
+ }
+
+ /**
+ * Deploy the linkedhashmap which contains the constraints, to extract them one to one.
+ *
+ * @param jsonSchema The json Schema
+ * @param typeProperty The ype property
+ * @return the json object
+ */
+ public JsonObject deployConstraints(JsonObject jsonSchema, String typeProperty) {
+ for (Entry<String, Object> constraint : constraints.entrySet()) {
+ this.parseConstraint(jsonSchema, constraint.getKey(), constraint.getValue(), typeProperty);
+ }
+ return jsonSchema;
+ }
+
+ /**
+ * Each case of Tosca constraints below parse specifically the field in the JsonObject.
+ *
+ * @param jsonSchema Json Schema
+ * @param nameConstraint Name constraint
+ * @param valueConstraint value constraint
+ * @param typeProperty Type Property
+ */
+ @SuppressWarnings("unchecked")
+ public void parseConstraint(JsonObject jsonSchema, String nameConstraint, Object valueConstraint,
+ String typeProperty) {
+ switch (nameConstraint) {
+ case "equal":
+ checkTemplateField("const", jsonSchema, valueConstraint);
+ break;
+ case "greater_than":
+ checkTemplateField("exclusiveMinimum", jsonSchema, valueConstraint);
+ break;
+ case "greater_or_equal":
+ checkTemplateField("minimum", jsonSchema, valueConstraint);
+ break;
+ case "less_than":
+ checkTemplateField("exclusiveMaximum", jsonSchema, valueConstraint);
+ break;
+ case "less_or_equal":
+ checkTemplateField("maximum", jsonSchema, valueConstraint);
+ break;
+ case "in_range":
+ ArrayList<Integer> limitValues = (ArrayList<Integer>) valueConstraint;
+ checkTemplateField("minimum", jsonSchema, limitValues.get(0));
+ checkTemplateField("maximum", jsonSchema, limitValues.get(1));
+ break;
+ case "pattern":
+ jsonSchema.addProperty(nameConstraint, (String) valueConstraint);
+ break;
+ case "length":
+ this.getSpecificLength(jsonSchema, valueConstraint, typeProperty);
+ break;
+ case "min_length":
+ String[] prefixValues = nameConstraint.split("_");
+ this.getLimitValue(jsonSchema, valueConstraint, typeProperty, prefixValues[0]);
+ break;
+ case "max_length":
+ String[] maxtab = nameConstraint.split("_");
+ this.getLimitValue(jsonSchema, valueConstraint, typeProperty, maxtab[0]);
+ break;
+ default://valid_value
+ this.getValueArray(jsonSchema, valueConstraint, typeProperty);
+ break;
+ }
+
+ }
+
+ /**
+ * To be done.
+ *
+ * @param jsonSchema json schema
+ * @param fieldValue field value
+ * @param typeProperty For the complex components, get a specific number of items/properties
+ */
+ public void getSpecificLength(JsonObject jsonSchema, Object fieldValue, String typeProperty) {
+ switch (typeProperty.toLowerCase()) {
+ case "string":
+ checkTemplateField("minLength", jsonSchema, fieldValue);
+ checkTemplateField("maxLength", jsonSchema, fieldValue);
+ break;
+ case "array":
+ if (fieldValue.equals(1) && jsonTemplate.hasFields("uniqueItems")) {
+ jsonSchema.addProperty("uniqueItems", true);
+ } else {
+ checkTemplateField("minItems", jsonSchema, fieldValue);
+ checkTemplateField("maxItems", jsonSchema, fieldValue);
+ }
+ break;
+ default:// Map && List
+ checkTemplateField("minProperties", jsonSchema, fieldValue);
+ checkTemplateField("maxProperties", jsonSchema, fieldValue);
+ break;
+ }
+
+ }
+
+ /**
+ * To be done.
+ *
+ * @param jsonSchema json schema
+ * @param fieldValue field value
+ * @param typeProperty type property
+ * @param side Get the limits fieldValue for the properties : depend of the type of the component
+ */
+ public void getLimitValue(JsonObject jsonSchema, Object fieldValue, String typeProperty, String side) {
+ switch (typeProperty) {
+ case "string":
+ if (side.equals("min")) {
+ checkTemplateField("minLength", jsonSchema, fieldValue);
+ } else {
+ checkTemplateField("maxLength", jsonSchema, fieldValue);
+ }
+ break;
+ default:// Array
+ if (side.equals("min")) {
+ checkTemplateField("minItems", jsonSchema, fieldValue);
+ } else {
+ checkTemplateField("maxItems", jsonSchema, fieldValue);
+ }
+ break;
+ }
+
+ }
+
+ /**
+ * To be done.
+ *
+ * @param jsonSchema Json schema
+ * @param fieldValue field value
+ * @param typeProperty Get as Enum the valid values for the property
+ */
+ public void getValueArray(JsonObject jsonSchema, Object fieldValue, String typeProperty) {
+ if (jsonTemplate.hasFields("enum")) {
+ JsonArray enumeration = new JsonArray();
+ if (typeProperty.equals("string") || typeProperty.equals("String")) {
+ ArrayList<String> arrayValues = (ArrayList<String>) fieldValue;
+ for (String arrayItem : arrayValues) {
+ enumeration.add(arrayItem);
+ }
+ jsonSchema.add("enum", enumeration);
+ } else {
+ ArrayList<Number> arrayValues = (ArrayList<Number>) fieldValue;
+ for (Number arrayItem : arrayValues) {
+ enumeration.add(arrayItem);
+ }
+ jsonSchema.add("enum", enumeration);
+ }
+ }
+ }
+
+ /**
+ * To be done.
+ *
+ * @param field Field
+ * @param jsonSchema Json schema
+ * @param fieldValue Simple way to avoid code duplication
+ */
+ public void checkTemplateField(String field, JsonObject jsonSchema, Object fieldValue) {
+ if (jsonTemplate.hasFields(field)) {
+ String typeField = fieldValue.getClass().getSimpleName();
+ switch (typeField) {
+ case "String":
+ jsonSchema.addProperty(field, (String) fieldValue);
+ break;
+ case "Integer":
+ jsonSchema.addProperty(field, (Integer) fieldValue);
+ break;
+ case "Number":
+ jsonSchema.addProperty(field, (Number) fieldValue);
+ break;
+ case "Boolean":
+ jsonSchema.addProperty(field, (Boolean) fieldValue);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
} \ No newline at end of file
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElement.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElement.java
index 0c531e9d0..0c531e9d0 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElement.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElement.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java
index 4db8b0356..4db8b0356 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java
index 5fac9a213..5fac9a213 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataProcess.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataProcess.java
index a1275229d..a1275229d 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataProcess.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataProcess.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataTargetProcess.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataTargetProcess.java
index 0ffd86f47..0ffd86f47 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataTargetProcess.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataTargetProcess.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java
index c80c91170..c80c91170 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java
index 74fd8e5fd..74fd8e5fd 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java
index a3dd9c3e1..a3dd9c3e1 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParser.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParser.java
index b2568b79f..b2568b79f 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParser.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParser.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java
index 049018ae0..4e55263fb 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java
@@ -78,7 +78,7 @@ public class ToscaMetadataParserWithDictionarySupport implements ToscaMetadataPa
processDictionaryElements(multipleValue, childObject, dictionaryService);
}
if (multipleValue.contains("ClampExecution:")) {
- executeClampProcess(multipleValue.replaceAll("ClampExecution:", ""), childObject,
+ executeClampProcess(multipleValue.replaceFirst("ClampExecution:", ""), childObject,
serviceModel, toscaMetadataExecutor);
}
}
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplate.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplate.java
index 5c96f2c4a..5c96f2c4a 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplate.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplate.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateField.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateField.java
index d9fd11de2..d9fd11de2 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateField.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateField.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java
index 1813d0786..1813d0786 100644
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/util/ClampVersioning.java b/runtime/src/main/java/org/onap/policy/clamp/clds/util/ClampVersioning.java
index 0890615d9..0890615d9 100644
--- a/src/main/java/org/onap/policy/clamp/clds/util/ClampVersioning.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/util/ClampVersioning.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/util/JsonUtils.java b/runtime/src/main/java/org/onap/policy/clamp/clds/util/JsonUtils.java
index fd5079c47..fd5079c47 100644
--- a/src/main/java/org/onap/policy/clamp/clds/util/JsonUtils.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/util/JsonUtils.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/util/LogMessages.java b/runtime/src/main/java/org/onap/policy/clamp/clds/util/LogMessages.java
index 676206e0f..676206e0f 100644
--- a/src/main/java/org/onap/policy/clamp/clds/util/LogMessages.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/util/LogMessages.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java b/runtime/src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java
index d7a158e73..4145844a2 100644
--- a/src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -58,14 +58,20 @@ public class LoggingUtils {
private static final String DATE_FORMATTER_ISO = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
- /** String constant for messages <tt>ENTERING</tt>, <tt>EXITING</tt>, etc. */
+ /**
+ * String constant for messages <tt>ENTERING</tt>, <tt>EXITING</tt>, etc.
+ */
private static final String EMPTY_MESSAGE = "";
- /** Logger delegate. */
- private Logger mlogger;
+ /**
+ * Logger delegate.
+ */
+ private final Logger mlogger;
- /** Automatic UUID, overrideable per adapter or per invocation. */
- private static UUID sInstanceUUID = UUID.randomUUID();
+ /**
+ * Automatic UUID, overrideable per adapter or per invocation.
+ */
+ private static final UUID sInstanceUUID = UUID.randomUUID();
/**
* Constructor.
@@ -98,7 +104,7 @@ public class LoggingUtils {
* Set time related logging variables in thread local data via MDC.
*
* @param beginTimeStamp Start time
- * @param endTimeStamp End time
+ * @param endTimeStamp End time
*/
public static void setTimeContext(@NotNull Date beginTimeStamp, @NotNull Date endTimeStamp) {
MDC.put("EntryTimestamp", generateTimestampStr(beginTimeStamp));
@@ -109,9 +115,9 @@ public class LoggingUtils {
/**
* Set response related logging variables in thread local data via MDC.
*
- * @param code Response code ("0" indicates success)
+ * @param code Response code ("0" indicates success)
* @param description Response description
- * @param className class name of invoking class
+ * @param className class name of invoking class
*/
public static void setResponseContext(String code, String description, String className) {
MDC.put("ResponseCode", code);
@@ -123,7 +129,7 @@ public class LoggingUtils {
/**
* Set target related logging variables in thread local data via MDC.
*
- * @param targetEntity Target entity (an external/sub component, for ex. "sdc")
+ * @param targetEntity Target entity (an external/sub component, for ex. "sdc")
* @param targetServiceName Target service name (name of API invoked on target)
*/
public static void setTargetContext(String targetEntity, String targetServiceName) {
@@ -134,7 +140,7 @@ public class LoggingUtils {
/**
* Set error related logging variables in thread local data via MDC.
*
- * @param code Error code
+ * @param code Error code
* @param description Error description
*/
public static void setErrorContext(String code, String description) {
@@ -175,7 +181,7 @@ public class LoggingUtils {
/**
* Report <tt>ENTERING</tt> marker.
*
- * @param request non-null incoming request (wrapper)
+ * @param request non-null incoming request (wrapper)
* @param serviceName service name
*/
public void entering(HttpServletRequest request, String serviceName) {
@@ -183,16 +189,16 @@ public class LoggingUtils {
checkNotNull(request);
// Extract MDC values from standard HTTP headers.
final String requestId =
- defaultToUuid(request.getHeader(OnapLogConstants.Headers.REQUEST_ID));
+ defaultToUuid(request.getHeader(OnapLogConstants.Headers.REQUEST_ID));
final String invocationId =
- defaultToUuid(request.getHeader(OnapLogConstants.Headers.INVOCATION_ID));
+ defaultToUuid(request.getHeader(OnapLogConstants.Headers.INVOCATION_ID));
final String partnerName =
- defaultToEmpty(request.getHeader(OnapLogConstants.Headers.PARTNER_NAME));
+ defaultToEmpty(request.getHeader(OnapLogConstants.Headers.PARTNER_NAME));
// Default the partner name to the user name used to login to clamp
if (partnerName.equalsIgnoreCase(EMPTY_MESSAGE)) {
MDC.put(OnapLogConstants.Mdcs.PARTNER_NAME,
- AuthorizationController.getPrincipalName(SecurityContextHolder.getContext()));
+ AuthorizationController.getPrincipalName(SecurityContextHolder.getContext()));
}
// Set standard MDCs. Override this entire method if you want to set
@@ -200,7 +206,7 @@ public class LoggingUtils {
// depending on where you need them to appear, OR extend the
// ServiceDescriptor to add them.
MDC.put(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP, ZonedDateTime.now(ZoneOffset.UTC)
- .format(DateTimeFormatter.ofPattern(DATE_FORMATTER_ISO)));
+ .format(DateTimeFormatter.ofPattern(DATE_FORMATTER_ISO)));
MDC.put(OnapLogConstants.Mdcs.REQUEST_ID, requestId);
MDC.put(OnapLogConstants.Mdcs.INVOCATION_ID, invocationId);
MDC.put(OnapLogConstants.Mdcs.CLIENT_IP_ADDRESS, defaultToEmpty(request.getRemoteAddr()));
@@ -217,7 +223,7 @@ public class LoggingUtils {
// Set the Response Status code to in progress
MDC.put(OnapLogConstants.Mdcs.RESPONSE_STATUS_CODE,
- OnapLogConstants.ResponseStatus.INPROGRESS.toString());
+ OnapLogConstants.ResponseStatus.INPROGRESS.toString());
setElapsedTime();
this.mlogger.info(OnapLogConstants.Markers.ENTRY, "Entering");
@@ -226,18 +232,17 @@ public class LoggingUtils {
/**
* Report <tt>EXITING</tt> marker.
*
- *
- * @param code response code
- * @param descrption response description
- * @param severity response severity
- * @param status response status code
+ * @param code response code
+ * @param description response description
+ * @param severity response severity
+ * @param status response status code
*/
- public void exiting(int code, String descrption, Level severity,
- OnapLogConstants.ResponseStatus status) {
+ public void exiting(int code, String description, Level severity,
+ OnapLogConstants.ResponseStatus status) {
try {
MDC.put(OnapLogConstants.Mdcs.RESPONSE_CODE, defaultToEmpty(code));
- MDC.put(OnapLogConstants.Mdcs.RESPONSE_DESCRIPTION, defaultToEmpty(descrption));
+ MDC.put(OnapLogConstants.Mdcs.RESPONSE_DESCRIPTION, defaultToEmpty(description));
MDC.put(OnapLogConstants.Mdcs.RESPONSE_SEVERITY, defaultToEmpty(severity));
MDC.put(OnapLogConstants.Mdcs.RESPONSE_STATUS_CODE, defaultToEmpty(status));
@@ -249,12 +254,11 @@ public class LoggingUtils {
}
private void setElapsedTime() {
- ZonedDateTime startTime =
- ZonedDateTime.parse(MDC.get(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP),
- DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC));
- ZonedDateTime endTime = ZonedDateTime.now(ZoneOffset.UTC);
- long duration = ChronoUnit.MILLIS.between(startTime, endTime);
- MDC.put(OnapLogConstants.Mdcs.ELAPSED_TIME, String.valueOf(duration));
+ String entryTimestamp = MDC.get(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP);
+ MDC.put(OnapLogConstants.Mdcs.ELAPSED_TIME, String.valueOf(ChronoUnit.MILLIS
+ .between(ZonedDateTime.parse(entryTimestamp != null ? entryTimestamp : ZonedDateTime.now(ZoneOffset.UTC)
+ .format(DateTimeFormatter.ofPattern(DATE_FORMATTER_ISO)),
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC)), ZonedDateTime.now(ZoneOffset.UTC))));
}
/**
@@ -271,13 +275,13 @@ public class LoggingUtils {
* Report pending invocation with <tt>INVOKE</tt> marker,
* setting standard ONAP logging headers automatically.
*
- * @param con The HTTP url connection
- * @param targetEntity The target entity
+ * @param con The HTTP url connection
+ * @param targetEntity The target entity
* @param targetServiceName The target service name
* @return The HTTP url connection
*/
public HttpURLConnection invoke(final HttpURLConnection con, String targetEntity,
- String targetServiceName) {
+ String targetServiceName) {
return this.invokeGeneric(con, targetEntity, targetServiceName);
}
@@ -285,7 +289,7 @@ public class LoggingUtils {
* Report pending invocation with <tt>INVOKE</tt> marker,
* setting standard ONAP logging headers automatically.
*
- * @param targetEntity The target entity
+ * @param targetEntity The target entity
* @param targetServiceName The target service name
*/
public void invoke(String targetEntity, String targetServiceName) {
@@ -304,13 +308,13 @@ public class LoggingUtils {
* Report pending invocation with <tt>INVOKE</tt> marker,
* setting standard ONAP logging headers automatically.
*
- * @param con The HTTPS url connection
- * @param targetEntity The target entity
+ * @param con The HTTPS url connection
+ * @param targetEntity The target entity
* @param targetServiceName The target service name
* @return The HTTPS url connection
*/
public HttpsURLConnection invokeHttps(final HttpsURLConnection con, String targetEntity,
- String targetServiceName) {
+ String targetServiceName) {
return this.invokeGeneric(con, targetEntity, targetServiceName);
}
@@ -319,7 +323,7 @@ public class LoggingUtils {
*/
public void invokeReturn() {
MDC.put(OnapLogConstants.Mdcs.RESPONSE_STATUS_CODE,
- OnapLogConstants.ResponseStatus.COMPLETE.toString());
+ OnapLogConstants.ResponseStatus.COMPLETE.toString());
// Add the Invoke-return marker and clear the needed MDC
this.mlogger.info(OnapLogConstants.Markers.INVOKE_RETURN, "INVOKE-RETURN");
invokeReturnContext();
@@ -328,7 +332,7 @@ public class LoggingUtils {
/**
* Dependency-free nullcheck.
*
- * @param in to be checked
+ * @param in to be checked
* @param <T> argument (and return) type
* @return input arg
*/
@@ -368,16 +372,16 @@ public class LoggingUtils {
/**
* Set target related logging variables in thread local data via MDC.
*
- * @param targetEntity Target entity (an external/sub component, for ex. "sdc")
+ * @param targetEntity Target entity (an external/sub component, for ex. "sdc")
* @param targetServiceName Target service name (name of API invoked on target)
- * @param invocationId The invocation ID
+ * @param invocationId The invocation ID
*/
private void invokeContext(String targetEntity, String targetServiceName, String invocationId) {
MDC.put(OnapLogConstants.Mdcs.TARGET_ENTITY, defaultToEmpty(targetEntity));
MDC.put(OnapLogConstants.Mdcs.TARGET_SERVICE_NAME, defaultToEmpty(targetServiceName));
MDC.put(OnapLogConstants.Mdcs.INVOCATIONID_OUT, invocationId);
MDC.put(OnapLogConstants.Mdcs.INVOKE_TIMESTAMP, ZonedDateTime.now(ZoneOffset.UTC)
- .format(DateTimeFormatter.ofPattern(DATE_FORMATTER_ISO)));
+ .format(DateTimeFormatter.ofPattern(DATE_FORMATTER_ISO)));
}
/**
@@ -392,15 +396,15 @@ public class LoggingUtils {
}
private <T extends URLConnection> T invokeGeneric(final T con, String targetEntity,
- String targetServiceName) {
+ String targetServiceName) {
final String invocationId = UUID.randomUUID().toString();
// Set standard HTTP headers on (southbound request) builder.
con.setRequestProperty(OnapLogConstants.Headers.REQUEST_ID,
- defaultToEmpty(MDC.get(OnapLogConstants.Mdcs.REQUEST_ID)));
+ defaultToEmpty(MDC.get(OnapLogConstants.Mdcs.REQUEST_ID)));
con.setRequestProperty(OnapLogConstants.Headers.INVOCATION_ID, invocationId);
con.setRequestProperty(OnapLogConstants.Headers.PARTNER_NAME,
- defaultToEmpty(MDC.get(OnapLogConstants.Mdcs.PARTNER_NAME)));
+ defaultToEmpty(MDC.get(OnapLogConstants.Mdcs.PARTNER_NAME)));
invokeContext(targetEntity, targetServiceName, invocationId);
diff --git a/src/main/java/org/onap/policy/clamp/clds/util/OnapLogConstants.java b/runtime/src/main/java/org/onap/policy/clamp/clds/util/OnapLogConstants.java
index 78b16f1a0..78b16f1a0 100644
--- a/src/main/java/org/onap/policy/clamp/clds/util/OnapLogConstants.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/util/OnapLogConstants.java
diff --git a/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java b/runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java
index cd4700277..d6184c656 100644
--- a/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -56,8 +56,8 @@ public final class ResourceFileUtils {
* @return The file as inputStream
*/
public static InputStream getResourceAsStream(String fileName) {
- InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(
- fileName.startsWith(CLASSPATH_PREFIX) ? fileName.replaceFirst(CLASSPATH_PREFIX, "") : fileName);
+ InputStream is = Thread.currentThread().getContextClassLoader()
+ .getResourceAsStream(fileName.replaceFirst("^" + CLASSPATH_PREFIX, ""));
if (is == null) {
throw new IllegalArgumentException("Unable to find resource: " + fileName);
}
diff --git a/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java b/runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java
index e5f12163e..6479cf767 100644
--- a/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -34,8 +34,9 @@ import java.nio.charset.StandardCharsets;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.DataFormatName;
-import org.apache.camel.support.ServiceSupport;
+import org.apache.camel.support.service.ServiceSupport;
import org.apache.camel.util.IOHelper;
+import org.apache.commons.io.IOUtils;
import org.onap.policy.clamp.clds.util.JsonUtils;
public class ClampGsonDataFormat extends ServiceSupport implements DataFormat, DataFormatName {
@@ -113,7 +114,9 @@ public class ClampGsonDataFormat extends ServiceSupport implements DataFormat, D
public Object unmarshal(final Exchange exchange, final InputStream stream) throws Exception {
try (final InputStreamReader isr = new InputStreamReader(stream, StandardCharsets.UTF_8);
final BufferedReader reader = IOHelper.buffered(isr)) {
- if (unmarshalGenericType == null) {
+ if (unmarshalType.equals(String.class)) {
+ return IOUtils.toString(reader);
+ } else if (unmarshalGenericType == null) {
return gson.fromJson(reader, unmarshalType);
} else {
return gson.fromJson(reader, unmarshalGenericType);
diff --git a/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java b/runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java
index db024e07a..db024e07a 100644
--- a/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java
diff --git a/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java b/runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java
index 7208a472c..7208a472c 100644
--- a/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java
diff --git a/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java b/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java
index d3aaa32a9..d3aaa32a9 100644
--- a/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java
diff --git a/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java b/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java
index ed8464b14..ed8464b14 100644
--- a/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java
diff --git a/src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java b/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java
index 4a7b65bb4..4a7b65bb4 100644
--- a/src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java
diff --git a/src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java b/runtime/src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java
index d54b23b21..d54b23b21 100644
--- a/src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java b/runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java
index f46f4227b..f46f4227b 100644
--- a/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/Loop.java b/runtime/src/main/java/org/onap/policy/clamp/loop/Loop.java
index 99d8d1e69..99d8d1e69 100644
--- a/src/main/java/org/onap/policy/clamp/loop/Loop.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/Loop.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/LoopController.java b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopController.java
index 98459c909..98459c909 100644
--- a/src/main/java/org/onap/policy/clamp/loop/LoopController.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopController.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/LoopService.java b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopService.java
index 975011669..975011669 100644
--- a/src/main/java/org/onap/policy/clamp/loop/LoopService.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopService.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/LoopState.java b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopState.java
index 48d4487f0..48d4487f0 100644
--- a/src/main/java/org/onap/policy/clamp/loop/LoopState.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopState.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java
index 7b92ed584..7b92ed584 100644
--- a/src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java b/runtime/src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java
index 68adb3887..68adb3887 100644
--- a/src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java b/runtime/src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java
index 92c795e90..92c795e90 100644
--- a/src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java
index 1b36aab55..6a935d011 100644
--- a/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -125,7 +125,7 @@ public class DcaeComponent extends ExternalComponent {
* @return the Right Url modified if needed
*/
public static String getStatusUrl(DcaeOperationStatusResponse dcaeResponse) {
- return dcaeResponse.getLinks().getStatus().replaceAll("http:", "http4:").replaceAll("https:", "https4:");
+ return dcaeResponse.getLinks().getStatus();
}
/**
diff --git a/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java
index ce7efe494..ce7efe494 100644
--- a/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java
index a57800025..a57800025 100644
--- a/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java
index 648463d78..27e8e1a13 100644
--- a/src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,20 +25,16 @@ package org.onap.policy.clamp.loop.components.external;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
import javax.persistence.Transient;
import org.apache.camel.Exchange;
import org.onap.policy.clamp.loop.Loop;
-import org.onap.policy.clamp.policy.microservice.MicroServicePolicy;
-import org.onap.policy.clamp.policy.operational.OperationalPolicy;
+import org.onap.policy.clamp.policy.pdpgroup.PdpGroupPayload;
+/**
+ * This class represents the policy state according to all policies involved in the control loop.
+ * It can compute it with all policy queries result.
+ * It contains also the method to generate the PDP payload used for the policies deployment.
+ */
public class PolicyComponent extends ExternalComponent {
@Transient
@@ -81,79 +77,15 @@ public class PolicyComponent extends ExternalComponent {
* @return The json, payload to send
*/
public static String createPoliciesPayloadPdpGroup(Loop loop, String action) {
- Map<String, Map<String, List<JsonObject>>> pdpGroupMap = new HashMap<>();
- for (OperationalPolicy opPolicy : loop.getOperationalPolicies()) {
- updatePdpGroupMap(opPolicy.getPdpGroup(), opPolicy.getPdpSubgroup(),
- opPolicy.getName(),
- "1.0.0", pdpGroupMap);
- }
-
- for (MicroServicePolicy msPolicy : loop.getMicroServicePolicies()) {
- updatePdpGroupMap(msPolicy.getPdpGroup(), msPolicy.getPdpSubgroup(),
- msPolicy.getName(),
- "1.0.0", pdpGroupMap);
- }
-
- String payload = new GsonBuilder().setPrettyPrinting().create()
- .toJson(generateActivatePdpGroupPayload(pdpGroupMap, action));
- logger.info("PdpGroup policy payload: " + payload);
- return payload;
- }
-
- private static void updatePdpGroupMap(String pdpGroup,
- String pdpSubGroup,
- String policyName,
- String policyVersion,
- Map<String, Map<String,
- List<JsonObject>>> pdpGroupMap) {
- JsonObject policyJson = new JsonObject();
- policyJson.addProperty("name", policyName);
- policyJson.addProperty("version", policyVersion);
- Map<String, List<JsonObject>> pdpSubGroupMap;
- List<JsonObject> policyList;
- if (pdpGroupMap.get(pdpGroup) == null) {
- pdpSubGroupMap = new HashMap<>();
- policyList = new LinkedList<>();
- } else {
- pdpSubGroupMap = pdpGroupMap.get(pdpGroup);
- if (pdpSubGroupMap.get(pdpSubGroup) == null) {
- policyList = new LinkedList<>();
- } else {
- policyList = (List<JsonObject>) pdpSubGroupMap.get(pdpSubGroup);
- }
- }
- policyList.add(policyJson);
- pdpSubGroupMap.put(pdpSubGroup, policyList);
- pdpGroupMap.put(pdpGroup, pdpSubGroupMap);
- }
-
- private static JsonObject generateActivatePdpGroupPayload(
- Map<String, Map<String, List<JsonObject>>> pdpGroupMap, String action) {
- JsonArray payloadArray = new JsonArray();
- for (Entry<String, Map<String, List<JsonObject>>> pdpGroupInfo : pdpGroupMap.entrySet()) {
- JsonObject pdpGroupNode = new JsonObject();
- JsonArray subPdpArray = new JsonArray();
- pdpGroupNode.addProperty("name", pdpGroupInfo.getKey());
- pdpGroupNode.add("deploymentSubgroups", subPdpArray);
-
- for (Entry<String, List<JsonObject>> pdpSubGroupInfo : pdpGroupInfo.getValue().entrySet()) {
- JsonObject pdpSubGroupNode = new JsonObject();
- subPdpArray.add(pdpSubGroupNode);
- pdpSubGroupNode.addProperty("pdpType", pdpSubGroupInfo.getKey());
- pdpSubGroupNode.addProperty("action", action);
-
- JsonArray policyArray = new JsonArray();
- pdpSubGroupNode.add("policies", policyArray);
-
- for (JsonObject policy : pdpSubGroupInfo.getValue()) {
- policyArray.add(policy);
- }
- }
- payloadArray.add(pdpGroupNode);
- }
- JsonObject jsonObject = new JsonObject();
- jsonObject.add("groups", payloadArray);
- return jsonObject;
+ PdpGroupPayload pdpGroupPayload = new PdpGroupPayload();
+ loop.getOperationalPolicies().stream().forEach(opPolicy -> pdpGroupPayload
+ .updatePdpGroupMap(opPolicy.getPdpGroup(), opPolicy.getPdpSubgroup(), opPolicy.getName(), "1.0.0",
+ action));
+
+ loop.getMicroServicePolicies().stream().forEach(msPolicy -> pdpGroupPayload
+ .updatePdpGroupMap(msPolicy.getPdpGroup(), msPolicy.getPdpSubgroup(), msPolicy.getName(), "1.0.0",
+ action));
+ return pdpGroupPayload.generatePdpGroupPayload();
}
private static ExternalComponentState findNewState(boolean found, boolean deployed) {
diff --git a/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java b/runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java
index 9d56f23c4..1a1414611 100644
--- a/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -109,5 +109,4 @@ public class DcaeDeployParameters {
globalProperties.add("dcaeDeployParameters", deployParamJson);
return globalProperties;
}
-
}
diff --git a/src/main/java/org/onap/policy/clamp/loop/log/LogType.java b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LogType.java
index 50f6571d6..50f6571d6 100644
--- a/src/main/java/org/onap/policy/clamp/loop/log/LogType.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LogType.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java
index 00f7e1f41..00f7e1f41 100644
--- a/src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java
index df1f3919e..df1f3919e 100644
--- a/src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java
index a2f133f2f..a2f133f2f 100644
--- a/src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java b/runtime/src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java
index 1429d73c2..1429d73c2 100644
--- a/src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/service/Service.java b/runtime/src/main/java/org/onap/policy/clamp/loop/service/Service.java
index b7442abc5..b7442abc5 100644
--- a/src/main/java/org/onap/policy/clamp/loop/service/Service.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/service/Service.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java
index 62596a08e..62596a08e 100644
--- a/src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java
index 6eb3c7195..6eb3c7195 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java
index d9b879d0f..d9b879d0f 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java
index ab7367aaf..ab7367aaf 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java
index c0b0c7d24..c0b0c7d24 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java
index 9da8272bd..9da8272bd 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java
index 3993dee34..3993dee34 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java
index 974cf3b5c..974cf3b5c 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/LoopType.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopType.java
index eacfecb5e..eacfecb5e 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/LoopType.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopType.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java
index 81ca18d57..81ca18d57 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java
index 2414377d7..2414377d7 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java
index 2591bd174..2591bd174 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java
index 6ff7e3d0c..6ff7e3d0c 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java
index fea58c552..2d31b3b10 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java
@@ -24,16 +24,9 @@
package org.onap.policy.clamp.loop.template;
import com.google.gson.JsonObject;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
-import org.onap.policy.clamp.clds.tosca.ToscaSchemaConstants;
-import org.onap.policy.clamp.clds.tosca.ToscaYamlToJsonConvertor;
import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
-import org.onap.policy.clamp.clds.tosca.update.parser.ToscaConverterToJsonSchema;
-import org.onap.policy.clamp.clds.util.JsonUtils;
import org.onap.policy.clamp.policy.pdpgroup.PdpGroupsAnalyzer;
-import org.onap.policy.clamp.util.SemanticVersioning;
import org.onap.policy.models.pdp.concepts.PdpGroups;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -46,10 +39,6 @@ import org.springframework.transaction.annotation.Transactional;
@Service
public class PolicyModelsService {
private final PolicyModelsRepository policyModelsRepository;
- /**
- * This variable is there to support legacy saving of the tosca from the clamp UI.
- */
- private ToscaYamlToJsonConvertor toscaYamlToJsonConvertor;
/**
* This is the new tosca converter that must be used in clamp.
@@ -58,10 +47,8 @@ public class PolicyModelsService {
private ToscaConverterWithDictionarySupport toscaConverterWithDictionarySupport;
@Autowired
- public PolicyModelsService(PolicyModelsRepository policyModelrepo,
- ToscaYamlToJsonConvertor convertor) {
+ public PolicyModelsService(PolicyModelsRepository policyModelrepo) {
policyModelsRepository = policyModelrepo;
- toscaYamlToJsonConvertor = convertor;
}
/**
@@ -85,44 +72,6 @@ public class PolicyModelsService {
}
/**
- * Creates or updates the Tosca Policy Model.
- *
- * @param policyModelTosca The Policymodel object
- * @return The Policy Model created
- */
- public PolicyModel createNewPolicyModelFromTosca(String policyModelTosca) {
- JsonObject jsonObject = toscaYamlToJsonConvertor.validateAndConvertToJson(policyModelTosca);
- String policyModelTypeFromTosca = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
- ToscaSchemaConstants.METADATA_POLICY_MODEL_TYPE);
- Iterable<PolicyModel> models = getAllPolicyModelsByType(policyModelTypeFromTosca);
- Collections.sort((List<PolicyModel>) models);
- PolicyModel newPolicyModel = new PolicyModel(policyModelTypeFromTosca, policyModelTosca,
- SemanticVersioning.incrementMajorVersion(((ArrayList) models).isEmpty() ? null
- : ((ArrayList<PolicyModel>) models).get(0).getVersion()),
- toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
- ToscaSchemaConstants.METADATA_ACRONYM));
- return saveOrUpdatePolicyModel(newPolicyModel);
- }
-
- /**
- * Update an existing Tosca Policy Model.
- *
- * @param policyModelType The policy Model type in Tosca yaml
- * @param policyModelVersion The policy Version to update
- * @param policyModelTosca The Policy Model tosca
- * @return The Policy Model updated
- */
- public PolicyModel updatePolicyModelTosca(String policyModelType, String policyModelVersion,
- String policyModelTosca) {
- JsonObject jsonObject = toscaYamlToJsonConvertor.validateAndConvertToJson(policyModelTosca);
- PolicyModel thePolicyModel = getPolicyModel(policyModelType, policyModelVersion);
- thePolicyModel.setPolicyAcronym(toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
- ToscaSchemaConstants.METADATA_ACRONYM));
- thePolicyModel.setPolicyModelTosca(policyModelTosca);
- return saveOrUpdatePolicyModel(thePolicyModel);
- }
-
- /**
* This method retrieves the tosca model and convert it to a Json schema.
* That json schema is normally used by the UI.
*
diff --git a/src/main/java/org/onap/policy/clamp/policy/Policy.java b/runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java
index f8bdab6c2..f8bdab6c2 100644
--- a/src/main/java/org/onap/policy/clamp/policy/Policy.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java
diff --git a/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java b/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java
index bdd77cb41..4142841e2 100644
--- a/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
* Copyright (C) 2020-2021 AT&T Intellectual Property. All rights
* reserved.
@@ -25,10 +25,11 @@ package org.onap.policy.clamp.policy;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import java.io.IOException;
import java.util.LinkedHashMap;
-import java.util.Map;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
+import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.ExchangeBuilder;
import org.onap.policy.clamp.clds.config.ClampProperties;
import org.onap.policy.clamp.clds.sdc.controller.installer.BlueprintMicroService;
@@ -37,6 +38,7 @@ import org.onap.policy.clamp.loop.template.PolicyModel;
import org.onap.policy.clamp.loop.template.PolicyModelsService;
import org.onap.policy.models.pdp.concepts.PdpGroups;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
@@ -55,9 +57,11 @@ public class PolicyEngineServices {
private final PolicyModelsService policyModelsService;
+ private static final String RAISE_EXCEPTION_FLAG = "raiseHttpExceptionFlag";
+
private static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyEngineServices.class);
- private static int retryInterval = 0;
- private static int retryLimit = 1;
+ private int retryInterval = 0;
+ private int retryLimit = 1;
public static final String POLICY_RETRY_INTERVAL = "policy.retry.interval";
public static final String POLICY_RETRY_LIMIT = "policy.retry.limit";
@@ -131,8 +135,7 @@ public class PolicyEngineServices {
return;
}
- LinkedHashMap<String, Object> policyTypesMap = (LinkedHashMap<String, Object>) loadedYaml
- .get("policy_types");
+ LinkedHashMap<String, Object> policyTypesMap = (LinkedHashMap<String, Object>) loadedYaml.get("policy_types");
policyTypesMap.forEach((key, value) ->
this.createPolicyModelFromPolicyEngine(key,
((String) ((LinkedHashMap<String, Object>) value).get("version"))));
@@ -145,8 +148,9 @@ public class PolicyEngineServices {
* @return A yaml containing all policy Types and all data types
*/
public String downloadAllPolicyModels() {
- return callCamelRoute(ExchangeBuilder.anExchange(camelContext).build(), "direct:get-all-policy-models",
- "Get all policies models");
+ return callCamelRoute(
+ ExchangeBuilder.anExchange(camelContext).withProperty(RAISE_EXCEPTION_FLAG, true).build(),
+ "direct:get-all-policy-models", "Get all policies models");
}
/**
@@ -166,7 +170,8 @@ public class PolicyEngineServices {
Yaml yamlParser = new Yaml(options);
String responseBody = callCamelRoute(
ExchangeBuilder.anExchange(camelContext).withProperty("policyModelType", policyType)
- .withProperty("policyModelVersion", policyVersion).build(), "direct:get-policy-tosca-model",
+ .withProperty("policyModelVersion", policyVersion).withProperty(RAISE_EXCEPTION_FLAG, false)
+ .build(), "direct:get-policy-tosca-model",
"Get one policy");
if (responseBody == null || responseBody.isEmpty()) {
@@ -174,7 +179,7 @@ public class PolicyEngineServices {
return null;
}
- return yamlParser.dump((Map<String, Object>) yamlParser.load(responseBody));
+ return yamlParser.dump(yamlParser.load(responseBody));
}
/**
@@ -182,8 +187,9 @@ public class PolicyEngineServices {
*/
public void downloadPdpGroups() {
String responseBody =
- callCamelRoute(ExchangeBuilder.anExchange(camelContext).build(), "direct:get-all-pdp-groups",
- "Get Pdp Groups");
+ callCamelRoute(
+ ExchangeBuilder.anExchange(camelContext).withProperty(RAISE_EXCEPTION_FLAG, false).build(),
+ "direct:get-all-pdp-groups", "Get Pdp Groups");
if (responseBody == null || responseBody.isEmpty()) {
logger.warn("getPdpGroups returned by policy engine could not be decoded, as it's null or empty");
@@ -195,17 +201,21 @@ public class PolicyEngineServices {
private String callCamelRoute(Exchange exchange, String camelFlow, String logMsg) {
for (int i = 0; i < retryLimit; i++) {
- Exchange exchangeResponse = camelContext.createProducerTemplate().send(camelFlow, exchange);
- if (Integer.valueOf(200).equals(exchangeResponse.getIn().getHeader("CamelHttpResponseCode"))) {
- return (String) exchangeResponse.getIn().getBody();
- } else {
- logger.info(logMsg + " query " + retryInterval + "ms before retrying ...");
- // wait for a while and try to connect to DCAE again
- try {
+ try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) {
+ Exchange exchangeResponse = producerTemplate.send(camelFlow, exchange);
+ if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
+ .is2xxSuccessful()) {
+ return (String) exchangeResponse.getIn().getBody();
+ } else {
+ logger.info(logMsg + " query " + retryInterval + "ms before retrying ...");
+ // wait for a while and try to connect to DCAE again
Thread.sleep(retryInterval);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
+
}
+ } catch (IOException e) {
+ logger.error("IOException caught when trying to call Camel flow:" + camelFlow, e);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
}
}
return "";
diff --git a/src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java b/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java
index d2c860150..d2c860150 100644
--- a/src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java
diff --git a/src/main/java/org/onap/policy/clamp/policy/PolicyService.java b/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyService.java
index 35ffa2443..35ffa2443 100644
--- a/src/main/java/org/onap/policy/clamp/policy/PolicyService.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyService.java
diff --git a/src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java b/runtime/src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java
index 81775e5da..81775e5da 100644
--- a/src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java
diff --git a/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java b/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java
index 2e5db8e24..be5e7917c 100644
--- a/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java
@@ -26,6 +26,7 @@ package org.onap.policy.clamp.policy.microservice;
import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose;
import java.io.Serializable;
+import java.security.SecureRandom;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
@@ -130,7 +131,7 @@ public class MicroServicePolicy extends Policy implements Serializable {
this(Policy.generatePolicyName("MICROSERVICE", service.getName(), service.getVersion(),
loopElementModel.getPolicyModels().first().getPolicyAcronym() + '_'
+ loopElementModel.getPolicyModels().first().getVersion(),
- RandomStringUtils.randomAlphanumeric(3)),
+ RandomStringUtils.random(3, 0, 0, true, true, null, new SecureRandom())),
loopElementModel.getPolicyModels().first(), false, new JsonObject(), loopElementModel, null, null);
this.updateJsonRepresentation(toscaConverter, service);
}
diff --git a/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java b/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java
index 2ce2c4f17..2ce2c4f17 100644
--- a/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java
diff --git a/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java b/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java
index b9871049e..b9871049e 100644
--- a/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java
diff --git a/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java
index 5b29f319c..1646a7cc7 100644
--- a/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java
@@ -30,6 +30,7 @@ import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
+import java.security.SecureRandom;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
@@ -114,7 +115,7 @@ public class OperationalPolicy extends Policy implements Serializable {
this(Policy.generatePolicyName("OPERATIONAL", service.getName(), service.getVersion(),
loopElementModel.getPolicyModels().first().getPolicyAcronym() + '_'
+ loopElementModel.getPolicyModels().first().getVersion(),
- RandomStringUtils.randomAlphanumeric(3)), new JsonObject(),
+ RandomStringUtils.random(3, 0, 0, true, true, null, new SecureRandom())), new JsonObject(),
new JsonObject(), loopElementModel.getPolicyModels().first(), loopElementModel, null, null);
this.setLoop(loop);
this.updateJsonRepresentation(toscaConverter, service);
@@ -132,7 +133,7 @@ public class OperationalPolicy extends Policy implements Serializable {
ToscaConverterWithDictionarySupport toscaConverter) {
this(Policy.generatePolicyName("OPERATIONAL", service.getName(), service.getVersion(),
policyModel.getPolicyAcronym() + '_' + policyModel.getVersion(),
- RandomStringUtils.randomAlphanumeric(3)),
+ RandomStringUtils.random(3, 0, 0, true, true, null, new SecureRandom())),
new JsonObject(),
new JsonObject(), policyModel, null, null, null);
this.setLoop(loop);
diff --git a/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java
index b0a33669a..b0a33669a 100644
--- a/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java
diff --git a/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
index 8a1bb1abf..6718475ca 100644
--- a/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* Modifications Copyright (C) 2020 Huawei Technologies Co., Ltd.
* ================================================================================
@@ -81,12 +81,10 @@ public class OperationalPolicyRepresentationBuilder {
.getAsJsonObject().get(ANY_OF).getAsJsonArray().addAll(createAnyOfArray(modelJson, true));
// update CDS recipe and payload information to schema
- JsonArray actors = jsonSchema.get(PROPERTIES).getAsJsonObject()
+ for (JsonElement actor : jsonSchema.get(PROPERTIES).getAsJsonObject()
.get("operational_policy").getAsJsonObject().get(PROPERTIES).getAsJsonObject().get("policies")
.getAsJsonObject().get(ITEMS).getAsJsonObject().get(PROPERTIES).getAsJsonObject().get("actor")
- .getAsJsonObject().get(ANY_OF).getAsJsonArray();
-
- for (JsonElement actor : actors) {
+ .getAsJsonObject().get(ANY_OF).getAsJsonArray()) {
if ("CDS".equalsIgnoreCase(actor.getAsJsonObject().get(TITLE).getAsString())) {
actor.getAsJsonObject().get(PROPERTIES).getAsJsonObject().get(RECIPE).getAsJsonObject()
.get(ANY_OF).getAsJsonArray()
@@ -141,8 +139,8 @@ public class OperationalPolicyRepresentationBuilder {
private static JsonArray createBlankEntry() {
JsonArray result = new JsonArray();
JsonObject blankObject = new JsonObject();
- blankObject.addProperty("title", "User defined");
- blankObject.add("properties", new JsonObject());
+ blankObject.addProperty(TITLE, "User defined");
+ blankObject.add(PROPERTIES, new JsonObject());
result.add(blankObject);
return result;
}
@@ -224,7 +222,7 @@ public class OperationalPolicyRepresentationBuilder {
for (Entry<String, JsonElement> workflowsEntry : workflows.entrySet()) {
JsonObject obj = new JsonObject();
obj.addProperty(TITLE, workflowsEntry.getKey());
- obj.addProperty(TYPE, "object");
+ obj.addProperty(TYPE, TYPE_OBJECT);
obj.add(PROPERTIES, createPayloadProperty(workflowsEntry.getValue().getAsJsonObject(),
controllerProperties, workflowsEntry.getKey()));
schemaArray.add(obj);
@@ -239,7 +237,7 @@ public class OperationalPolicyRepresentationBuilder {
JsonObject controllerProperties, String workFlowName) {
JsonObject payload = new JsonObject();
payload.addProperty(TITLE, "Payload");
- payload.addProperty(TYPE, "object");
+ payload.addProperty(TYPE, TYPE_OBJECT);
payload.add(PROPERTIES, createInputPropertiesForPayload(workFlow, controllerProperties,
workFlowName));
JsonObject properties = new JsonObject();
@@ -302,7 +300,7 @@ public class OperationalPolicyRepresentationBuilder {
String key = entry.getKey();
JsonObject inputProperty = inputs.getAsJsonObject(key);
if (key.equalsIgnoreCase(workFlowName + "-properties")) {
- addDataFields(entry.getValue().getAsJsonObject().get("properties").getAsJsonObject(),
+ addDataFields(entry.getValue().getAsJsonObject().get(PROPERTIES).getAsJsonObject(),
dataObj, workFlowName);
} else {
dataObj.add(entry.getKey(),
@@ -326,7 +324,7 @@ public class OperationalPolicyRepresentationBuilder {
listProperties.add(PROPERTIES, getProperties(cdsProperty.get(PROPERTIES).getAsJsonObject()));
property.add(ITEMS, listProperties);
}
- } else if (TYPE_OBJECT.equalsIgnoreCase(type)) {
+ } else if (cdsProperty != null && TYPE_OBJECT.equalsIgnoreCase(type)) {
property.addProperty(TYPE, TYPE_OBJECT);
property.add(PROPERTIES, getProperties(cdsProperty.get(PROPERTIES).getAsJsonObject()));
} else {
diff --git a/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java
index 3f3f39b45..3f3f39b45 100644
--- a/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java
new file mode 100644
index 000000000..c6b44076f
--- /dev/null
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java
@@ -0,0 +1,141 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.policy.pdpgroup;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import com.google.gson.JsonElement;
+import java.util.ArrayList;
+import java.util.Arrays;
+import org.onap.policy.clamp.clds.util.JsonUtils;
+import org.onap.policy.models.pdp.concepts.DeploymentGroup;
+import org.onap.policy.models.pdp.concepts.DeploymentGroups;
+import org.onap.policy.models.pdp.concepts.DeploymentSubGroup;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+
+/**
+ * This is an utility class that build the PDP group policy payload.
+ * This is used when policies have to be deployed to PDP group/subgroups on the Policy Engine.
+ * Currently it does not group the queries per pdpgroup/subgroups/action.
+ * This is currently NOT thread safe, do not use parallel streams to update the structure.
+ */
+public class PdpGroupPayload {
+
+ private static final EELFLogger logger = EELFManager.getInstance().getLogger(PdpGroupPayload.class);
+
+ /**
+ * The default node that will contain the actions array.
+ */
+ public static final String PDP_ACTIONS = "PdpActions";
+
+ private final DeploymentGroups deploymentGroups = new DeploymentGroups();
+
+ /**
+ * Default constructor.
+ */
+ public PdpGroupPayload() {
+ deploymentGroups.setGroups(new ArrayList<>());
+ }
+
+ /**
+ * Constructor that takes a list of actions in input.
+ *
+ * @param listOfPdpActions The list of actions that needs to be done.
+ * e.g: {"Pdpactions":["DELETE/PdpGroup1/PdpSubGroup1/PolicyName1/1.0.0",....]}
+ * @throws PdpGroupPayloadException in case of issues to read the listOfActions
+ */
+ public PdpGroupPayload(final JsonElement listOfPdpActions) throws PdpGroupPayloadException {
+ this();
+ this.readListOfActions(listOfPdpActions);
+ }
+
+ /**
+ * This method converts the list of actions directly to the pdp payload query as String.
+ *
+ * @param listOfPdpActions The list of actions that needs to be done.
+ * e.g: {"Pdpactions":["DELETE/PdpGroup1/PdpSubGroup1/PolicyName1/1.0.0",....]}
+ * @return The string containing the PDP payload that can be sent directly
+ * @throws PdpGroupPayloadException in case of issues to read the listOfActions
+ */
+ public static String generatePdpGroupPayloadFromList(final JsonElement listOfPdpActions)
+ throws PdpGroupPayloadException {
+ return new PdpGroupPayload(listOfPdpActions).generatePdpGroupPayload();
+ }
+
+
+ private void readListOfActions(final JsonElement listOfPdpActions) throws PdpGroupPayloadException {
+ for (JsonElement action : listOfPdpActions.getAsJsonObject().getAsJsonArray(PDP_ACTIONS)) {
+ String[] opParams = action.getAsString().split("/");
+ if (opParams.length == 5) {
+ this.updatePdpGroupMap(opParams[1], opParams[2], opParams[3], opParams[4], opParams[0]);
+ } else {
+ logger.error("One PDP push command does not contain the right number of arguments: " + action);
+ throw new PdpGroupPayloadException(
+ "One PDP push command does not contain the right number of arguments: " + action);
+ }
+ }
+ }
+
+ /**
+ * This method updates the pdpGroupMap structure for a specific policy/version/pdpdGroup/PdpSubGroup.
+ *
+ * @param pdpGroup The pdp Group in String
+ * @param pdpSubGroup The pdp Sub Group in String
+ * @param policyName The policy name
+ * @param policyVersion The policy Version
+ * @param action DELETE or POST
+ */
+ public void updatePdpGroupMap(String pdpGroup,
+ String pdpSubGroup,
+ String policyName,
+ String policyVersion, String action) {
+ // create subgroup
+ DeploymentSubGroup newSubGroup = new DeploymentSubGroup();
+ newSubGroup.setPdpType(pdpSubGroup);
+ newSubGroup.setAction(DeploymentSubGroup.Action.valueOf(action));
+ newSubGroup.setPolicies(Arrays.asList(new ToscaConceptIdentifier(policyName, policyVersion)));
+ // Add to deployment Groups structure
+ this.deploymentGroups.getGroups().stream().filter(group ->
+ group.getName().equals(pdpGroup)).findFirst()
+ .ifPresentOrElse(group -> group.getDeploymentSubgroups().add(newSubGroup),
+ () -> {
+ DeploymentGroup newGroup = new DeploymentGroup();
+ newGroup.setName(pdpGroup);
+ newGroup.setDeploymentSubgroups(new ArrayList<>(Arrays.asList(newSubGroup)));
+ this.deploymentGroups.getGroups().add(newGroup);
+ });
+ }
+
+ /**
+ * This method generates the Payload in Json from the pdp Group structure containing the policies/versions
+ * that must be sent to the policy framework.
+ *
+ * @return The Json that can be sent to policy framework as String
+ */
+ public String generatePdpGroupPayload() {
+ String payload = JsonUtils.GSON.toJson(this.deploymentGroups);
+ logger.info("PdpGroup policy payload: " + payload);
+ return payload;
+ }
+}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadException.java b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadException.java
new file mode 100644
index 000000000..4ce0721b2
--- /dev/null
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadException.java
@@ -0,0 +1,54 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.policy.pdpgroup;
+
+/**
+ * Exception during Pdp Group payload construction.
+ */
+public class PdpGroupPayloadException extends Exception {
+
+ /**
+ * serialization id.
+ */
+ private static final long serialVersionUID = -5676848693241134101L;
+
+ /**
+ * This constructor can be used to create a new PdpGroupPayloadException.
+ *
+ * @param message The message to dump
+ */
+ public PdpGroupPayloadException(final String message) {
+ super(message);
+ }
+
+ /**
+ * This constructor can be used to create a new PdpGroupPayloadException.
+ *
+ * @param message The message to dump
+ * @param cause The Throwable cause object
+ */
+ public PdpGroupPayloadException(final String message, final Throwable cause) {
+ super(message, cause);
+ }
+}
diff --git a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java
index 768872750..6098d0f63 100644
--- a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java
@@ -25,9 +25,14 @@ package org.onap.policy.clamp.policy.pdpgroup;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
-import java.util.Optional;
+import java.util.concurrent.ConcurrentHashMap;
+import org.apache.commons.collections4.CollectionUtils;
+import org.onap.policy.clamp.clds.util.JsonUtils;
import org.onap.policy.clamp.loop.template.PolicyModel;
import org.onap.policy.models.pdp.concepts.PdpGroup;
import org.onap.policy.models.pdp.concepts.PdpGroups;
@@ -44,8 +49,77 @@ public class PdpGroupsAnalyzer {
public static final String SUPPORTED_PDP_GROUPS_INFO = "supportedPdpGroups";
/**
- * Get supported subGroups based on the defined policy type and version for s specific PDPgroup.
- * It returns null if the Group is not ACTIVE or if the policytype/version has not been found in the PDPSubgroups.
+ * This structure holds the map of PdpGroups per policies, policies are identifed by ToscaConceptIdentifier.
+ */
+ private final Map<ToscaConceptIdentifier, Map<String, PdpGroup>> pdpGroupsDeploymentPerPolicy =
+ new ConcurrentHashMap<>();
+
+ /**
+ * Constructor taking he PDPGroups info from the PEF.
+ * It then caches the groups per policies and per types.
+ *
+ * @param pdpGroups The pdpgroup info from the PEF
+ */
+ public PdpGroupsAnalyzer(PdpGroups pdpGroups) {
+ this.analyzePdpGroups(pdpGroups);
+ }
+
+ /**
+ * Getter of the GroupDeploymentPerPolicy structure.
+ *
+ * @return The map of policies.
+ */
+ public Map<ToscaConceptIdentifier, Map<String, PdpGroup>> getPdpGroupsDeploymentPerPolicy() {
+ return pdpGroupsDeploymentPerPolicy;
+ }
+
+ private static void addInfoToPdpGroupsStructure(ToscaConceptIdentifier toscaId,
+ Map<ToscaConceptIdentifier,
+ Map<String,
+ PdpGroup>> pdpGroupsDeploymentPerToscaIdentifier,
+ PdpGroup pdpGroupSource,
+ PdpSubGroup pdpSubGroupSource) {
+ // Copy the subgroup but empty the policies & types
+ pdpGroupsDeploymentPerToscaIdentifier.computeIfAbsent(toscaId, toscaKey -> new ConcurrentHashMap<>())
+ .computeIfAbsent(pdpGroupSource.getName(), pdpGroupName -> {
+ PdpGroup pdpGroupCopy = new PdpGroup(pdpGroupSource);
+ pdpGroupCopy.setPdpSubgroups(new ArrayList<>());
+ return pdpGroupCopy;
+ }).getPdpSubgroups().add(new PdpSubGroup(pdpSubGroupSource));
+ }
+
+ private void analyzePdpGroups(PdpGroups pdpGroups) {
+ CollectionUtils.emptyIfNull(pdpGroups.getGroups()).stream()
+ .forEach(group -> CollectionUtils.emptyIfNull(group.getPdpSubgroups()).stream().forEach(subGroup ->
+ CollectionUtils.emptyIfNull(subGroup.getPolicies()).parallelStream().forEach(policy ->
+ PdpGroupsAnalyzer.addInfoToPdpGroupsStructure(policy, this.pdpGroupsDeploymentPerPolicy,
+ group, subGroup))));
+ }
+
+ /**
+ * This method retrieves all pdpGroups and subgroups where a specific policy name/version is deployed.
+ *
+ * @param policyName The policy name that must be used for searching
+ * @param version THe policy version that must be used for searching
+ * @return It returns a JsonObject containing each pdpGroup and subgroups associated
+ */
+ public JsonObject getPdpGroupsForPolicy(String policyName, String version) {
+ Map<String, PdpGroup> mapOfGroups =
+ this.pdpGroupsDeploymentPerPolicy.get(new ToscaConceptIdentifier(policyName, version));
+ if (mapOfGroups != null) {
+ JsonObject policyPdpGroups = new JsonObject();
+ JsonArray pdpGroupsArray = new JsonArray();
+ policyPdpGroups.add(ASSIGNED_PDP_GROUPS_INFO, pdpGroupsArray);
+ pdpGroupsArray.add(JsonUtils.GSON
+ .toJsonTree(mapOfGroups));
+ return policyPdpGroups;
+ }
+ return null;
+ }
+
+ /**
+ * Get supported subGroups based on the defined policy type and version for specific PDPGroup.
+ * It returns null if the Group is TERMINATED or if the policytype/version has not been found in the PDPSubgroups.
*
* @param pdpGroup The pdpGroup that must be analyzed
* @param policyType The policy type
@@ -56,7 +130,7 @@ public class PdpGroupsAnalyzer {
*/
private static JsonObject getSupportedPdpSubgroupsForModelType(PdpGroup pdpGroup, String policyType,
String version) {
- if (!PdpState.ACTIVE.equals(pdpGroup.getPdpGroupState())) {
+ if (PdpState.TERMINATED.equals(pdpGroup.getPdpGroupState())) {
return null;
}
JsonObject supportedPdpGroup = new JsonObject();
@@ -87,7 +161,7 @@ public class PdpGroupsAnalyzer {
pdpGroups.getGroups().stream().map(pdpGroup -> PdpGroupsAnalyzer.getSupportedPdpSubgroupsForModelType(pdpGroup,
policyType, version)).filter(Objects::nonNull)
- .forEach(jsonPdpGroup -> pdpGroupsArray.add(jsonPdpGroup));
+ .forEach(pdpGroupsArray::add);
return pdpGroupsArray.size() != 0 ? supportedPdpGroups : null;
}
@@ -99,38 +173,8 @@ public class PdpGroupsAnalyzer {
* @param pdpGroups The PdpGroups containing all PDP group definition
*/
public static void updatePdpGroupOfPolicyModels(List<PolicyModel> policyModelsList, PdpGroups pdpGroups) {
- policyModelsList.parallelStream().forEach(policyModel -> {
- policyModel.setPolicyPdpGroup(getSupportedPdpGroupsForModelType(pdpGroups, policyModel.getPolicyModelType(),
- policyModel.getVersion()));
- });
- }
-
- /**
- * This method searches for the PdpGroup/subgroup where the policy given is currently deployed.
- *
- * @param pdpGroups The pdpGroups info from PEF
- * @param policyName The policy Id
- * @param version The policy version
- * @return It returns a JsonObject containing the pdpGroup/subgroup info
- */
- public static JsonObject getPdpGroupDeploymentOfOnePolicy(PdpGroups pdpGroups, String policyName, String version) {
- JsonObject pdpGroupInfo = new JsonObject();
- JsonObject assignedPdpGroups = new JsonObject();
- pdpGroupInfo.add(ASSIGNED_PDP_GROUPS_INFO, assignedPdpGroups);
-
- ToscaConceptIdentifier toscaConceptIdentifier = new ToscaConceptIdentifier(policyName, version);
- pdpGroups.getGroups().stream().anyMatch(pdpGroup ->
- pdpGroup.getPdpSubgroups().stream().anyMatch(
- pdpSubGroup -> {
- if (pdpSubGroup.getPolicies() != null && pdpSubGroup.getPolicies()
- .contains(toscaConceptIdentifier)) {
- assignedPdpGroups.addProperty("pdpGroup", pdpGroup.getName());
- assignedPdpGroups.addProperty("pdpSubGroup", pdpSubGroup.getPdpType());
- return true;
- }
- return false;
- })
- );
- return assignedPdpGroups.entrySet().isEmpty() ? null : pdpGroupInfo;
+ policyModelsList.parallelStream().forEach(policyModel -> policyModel
+ .setPolicyPdpGroup(getSupportedPdpGroupsForModelType(pdpGroups, policyModel.getPolicyModelType(),
+ policyModel.getVersion())));
}
} \ No newline at end of file
diff --git a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java
index 44b11119b..6775eb0c6 100644
--- a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java
@@ -23,11 +23,8 @@
package org.onap.policy.clamp.policy.pdpgroup;
-import com.google.gson.Gson;
-import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
-import java.util.Map;
import java.util.stream.StreamSupport;
import org.onap.policy.clamp.clds.util.JsonUtils;
import org.onap.policy.models.pdp.concepts.PdpGroups;
@@ -38,6 +35,8 @@ import org.onap.policy.models.pdp.concepts.PdpGroups;
*/
public class PoliciesPdpMerger {
+ private PoliciesPdpMerger() {}
+
/**
* This method extract the content of a policy without knowing the key (policy Id).
* This JsonElement normally contains only the policy ID then the content,
@@ -91,8 +90,9 @@ public class PoliciesPdpMerger {
* @param policyJsonNode The policy json node that must be enriched
*/
private static void enrichOnePolicy(PdpGroups pdpGroups, JsonObject policyJsonNode) {
- JsonObject deploymentPdpJson = PdpGroupsAnalyzer
- .getPdpGroupDeploymentOfOnePolicy(pdpGroups, policyJsonNode.get("name").getAsString(),
+ PdpGroupsAnalyzer pdpGroupAnalyzer = new PdpGroupsAnalyzer(pdpGroups);
+ JsonObject deploymentPdpJson = pdpGroupAnalyzer
+ .getPdpGroupsForPolicy(policyJsonNode.get("name").getAsString(),
policyJsonNode.get("version").getAsString());
mergeJsonElement(policyJsonNode, deploymentPdpJson);
@@ -101,18 +101,4 @@ public class PoliciesPdpMerger {
policyJsonNode.get("type_version").getAsString());
mergeJsonElement(policyJsonNode, supportedPdpGroupsJson);
}
-
- /**
- * This method removes the pdp States added for one policy.
- *
- * @param policyJsonNode The policy node Json as String
- * @return The Json with pdp group info removed
- */
- public static JsonObject removePdpStatesOnePolicy(JsonObject policyJsonNode) {
- //JsonObject policyJson = JsonUtils.GSON.fromJson(policyJsonNode, JsonObject.class);
- // Simply remove the nodes we have added.
- policyJsonNode.remove(PdpGroupsAnalyzer.ASSIGNED_PDP_GROUPS_INFO);
- policyJsonNode.remove(PdpGroupsAnalyzer.SUPPORTED_PDP_GROUPS_INFO);
- return policyJsonNode;
- }
} \ No newline at end of file
diff --git a/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java b/runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java
index 4b01d6902..4b01d6902 100644
--- a/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java
diff --git a/src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java
index ecf4b876c..ecf4b876c 100644
--- a/src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java
diff --git a/src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java
index 0bc50fe1a..0bc50fe1a 100644
--- a/src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java
diff --git a/src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java
index a2f417d17..a2f417d17 100644
--- a/src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java
diff --git a/src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java
index 849d4baae..849d4baae 100644
--- a/src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java
diff --git a/src/main/java/org/onap/policy/clamp/util/PassDecoder.java b/runtime/src/main/java/org/onap/policy/clamp/util/PassDecoder.java
index f4b8ed4dc..b8e90e3d0 100644
--- a/src/main/java/org/onap/policy/clamp/util/PassDecoder.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/util/PassDecoder.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -32,6 +32,10 @@ import org.onap.policy.clamp.clds.util.ResourceFileUtils;
* PassDecoder for decrypting the truststore and keystore password.
*/
public class PassDecoder {
+
+ private PassDecoder() {
+ }
+
/**
* Used to log PassDecoder class.
*/
@@ -41,7 +45,7 @@ public class PassDecoder {
* Decode the password.
*
* @param encryptedPass The encrypted password
- * @param keyFileName The key file name in String
+ * @param keyFileName The key file name in String
*/
public static String decode(String encryptedPass, String keyFileName) {
if (null == keyFileName) {
diff --git a/src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java b/runtime/src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java
index 58367193f..58367193f 100644
--- a/src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java
diff --git a/src/main/resources/META-INF/resources/swagger.html b/runtime/src/main/resources/META-INF/resources/swagger.html
index 6712ab096..f7fbeb039 100644
--- a/src/main/resources/META-INF/resources/swagger.html
+++ b/runtime/src/main/resources/META-INF/resources/swagger.html
@@ -444,31 +444,31 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</li>
<li><a href="#_paths">2. Paths</a>
<ul class="sectlevel2">
-<li><a href="#_route184">2.1. GET /v1/healthcheck</a>
+<li><a href="#_verb189">2.1. GET /v1/healthcheck</a>
<ul class="sectlevel3">
<li><a href="#_responses">2.1.1. Responses</a></li>
<li><a href="#_produces">2.1.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route185">2.2. GET /v1/user/getUser</a>
+<li><a href="#_verb190">2.2. GET /v1/user/getUser</a>
<ul class="sectlevel3">
<li><a href="#_responses_2">2.2.1. Responses</a></li>
<li><a href="#_produces_2">2.2.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route183">2.3. GET /v2/clampInformation</a>
+<li><a href="#_verb188">2.3. GET /v2/clampInformation</a>
<ul class="sectlevel3">
<li><a href="#_responses_3">2.3.1. Responses</a></li>
<li><a href="#_produces_3">2.3.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route167">2.4. GET /v2/dictionary</a>
+<li><a href="#_verb173">2.4. GET /v2/dictionary</a>
<ul class="sectlevel3">
<li><a href="#_responses_4">2.4.1. Responses</a></li>
<li><a href="#_produces_4">2.4.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route170">2.5. PUT /v2/dictionary</a>
+<li><a href="#_verb176">2.5. PUT /v2/dictionary</a>
<ul class="sectlevel3">
<li><a href="#_parameters">2.5.1. Parameters</a></li>
<li><a href="#_responses_5">2.5.2. Responses</a></li>
@@ -476,20 +476,20 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_5">2.5.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route168">2.6. GET /v2/dictionary/secondary/names</a>
+<li><a href="#_verb174">2.6. GET /v2/dictionary/secondary/names</a>
<ul class="sectlevel3">
<li><a href="#_responses_6">2.6.1. Responses</a></li>
<li><a href="#_produces_6">2.6.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route169">2.7. GET /v2/dictionary/{dictionaryName}</a>
+<li><a href="#_verb175">2.7. GET /v2/dictionary/{dictionaryName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_2">2.7.1. Parameters</a></li>
<li><a href="#_responses_7">2.7.2. Responses</a></li>
<li><a href="#_produces_7">2.7.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route171">2.8. PUT /v2/dictionary/{name}</a>
+<li><a href="#_verb177">2.8. PUT /v2/dictionary/{name}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_3">2.8.1. Parameters</a></li>
<li><a href="#_responses_8">2.8.2. Responses</a></li>
@@ -497,28 +497,28 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_8">2.8.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route172">2.9. DELETE /v2/dictionary/{name}</a>
+<li><a href="#_verb178">2.9. DELETE /v2/dictionary/{name}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_4">2.9.1. Parameters</a></li>
<li><a href="#_responses_9">2.9.2. Responses</a></li>
<li><a href="#_produces_9">2.9.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route173">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a>
+<li><a href="#_verb179">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_5">2.10.1. Parameters</a></li>
<li><a href="#_responses_10">2.10.2. Responses</a></li>
<li><a href="#_produces_10">2.10.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route164">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a>
+<li><a href="#_verb167">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_6">2.11.1. Parameters</a></li>
<li><a href="#_responses_11">2.11.2. Responses</a></li>
<li><a href="#_produces_11">2.11.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route166">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a>
+<li><a href="#_verb169">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_7">2.12.1. Parameters</a></li>
<li><a href="#_responses_12">2.12.2. Responses</a></li>
@@ -526,82 +526,82 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_12">2.12.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route162">2.13. PUT /v2/loop/delete/{loopName}</a>
+<li><a href="#_verb165">2.13. PUT /v2/loop/delete/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_8">2.13.1. Parameters</a></li>
<li><a href="#_responses_13">2.13.2. Responses</a></li>
</ul>
</li>
-<li><a href="#_route155">2.14. PUT /v2/loop/deploy/{loopName}</a>
+<li><a href="#_verb158">2.14. PUT /v2/loop/deploy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_9">2.14.1. Parameters</a></li>
<li><a href="#_responses_14">2.14.2. Responses</a></li>
<li><a href="#_produces_13">2.14.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route150">2.15. GET /v2/loop/getAllNames</a>
+<li><a href="#_verb153">2.15. GET /v2/loop/getAllNames</a>
<ul class="sectlevel3">
<li><a href="#_responses_15">2.15.1. Responses</a></li>
<li><a href="#_produces_14">2.15.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route163">2.16. GET /v2/loop/getstatus/{loopName}</a>
+<li><a href="#_verb166">2.16. GET /v2/loop/getstatus/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_10">2.16.1. Parameters</a></li>
<li><a href="#_responses_16">2.16.2. Responses</a></li>
<li><a href="#_produces_15">2.16.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route156">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a>
+<li><a href="#_verb159">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_11">2.17.1. Parameters</a></li>
<li><a href="#_responses_17">2.17.2. Responses</a></li>
<li><a href="#_produces_16">2.17.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route157">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a>
+<li><a href="#_verb160">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_12">2.18.1. Parameters</a></li>
<li><a href="#_responses_18">2.18.2. Responses</a></li>
<li><a href="#_produces_17">2.18.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route165">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a>
+<li><a href="#_verb168">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_13">2.19.1. Parameters</a></li>
<li><a href="#_responses_19">2.19.2. Responses</a></li>
<li><a href="#_produces_18">2.19.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route160">2.20. PUT /v2/loop/restart/{loopName}</a>
+<li><a href="#_verb163">2.20. PUT /v2/loop/restart/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_14">2.20.1. Parameters</a></li>
<li><a href="#_responses_20">2.20.2. Responses</a></li>
<li><a href="#_produces_19">2.20.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route159">2.21. PUT /v2/loop/stop/{loopName}</a>
+<li><a href="#_verb162">2.21. PUT /v2/loop/stop/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_15">2.21.1. Parameters</a></li>
<li><a href="#_responses_21">2.21.2. Responses</a></li>
<li><a href="#_produces_20">2.21.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route161">2.22. PUT /v2/loop/submit/{loopName}</a>
+<li><a href="#_verb164">2.22. PUT /v2/loop/submit/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_16">2.22.1. Parameters</a></li>
<li><a href="#_responses_22">2.22.2. Responses</a></li>
<li><a href="#_produces_21">2.22.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route158">2.23. PUT /v2/loop/undeploy/{loopName}</a>
+<li><a href="#_verb161">2.23. PUT /v2/loop/undeploy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_17">2.23.1. Parameters</a></li>
<li><a href="#_responses_23">2.23.2. Responses</a></li>
<li><a href="#_produces_22">2.23.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route152">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a>
+<li><a href="#_verb155">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_18">2.24.1. Parameters</a></li>
<li><a href="#_responses_24">2.24.2. Responses</a></li>
@@ -609,7 +609,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_23">2.24.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route154">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a>
+<li><a href="#_verb157">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_19">2.25.1. Parameters</a></li>
<li><a href="#_responses_25">2.25.2. Responses</a></li>
@@ -617,7 +617,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_24">2.25.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route153">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a>
+<li><a href="#_verb156">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_20">2.26.1. Parameters</a></li>
<li><a href="#_responses_26">2.26.2. Responses</a></li>
@@ -625,72 +625,84 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_25">2.26.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route151">2.27. GET /v2/loop/{loopName}</a>
+<li><a href="#_verb154">2.27. GET /v2/loop/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_21">2.27.1. Parameters</a></li>
<li><a href="#_responses_27">2.27.2. Responses</a></li>
<li><a href="#_produces_26">2.27.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route182">2.28. GET /v2/policies/list</a>
+<li><a href="#_verb183">2.28. GET /v2/policies</a>
<ul class="sectlevel3">
<li><a href="#_responses_28">2.28.1. Responses</a></li>
<li><a href="#_produces_27">2.28.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route177">2.29. POST /v2/policyToscaModels</a>
+<li><a href="#_verb186">2.29. PUT /v2/policies/pdpDeployment</a>
<ul class="sectlevel3">
<li><a href="#_parameters_22">2.29.1. Parameters</a></li>
<li><a href="#_responses_29">2.29.2. Responses</a></li>
<li><a href="#_consumes_7">2.29.3. Consumes</a></li>
-<li><a href="#_produces_28">2.29.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route174">2.30. GET /v2/policyToscaModels</a>
+<li><a href="#_verb187">2.30. POST /v2/policies/policytype</a>
<ul class="sectlevel3">
-<li><a href="#_responses_30">2.30.1. Responses</a></li>
-<li><a href="#_produces_29">2.30.2. Produces</a></li>
+<li><a href="#_parameters_23">2.30.1. Parameters</a></li>
+<li><a href="#_responses_30">2.30.2. Responses</a></li>
+<li><a href="#_consumes_8">2.30.3. Consumes</a></li>
</ul>
</li>
-<li><a href="#_route176">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a>
+<li><a href="#_verb184">2.31. POST /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a>
<ul class="sectlevel3">
-<li><a href="#_parameters_23">2.31.1. Parameters</a></li>
+<li><a href="#_parameters_24">2.31.1. Parameters</a></li>
<li><a href="#_responses_31">2.31.2. Responses</a></li>
-<li><a href="#_produces_30">2.31.3. Produces</a></li>
+<li><a href="#_consumes_9">2.31.3. Consumes</a></li>
+<li><a href="#_produces_28">2.31.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route175">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
+<li><a href="#_verb185">2.32. DELETE /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a>
<ul class="sectlevel3">
-<li><a href="#_parameters_24">2.32.1. Parameters</a></li>
+<li><a href="#_parameters_25">2.32.1. Parameters</a></li>
<li><a href="#_responses_32">2.32.2. Responses</a></li>
-<li><a href="#_produces_31">2.32.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route178">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
+<li><a href="#_verb180">2.33. GET /v2/policyToscaModels</a>
<ul class="sectlevel3">
-<li><a href="#_parameters_25">2.33.1. Parameters</a></li>
-<li><a href="#_responses_33">2.33.2. Responses</a></li>
-<li><a href="#_consumes_8">2.33.3. Consumes</a></li>
-<li><a href="#_produces_32">2.33.4. Produces</a></li>
+<li><a href="#_responses_33">2.33.1. Responses</a></li>
+<li><a href="#_produces_29">2.33.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route179">2.34. GET /v2/templates</a>
+<li><a href="#_verb182">2.34. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a>
<ul class="sectlevel3">
-<li><a href="#_responses_34">2.34.1. Responses</a></li>
-<li><a href="#_produces_33">2.34.2. Produces</a></li>
+<li><a href="#_parameters_26">2.34.1. Parameters</a></li>
+<li><a href="#_responses_34">2.34.2. Responses</a></li>
+<li><a href="#_produces_30">2.34.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route181">2.35. GET /v2/templates/names</a>
+<li><a href="#_verb181">2.35. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
<ul class="sectlevel3">
-<li><a href="#_responses_35">2.35.1. Responses</a></li>
-<li><a href="#_produces_34">2.35.2. Produces</a></li>
+<li><a href="#_parameters_27">2.35.1. Parameters</a></li>
+<li><a href="#_responses_35">2.35.2. Responses</a></li>
+<li><a href="#_produces_31">2.35.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route180">2.36. GET /v2/templates/{templateName}</a>
+<li><a href="#_verb170">2.36. GET /v2/templates</a>
<ul class="sectlevel3">
-<li><a href="#_parameters_26">2.36.1. Parameters</a></li>
-<li><a href="#_responses_36">2.36.2. Responses</a></li>
-<li><a href="#_produces_35">2.36.3. Produces</a></li>
+<li><a href="#_responses_36">2.36.1. Responses</a></li>
+<li><a href="#_produces_32">2.36.2. Produces</a></li>
+</ul>
+</li>
+<li><a href="#_verb172">2.37. GET /v2/templates/names</a>
+<ul class="sectlevel3">
+<li><a href="#_responses_37">2.37.1. Responses</a></li>
+<li><a href="#_produces_33">2.37.2. Produces</a></li>
+</ul>
+</li>
+<li><a href="#_verb171">2.38. GET /v2/templates/{templateName}</a>
+<ul class="sectlevel3">
+<li><a href="#_parameters_28">2.38.1. Parameters</a></li>
+<li><a href="#_responses_38">2.38.2. Responses</a></li>
+<li><a href="#_produces_34">2.38.3. Produces</a></li>
</ul>
</li>
</ul>
@@ -704,19 +716,20 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_externalcomponent">3.5. ExternalComponent</a></li>
<li><a href="#_externalcomponentstate">3.6. ExternalComponentState</a></li>
<li><a href="#_jsonarray">3.7. JsonArray</a></li>
-<li><a href="#_jsonnull">3.8. JsonNull</a></li>
-<li><a href="#_jsonobject">3.9. JsonObject</a></li>
-<li><a href="#_jsonprimitive">3.10. JsonPrimitive</a></li>
-<li><a href="#_loop">3.11. Loop</a></li>
-<li><a href="#_loopelementmodel">3.12. LoopElementModel</a></li>
-<li><a href="#_looplog">3.13. LoopLog</a></li>
-<li><a href="#_looptemplate">3.14. LoopTemplate</a></li>
-<li><a href="#_looptemplateloopelementmodel">3.15. LoopTemplateLoopElementModel</a></li>
-<li><a href="#_microservicepolicy">3.16. MicroServicePolicy</a></li>
-<li><a href="#_number">3.17. Number</a></li>
-<li><a href="#_operationalpolicy">3.18. OperationalPolicy</a></li>
-<li><a href="#_policymodel">3.19. PolicyModel</a></li>
-<li><a href="#_service">3.20. Service</a></li>
+<li><a href="#_jsonelement">3.8. JsonElement</a></li>
+<li><a href="#_jsonnull">3.9. JsonNull</a></li>
+<li><a href="#_jsonobject">3.10. JsonObject</a></li>
+<li><a href="#_jsonprimitive">3.11. JsonPrimitive</a></li>
+<li><a href="#_loop">3.12. Loop</a></li>
+<li><a href="#_loopelementmodel">3.13. LoopElementModel</a></li>
+<li><a href="#_looplog">3.14. LoopLog</a></li>
+<li><a href="#_looptemplate">3.15. LoopTemplate</a></li>
+<li><a href="#_looptemplateloopelementmodel">3.16. LoopTemplateLoopElementModel</a></li>
+<li><a href="#_microservicepolicy">3.17. MicroServicePolicy</a></li>
+<li><a href="#_number">3.18. Number</a></li>
+<li><a href="#_operationalpolicy">3.19. OperationalPolicy</a></li>
+<li><a href="#_policymodel">3.20. PolicyModel</a></li>
+<li><a href="#_service">3.21. Service</a></li>
</ul>
</li>
</ul>
@@ -729,13 +742,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<div class="sect2">
<h3 id="_version_information"><a class="anchor" href="#_version_information"></a><a class="link" href="#_version_information">1.1. Version information</a></h3>
<div class="paragraph">
-<p><em>Version</em> : 6.0.0-SNAPSHOT</p>
+<p><em>Version</em> : 6.1.2-SNAPSHOT</p>
</div>
</div>
<div class="sect2">
<h3 id="_uri_scheme"><a class="anchor" href="#_uri_scheme"></a><a class="link" href="#_uri_scheme">1.2. URI scheme</a></h3>
<div class="paragraph">
-<p><em>Host</em> : localhost:40283<br>
+<p><em>Host</em> : localhost:37747<br>
<em>BasePath</em> : /restservices/clds/<br>
<em>Schemes</em> : HTTP</p>
</div>
@@ -746,7 +759,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<h2 id="_paths"><a class="anchor" href="#_paths"></a><a class="link" href="#_paths">2. Paths</a></h2>
<div class="sectionbody">
<div class="sect2">
-<h3 id="_route184"><a class="anchor" href="#_route184"></a><a class="link" href="#_route184">2.1. GET /v1/healthcheck</a></h3>
+<h3 id="_verb189"><a class="anchor" href="#_verb189"></a><a class="link" href="#_verb189">2.1. GET /v1/healthcheck</a></h3>
<div class="sect3">
<h4 id="_responses"><a class="anchor" href="#_responses"></a><a class="link" href="#_responses">2.1.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -783,7 +796,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route185"><a class="anchor" href="#_route185"></a><a class="link" href="#_route185">2.2. GET /v1/user/getUser</a></h3>
+<h3 id="_verb190"><a class="anchor" href="#_verb190"></a><a class="link" href="#_verb190">2.2. GET /v1/user/getUser</a></h3>
<div class="sect3">
<h4 id="_responses_2"><a class="anchor" href="#_responses_2"></a><a class="link" href="#_responses_2">2.2.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -817,7 +830,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route183"><a class="anchor" href="#_route183"></a><a class="link" href="#_route183">2.3. GET /v2/clampInformation</a></h3>
+<h3 id="_verb188"><a class="anchor" href="#_verb188"></a><a class="link" href="#_verb188">2.3. GET /v2/clampInformation</a></h3>
<div class="sect3">
<h4 id="_responses_3"><a class="anchor" href="#_responses_3"></a><a class="link" href="#_responses_3">2.3.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -854,7 +867,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route167"><a class="anchor" href="#_route167"></a><a class="link" href="#_route167">2.4. GET /v2/dictionary</a></h3>
+<h3 id="_verb173"><a class="anchor" href="#_verb173"></a><a class="link" href="#_verb173">2.4. GET /v2/dictionary</a></h3>
<div class="sect3">
<h4 id="_responses_4"><a class="anchor" href="#_responses_4"></a><a class="link" href="#_responses_4">2.4.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -891,7 +904,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route170"><a class="anchor" href="#_route170"></a><a class="link" href="#_route170">2.5. PUT /v2/dictionary</a></h3>
+<h3 id="_verb176"><a class="anchor" href="#_verb176"></a><a class="link" href="#_verb176">2.5. PUT /v2/dictionary</a></h3>
<div class="sect3">
<h4 id="_parameters"><a class="anchor" href="#_parameters"></a><a class="link" href="#_parameters">2.5.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -963,7 +976,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route168"><a class="anchor" href="#_route168"></a><a class="link" href="#_route168">2.6. GET /v2/dictionary/secondary/names</a></h3>
+<h3 id="_verb174"><a class="anchor" href="#_verb174"></a><a class="link" href="#_verb174">2.6. GET /v2/dictionary/secondary/names</a></h3>
<div class="sect3">
<h4 id="_responses_6"><a class="anchor" href="#_responses_6"></a><a class="link" href="#_responses_6">2.6.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1000,7 +1013,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route169"><a class="anchor" href="#_route169"></a><a class="link" href="#_route169">2.7. GET /v2/dictionary/{dictionaryName}</a></h3>
+<h3 id="_verb175"><a class="anchor" href="#_verb175"></a><a class="link" href="#_verb175">2.7. GET /v2/dictionary/{dictionaryName}</a></h3>
<div class="sect3">
<h4 id="_parameters_2"><a class="anchor" href="#_parameters_2"></a><a class="link" href="#_parameters_2">2.7.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1062,7 +1075,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route171"><a class="anchor" href="#_route171"></a><a class="link" href="#_route171">2.8. PUT /v2/dictionary/{name}</a></h3>
+<h3 id="_verb177"><a class="anchor" href="#_verb177"></a><a class="link" href="#_verb177">2.8. PUT /v2/dictionary/{name}</a></h3>
<div class="sect3">
<h4 id="_parameters_3"><a class="anchor" href="#_parameters_3"></a><a class="link" href="#_parameters_3">2.8.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1140,7 +1153,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route172"><a class="anchor" href="#_route172"></a><a class="link" href="#_route172">2.9. DELETE /v2/dictionary/{name}</a></h3>
+<h3 id="_verb178"><a class="anchor" href="#_verb178"></a><a class="link" href="#_verb178">2.9. DELETE /v2/dictionary/{name}</a></h3>
<div class="sect3">
<h4 id="_parameters_4"><a class="anchor" href="#_parameters_4"></a><a class="link" href="#_parameters_4">2.9.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1199,7 +1212,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route173"><a class="anchor" href="#_route173"></a><a class="link" href="#_route173">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a></h3>
+<h3 id="_verb179"><a class="anchor" href="#_verb179"></a><a class="link" href="#_verb179">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a></h3>
<div class="sect3">
<h4 id="_parameters_5"><a class="anchor" href="#_parameters_5"></a><a class="link" href="#_parameters_5">2.10.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1264,7 +1277,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route164"><a class="anchor" href="#_route164"></a><a class="link" href="#_route164">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3>
+<h3 id="_verb167"><a class="anchor" href="#_verb167"></a><a class="link" href="#_verb167">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3>
<div class="sect3">
<h4 id="_parameters_6"><a class="anchor" href="#_parameters_6"></a><a class="link" href="#_parameters_6">2.11.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1338,7 +1351,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route166"><a class="anchor" href="#_route166"></a><a class="link" href="#_route166">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a></h3>
+<h3 id="_verb169"><a class="anchor" href="#_verb169"></a><a class="link" href="#_verb169">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a></h3>
<div class="sect3">
<h4 id="_parameters_7"><a class="anchor" href="#_parameters_7"></a><a class="link" href="#_parameters_7">2.12.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1357,7 +1370,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<tbody>
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>loopName}?templateName={templateName</strong><br>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>loopName</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>templateName</strong><br>
<em>required</em></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
</tr>
@@ -1410,7 +1429,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route162"><a class="anchor" href="#_route162"></a><a class="link" href="#_route162">2.13. PUT /v2/loop/delete/{loopName}</a></h3>
+<h3 id="_verb165"><a class="anchor" href="#_verb165"></a><a class="link" href="#_verb165">2.13. PUT /v2/loop/delete/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_8"><a class="anchor" href="#_parameters_8"></a><a class="link" href="#_parameters_8">2.13.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1459,7 +1478,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route155"><a class="anchor" href="#_route155"></a><a class="link" href="#_route155">2.14. PUT /v2/loop/deploy/{loopName}</a></h3>
+<h3 id="_verb158"><a class="anchor" href="#_verb158"></a><a class="link" href="#_verb158">2.14. PUT /v2/loop/deploy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_9"><a class="anchor" href="#_parameters_9"></a><a class="link" href="#_parameters_9">2.14.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1521,7 +1540,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route150"><a class="anchor" href="#_route150"></a><a class="link" href="#_route150">2.15. GET /v2/loop/getAllNames</a></h3>
+<h3 id="_verb153"><a class="anchor" href="#_verb153"></a><a class="link" href="#_verb153">2.15. GET /v2/loop/getAllNames</a></h3>
<div class="sect3">
<h4 id="_responses_15"><a class="anchor" href="#_responses_15"></a><a class="link" href="#_responses_15">2.15.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1558,7 +1577,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route163"><a class="anchor" href="#_route163"></a><a class="link" href="#_route163">2.16. GET /v2/loop/getstatus/{loopName}</a></h3>
+<h3 id="_verb166"><a class="anchor" href="#_verb166"></a><a class="link" href="#_verb166">2.16. GET /v2/loop/getstatus/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_10"><a class="anchor" href="#_parameters_10"></a><a class="link" href="#_parameters_10">2.16.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1620,7 +1639,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route156"><a class="anchor" href="#_route156"></a><a class="link" href="#_route156">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a></h3>
+<h3 id="_verb159"><a class="anchor" href="#_verb159"></a><a class="link" href="#_verb159">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a></h3>
<div class="sect3">
<h4 id="_parameters_11"><a class="anchor" href="#_parameters_11"></a><a class="link" href="#_parameters_11">2.17.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1688,7 +1707,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route157"><a class="anchor" href="#_route157"></a><a class="link" href="#_route157">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a></h3>
+<h3 id="_verb160"><a class="anchor" href="#_verb160"></a><a class="link" href="#_verb160">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a></h3>
<div class="sect3">
<h4 id="_parameters_12"><a class="anchor" href="#_parameters_12"></a><a class="link" href="#_parameters_12">2.18.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1756,7 +1775,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route165"><a class="anchor" href="#_route165"></a><a class="link" href="#_route165">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a></h3>
+<h3 id="_verb168"><a class="anchor" href="#_verb168"></a><a class="link" href="#_verb168">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a></h3>
<div class="sect3">
<h4 id="_parameters_13"><a class="anchor" href="#_parameters_13"></a><a class="link" href="#_parameters_13">2.19.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1836,7 +1855,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route160"><a class="anchor" href="#_route160"></a><a class="link" href="#_route160">2.20. PUT /v2/loop/restart/{loopName}</a></h3>
+<h3 id="_verb163"><a class="anchor" href="#_verb163"></a><a class="link" href="#_verb163">2.20. PUT /v2/loop/restart/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_14"><a class="anchor" href="#_parameters_14"></a><a class="link" href="#_parameters_14">2.20.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1898,7 +1917,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route159"><a class="anchor" href="#_route159"></a><a class="link" href="#_route159">2.21. PUT /v2/loop/stop/{loopName}</a></h3>
+<h3 id="_verb162"><a class="anchor" href="#_verb162"></a><a class="link" href="#_verb162">2.21. PUT /v2/loop/stop/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_15"><a class="anchor" href="#_parameters_15"></a><a class="link" href="#_parameters_15">2.21.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1960,7 +1979,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route161"><a class="anchor" href="#_route161"></a><a class="link" href="#_route161">2.22. PUT /v2/loop/submit/{loopName}</a></h3>
+<h3 id="_verb164"><a class="anchor" href="#_verb164"></a><a class="link" href="#_verb164">2.22. PUT /v2/loop/submit/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_16"><a class="anchor" href="#_parameters_16"></a><a class="link" href="#_parameters_16">2.22.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2022,7 +2041,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route158"><a class="anchor" href="#_route158"></a><a class="link" href="#_route158">2.23. PUT /v2/loop/undeploy/{loopName}</a></h3>
+<h3 id="_verb161"><a class="anchor" href="#_verb161"></a><a class="link" href="#_verb161">2.23. PUT /v2/loop/undeploy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_17"><a class="anchor" href="#_parameters_17"></a><a class="link" href="#_parameters_17">2.23.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2084,7 +2103,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route152"><a class="anchor" href="#_route152"></a><a class="link" href="#_route152">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3>
+<h3 id="_verb155"><a class="anchor" href="#_verb155"></a><a class="link" href="#_verb155">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_18"><a class="anchor" href="#_parameters_18"></a><a class="link" href="#_parameters_18">2.24.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2162,7 +2181,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route154"><a class="anchor" href="#_route154"></a><a class="link" href="#_route154">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3>
+<h3 id="_verb157"><a class="anchor" href="#_verb157"></a><a class="link" href="#_verb157">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_19"><a class="anchor" href="#_parameters_19"></a><a class="link" href="#_parameters_19">2.25.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2240,7 +2259,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route153"><a class="anchor" href="#_route153"></a><a class="link" href="#_route153">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3>
+<h3 id="_verb156"><a class="anchor" href="#_verb156"></a><a class="link" href="#_verb156">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_20"><a class="anchor" href="#_parameters_20"></a><a class="link" href="#_parameters_20">2.26.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2318,7 +2337,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route151"><a class="anchor" href="#_route151"></a><a class="link" href="#_route151">2.27. GET /v2/loop/{loopName}</a></h3>
+<h3 id="_verb154"><a class="anchor" href="#_verb154"></a><a class="link" href="#_verb154">2.27. GET /v2/loop/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_21"><a class="anchor" href="#_parameters_21"></a><a class="link" href="#_parameters_21">2.27.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2380,7 +2399,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route182"><a class="anchor" href="#_route182"></a><a class="link" href="#_route182">2.28. GET /v2/policies/list</a></h3>
+<h3 id="_verb183"><a class="anchor" href="#_verb183"></a><a class="link" href="#_verb183">2.28. GET /v2/policies</a></h3>
<div class="sect3">
<h4 id="_responses_28"><a class="anchor" href="#_responses_28"></a><a class="link" href="#_responses_28">2.28.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2400,7 +2419,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">Output type</p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
</tr>
</tbody>
</table>
@@ -2417,7 +2436,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route177"><a class="anchor" href="#_route177"></a><a class="link" href="#_route177">2.29. POST /v2/policyToscaModels</a></h3>
+<h3 id="_verb186"><a class="anchor" href="#_verb186"></a><a class="link" href="#_verb186">2.29. PUT /v2/policies/pdpDeployment</a></h3>
<div class="sect3">
<h4 id="_parameters_22"><a class="anchor" href="#_parameters_22"></a><a class="link" href="#_parameters_22">2.29.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2438,7 +2457,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>body</strong><br>
<em>required</em></p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonelement">JsonElement</a></p></td>
</tr>
</tbody>
</table>
@@ -2447,22 +2466,19 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<h4 id="_responses_29"><a class="anchor" href="#_responses_29"></a><a class="link" href="#_responses_29">2.29.2. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
-<col style="width: 10%;">
-<col style="width: 70%;">
-<col style="width: 20%;">
+<col style="width: 33.3333%;">
+<col style="width: 66.6667%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-middle">HTTP Code</th>
-<th class="tableblock halign-left valign-middle">Description</th>
<th class="tableblock halign-left valign-middle">Schema</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock">Output type</p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_policymodel">PolicyModel</a></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">No Content</p></td>
</tr>
</tbody>
</table>
@@ -2472,26 +2488,124 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<div class="ulist">
<ul>
<li>
-<p><code>plain/text</code></p>
+<p><code>application/json</code></p>
</li>
</ul>
</div>
</div>
+</div>
+<div class="sect2">
+<h3 id="_verb187"><a class="anchor" href="#_verb187"></a><a class="link" href="#_verb187">2.30. POST /v2/policies/policytype</a></h3>
<div class="sect3">
-<h4 id="_produces_28"><a class="anchor" href="#_produces_28"></a><a class="link" href="#_produces_28">2.29.4. Produces</a></h4>
+<h4 id="_parameters_23"><a class="anchor" href="#_parameters_23"></a><a class="link" href="#_parameters_23">2.30.1. Parameters</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>body</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_responses_30"><a class="anchor" href="#_responses_30"></a><a class="link" href="#_responses_30">2.30.2. Responses</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 66.6667%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">No Content</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_consumes_8"><a class="anchor" href="#_consumes_8"></a><a class="link" href="#_consumes_8">2.30.3. Consumes</a></h4>
<div class="ulist">
<ul>
<li>
-<p><code>application/json</code></p>
+<p><code>plain/text</code></p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
-<h3 id="_route174"><a class="anchor" href="#_route174"></a><a class="link" href="#_route174">2.30. GET /v2/policyToscaModels</a></h3>
+<h3 id="_verb184"><a class="anchor" href="#_verb184"></a><a class="link" href="#_verb184">2.31. POST /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a></h3>
+<div class="sect3">
+<h4 id="_parameters_24"><a class="anchor" href="#_parameters_24"></a><a class="link" href="#_parameters_24">2.31.1. Parameters</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyModelType</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyModelVersion</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyName</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyVersion</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>body</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonelement">JsonElement</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
<div class="sect3">
-<h4 id="_responses_30"><a class="anchor" href="#_responses_30"></a><a class="link" href="#_responses_30">2.30.1. Responses</a></h4>
+<h4 id="_responses_31"><a class="anchor" href="#_responses_31"></a><a class="link" href="#_responses_31">2.31.2. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2509,13 +2623,23 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">Output type</p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_policymodel">PolicyModel</a></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
-<h4 id="_produces_29"><a class="anchor" href="#_produces_29"></a><a class="link" href="#_produces_29">2.30.2. Produces</a></h4>
+<h4 id="_consumes_9"><a class="anchor" href="#_consumes_9"></a><a class="link" href="#_consumes_9">2.31.3. Consumes</a></h4>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json</code></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_produces_28"><a class="anchor" href="#_produces_28"></a><a class="link" href="#_produces_28">2.31.4. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2526,9 +2650,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route176"><a class="anchor" href="#_route176"></a><a class="link" href="#_route176">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a></h3>
+<h3 id="_verb185"><a class="anchor" href="#_verb185"></a><a class="link" href="#_verb185">2.32. DELETE /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a></h3>
<div class="sect3">
-<h4 id="_parameters_23"><a class="anchor" href="#_parameters_23"></a><a class="link" href="#_parameters_23">2.31.1. Parameters</a></h4>
+<h4 id="_parameters_25"><a class="anchor" href="#_parameters_25"></a><a class="link" href="#_parameters_25">2.32.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 22.2222%;">
@@ -2555,11 +2679,47 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<em>required</em></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyName</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyVersion</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
</tbody>
</table>
</div>
<div class="sect3">
-<h4 id="_responses_31"><a class="anchor" href="#_responses_31"></a><a class="link" href="#_responses_31">2.31.2. Responses</a></h4>
+<h4 id="_responses_32"><a class="anchor" href="#_responses_32"></a><a class="link" href="#_responses_32">2.32.2. Responses</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 66.6667%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">No Content</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_verb180"><a class="anchor" href="#_verb180"></a><a class="link" href="#_verb180">2.33. GET /v2/policyToscaModels</a></h3>
+<div class="sect3">
+<h4 id="_responses_33"><a class="anchor" href="#_responses_33"></a><a class="link" href="#_responses_33">2.33.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2577,13 +2737,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">Output type</p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_policymodel">PolicyModel</a></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
-<h4 id="_produces_30"><a class="anchor" href="#_produces_30"></a><a class="link" href="#_produces_30">2.31.3. Produces</a></h4>
+<h4 id="_produces_29"><a class="anchor" href="#_produces_29"></a><a class="link" href="#_produces_29">2.33.2. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2594,9 +2754,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route175"><a class="anchor" href="#_route175"></a><a class="link" href="#_route175">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
+<h3 id="_verb182"><a class="anchor" href="#_verb182"></a><a class="link" href="#_verb182">2.34. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a></h3>
<div class="sect3">
-<h4 id="_parameters_24"><a class="anchor" href="#_parameters_24"></a><a class="link" href="#_parameters_24">2.32.1. Parameters</a></h4>
+<h4 id="_parameters_26"><a class="anchor" href="#_parameters_26"></a><a class="link" href="#_parameters_26">2.34.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 22.2222%;">
@@ -2627,7 +2787,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_responses_32"><a class="anchor" href="#_responses_32"></a><a class="link" href="#_responses_32">2.32.2. Responses</a></h4>
+<h4 id="_responses_34"><a class="anchor" href="#_responses_34"></a><a class="link" href="#_responses_34">2.34.2. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2645,13 +2805,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">Output type</p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_policymodel">PolicyModel</a></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
-<h4 id="_produces_31"><a class="anchor" href="#_produces_31"></a><a class="link" href="#_produces_31">2.32.3. Produces</a></h4>
+<h4 id="_produces_30"><a class="anchor" href="#_produces_30"></a><a class="link" href="#_produces_30">2.34.3. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2662,9 +2822,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route178"><a class="anchor" href="#_route178"></a><a class="link" href="#_route178">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
+<h3 id="_verb181"><a class="anchor" href="#_verb181"></a><a class="link" href="#_verb181">2.35. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
<div class="sect3">
-<h4 id="_parameters_25"><a class="anchor" href="#_parameters_25"></a><a class="link" href="#_parameters_25">2.33.1. Parameters</a></h4>
+<h4 id="_parameters_27"><a class="anchor" href="#_parameters_27"></a><a class="link" href="#_parameters_27">2.35.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 22.2222%;">
@@ -2691,17 +2851,11 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<em>required</em></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
</tr>
-<tr>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>body</strong><br>
-<em>required</em></p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
-</tr>
</tbody>
</table>
</div>
<div class="sect3">
-<h4 id="_responses_33"><a class="anchor" href="#_responses_33"></a><a class="link" href="#_responses_33">2.33.2. Responses</a></h4>
+<h4 id="_responses_35"><a class="anchor" href="#_responses_35"></a><a class="link" href="#_responses_35">2.35.2. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2719,23 +2873,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">Output type</p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_policymodel">PolicyModel</a></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
-<h4 id="_consumes_8"><a class="anchor" href="#_consumes_8"></a><a class="link" href="#_consumes_8">2.33.3. Consumes</a></h4>
-<div class="ulist">
-<ul>
-<li>
-<p><code>plain/text</code></p>
-</li>
-</ul>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_produces_32"><a class="anchor" href="#_produces_32"></a><a class="link" href="#_produces_32">2.33.4. Produces</a></h4>
+<h4 id="_produces_31"><a class="anchor" href="#_produces_31"></a><a class="link" href="#_produces_31">2.35.3. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2746,9 +2890,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route179"><a class="anchor" href="#_route179"></a><a class="link" href="#_route179">2.34. GET /v2/templates</a></h3>
+<h3 id="_verb170"><a class="anchor" href="#_verb170"></a><a class="link" href="#_verb170">2.36. GET /v2/templates</a></h3>
<div class="sect3">
-<h4 id="_responses_34"><a class="anchor" href="#_responses_34"></a><a class="link" href="#_responses_34">2.34.1. Responses</a></h4>
+<h4 id="_responses_36"><a class="anchor" href="#_responses_36"></a><a class="link" href="#_responses_36">2.36.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2772,7 +2916,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_produces_33"><a class="anchor" href="#_produces_33"></a><a class="link" href="#_produces_33">2.34.2. Produces</a></h4>
+<h4 id="_produces_32"><a class="anchor" href="#_produces_32"></a><a class="link" href="#_produces_32">2.36.2. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2783,9 +2927,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route181"><a class="anchor" href="#_route181"></a><a class="link" href="#_route181">2.35. GET /v2/templates/names</a></h3>
+<h3 id="_verb172"><a class="anchor" href="#_verb172"></a><a class="link" href="#_verb172">2.37. GET /v2/templates/names</a></h3>
<div class="sect3">
-<h4 id="_responses_35"><a class="anchor" href="#_responses_35"></a><a class="link" href="#_responses_35">2.35.1. Responses</a></h4>
+<h4 id="_responses_37"><a class="anchor" href="#_responses_37"></a><a class="link" href="#_responses_37">2.37.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2809,7 +2953,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_produces_34"><a class="anchor" href="#_produces_34"></a><a class="link" href="#_produces_34">2.35.2. Produces</a></h4>
+<h4 id="_produces_33"><a class="anchor" href="#_produces_33"></a><a class="link" href="#_produces_33">2.37.2. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2820,9 +2964,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route180"><a class="anchor" href="#_route180"></a><a class="link" href="#_route180">2.36. GET /v2/templates/{templateName}</a></h3>
+<h3 id="_verb171"><a class="anchor" href="#_verb171"></a><a class="link" href="#_verb171">2.38. GET /v2/templates/{templateName}</a></h3>
<div class="sect3">
-<h4 id="_parameters_26"><a class="anchor" href="#_parameters_26"></a><a class="link" href="#_parameters_26">2.36.1. Parameters</a></h4>
+<h4 id="_parameters_28"><a class="anchor" href="#_parameters_28"></a><a class="link" href="#_parameters_28">2.38.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 22.2222%;">
@@ -2847,7 +2991,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_responses_36"><a class="anchor" href="#_responses_36"></a><a class="link" href="#_responses_36">2.36.2. Responses</a></h4>
+<h4 id="_responses_38"><a class="anchor" href="#_responses_38"></a><a class="link" href="#_responses_38">2.38.2. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2871,7 +3015,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_produces_35"><a class="anchor" href="#_produces_35"></a><a class="link" href="#_produces_35">2.36.3. Produces</a></h4>
+<h4 id="_produces_34"><a class="anchor" href="#_produces_34"></a><a class="link" href="#_produces_34">2.38.3. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -3251,7 +3395,124 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_jsonnull"><a class="anchor" href="#_jsonnull"></a><a class="link" href="#_jsonnull">3.8. JsonNull</a></h3>
+<h3 id="_jsonelement"><a class="anchor" href="#_jsonelement"></a><a class="link" href="#_jsonelement">3.8. JsonElement</a></h3>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 42.8571%;">
+<col style="width: 57.1429%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asBigDecimal</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">number</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asBigInteger</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asBoolean</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asByte</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string (byte)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asCharacter</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asDouble</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">number (double)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asFloat</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">number (float)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asInt</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int32)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asJsonArray</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonarray">JsonArray</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asJsonNull</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonnull">JsonNull</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asJsonObject</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asJsonPrimitive</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonprimitive">JsonPrimitive</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asLong</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asNumber</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_number">Number</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asShort</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int32)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asString</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>jsonArray</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>jsonNull</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>jsonObject</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>jsonPrimitive</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_jsonnull"><a class="anchor" href="#_jsonnull"></a><a class="link" href="#_jsonnull">3.9. JsonNull</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3368,7 +3629,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_jsonobject"><a class="anchor" href="#_jsonobject"></a><a class="link" href="#_jsonobject">3.9. JsonObject</a></h3>
+<h3 id="_jsonobject"><a class="anchor" href="#_jsonobject"></a><a class="link" href="#_jsonobject">3.10. JsonObject</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3485,7 +3746,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_jsonprimitive"><a class="anchor" href="#_jsonprimitive"></a><a class="link" href="#_jsonprimitive">3.10. JsonPrimitive</a></h3>
+<h3 id="_jsonprimitive"><a class="anchor" href="#_jsonprimitive"></a><a class="link" href="#_jsonprimitive">3.11. JsonPrimitive</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3617,7 +3878,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_loop"><a class="anchor" href="#_loop"></a><a class="link" href="#_loop">3.11. Loop</a></h3>
+<h3 id="_loop"><a class="anchor" href="#_loop"></a><a class="link" href="#_loop">3.12. Loop</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3709,7 +3970,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_loopelementmodel"><a class="anchor" href="#_loopelementmodel"></a><a class="link" href="#_loopelementmodel">3.12. LoopElementModel</a></h3>
+<h3 id="_loopelementmodel"><a class="anchor" href="#_loopelementmodel"></a><a class="link" href="#_loopelementmodel">3.13. LoopElementModel</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3781,7 +4042,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_looplog"><a class="anchor" href="#_looplog"></a><a class="link" href="#_looplog">3.13. LoopLog</a></h3>
+<h3 id="_looplog"><a class="anchor" href="#_looplog"></a><a class="link" href="#_looplog">3.14. LoopLog</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3828,7 +4089,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_looptemplate"><a class="anchor" href="#_looptemplate"></a><a class="link" href="#_looptemplate">3.14. LoopTemplate</a></h3>
+<h3 id="_looptemplate"><a class="anchor" href="#_looptemplate"></a><a class="link" href="#_looptemplate">3.15. LoopTemplate</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3905,7 +4166,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_looptemplateloopelementmodel"><a class="anchor" href="#_looptemplateloopelementmodel"></a><a class="link" href="#_looptemplateloopelementmodel">3.15. LoopTemplateLoopElementModel</a></h3>
+<h3 id="_looptemplateloopelementmodel"><a class="anchor" href="#_looptemplateloopelementmodel"></a><a class="link" href="#_looptemplateloopelementmodel">3.16. LoopTemplateLoopElementModel</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3937,7 +4198,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_microservicepolicy"><a class="anchor" href="#_microservicepolicy"></a><a class="link" href="#_microservicepolicy">3.16. MicroServicePolicy</a></h3>
+<h3 id="_microservicepolicy"><a class="anchor" href="#_microservicepolicy"></a><a class="link" href="#_microservicepolicy">3.17. MicroServicePolicy</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -4044,13 +4305,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_number"><a class="anchor" href="#_number"></a><a class="link" href="#_number">3.17. Number</a></h3>
+<h3 id="_number"><a class="anchor" href="#_number"></a><a class="link" href="#_number">3.18. Number</a></h3>
<div class="paragraph">
<p><em>Type</em> : object</p>
</div>
</div>
<div class="sect2">
-<h3 id="_operationalpolicy"><a class="anchor" href="#_operationalpolicy"></a><a class="link" href="#_operationalpolicy">3.18. OperationalPolicy</a></h3>
+<h3 id="_operationalpolicy"><a class="anchor" href="#_operationalpolicy"></a><a class="link" href="#_operationalpolicy">3.19. OperationalPolicy</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -4127,7 +4388,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_policymodel"><a class="anchor" href="#_policymodel"></a><a class="link" href="#_policymodel">3.19. PolicyModel</a></h3>
+<h3 id="_policymodel"><a class="anchor" href="#_policymodel"></a><a class="link" href="#_policymodel">3.20. PolicyModel</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -4194,7 +4455,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_service"><a class="anchor" href="#_service"></a><a class="link" href="#_service">3.20. Service</a></h3>
+<h3 id="_service"><a class="anchor" href="#_service"></a><a class="link" href="#_service">3.21. Service</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -4240,8 +4501,8 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
<div id="footer">
<div id="footer-text">
-Last updated 2020-12-10 09:38:32 CET
+Last updated 2021-05-10 12:05:55 IST
</div>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson b/runtime/src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson
index 04caffa99..04caffa99 100644
--- a/src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson
+++ b/runtime/src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson
diff --git a/src/main/resources/application-noaaf.properties b/runtime/src/main/resources/application-noaaf.properties
index f398f8d98..1145b393d 100644
--- a/src/main/resources/application-noaaf.properties
+++ b/runtime/src/main/resources/application-noaaf.properties
@@ -1,8 +1,8 @@
###
# ============LICENSE_START=======================================================
-# ONAP CLAMP
+# ONAP POLICY-CLAMP
# ================================================================================
-# Copyright (C) 2017-2019,2021 AT&T Intellectual Property. All rights
+# Copyright (C) 2017-2019, 2021 AT&T Intellectual Property. All rights
# reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -90,10 +90,10 @@ camel.defaultthreadpool.maxpoolsize=20
camel.defaultthreadpool.maxqueuesize=1000
camel.defaultthreadpool.keepaliveTime=60
camel.defaultthreadpool.rejectpolicy=CallerRuns
-#camel.springboot.xmlRoutes = false
-camel.springboot.xmlRoutes=classpath:/clds/camel/routes/*.xml
-camel.springboot.xmlRests=classpath:/clds/camel/rest/*.xml
-#camel.springboot.typeConversion = false
+camel.springboot.xml-routes=classpath:/clds/camel/routes/*.xml
+camel.springboot.xml-rests=classpath:/clds/camel/rest/*.xml
+camel.springboot.backlog-tracing=true
+camel.springboot.tracing=true
#clds datasource connection details
spring.datasource.driverClassName=org.mariadb.jdbc.Driver
@@ -141,12 +141,15 @@ clamp.config.files.cldsUsers=classpath:/clds/clds-users.json
clamp.config.files.globalProperties=classpath:/clds/templates/globalProperties.json
clamp.config.files.sdcController=classpath:/clds/sdc-controllers-config.json
+clamp.config.httpclient.socketTimeout=60000
+clamp.config.httpclient.connectTimeout=10000
+
#
# Configuration Settings for Policy Engine Components
-clamp.config.policy.api.url=http4://localhost:8085
+clamp.config.policy.api.url=http://localhost:8085
clamp.config.policy.api.userName=healthcheck
clamp.config.policy.api.password=zb!XztG34
-clamp.config.policy.pap.url=http4://localhost:8085
+clamp.config.policy.pap.url=http://localhost:8085
clamp.config.policy.pap.userName=healthcheck
clamp.config.policy.pap.password=zb!XztG34
@@ -155,12 +158,12 @@ clamp.config.policy.pap.password=zb!XztG34
clamp.config.sdc.csarFolder = /tmp/sdc-controllers
#DCAE Inventory Url Properties
-clamp.config.dcae.inventory.url=http4://localhost:8085
+clamp.config.dcae.inventory.url=http://localhost:8085
clamp.config.dcae.intentory.retry.interval=10000
clamp.config.dcae.intentory.retry.limit=5
#DCAE Deployment Url Properties
-clamp.config.dcae.deployment.url=http4://localhost:8085
+clamp.config.dcae.deployment.url=http://localhost:8085
clamp.config.dcae.deployment.userName=test
clamp.config.dcae.deployment.password=test
@@ -182,6 +185,6 @@ clamp.config.tosca.converter.default.datatypes=classpath:/clds/tosca-converter/d
clamp.config.tosca.converter.dictionary.support.enabled=true
# Configuration settings for CDS
-clamp.config.cds.url=http4://cds-blueprints-processor-http:8080
+clamp.config.cds.url=http://cds-blueprints-processor-http:8080
clamp.config.cds.userName=ccsdkapps
clamp.config.cds.password=ccsdkapps \ No newline at end of file
diff --git a/src/main/resources/application.properties b/runtime/src/main/resources/application.properties
index 97870d2b6..3cbb7e8af 100644
--- a/src/main/resources/application.properties
+++ b/runtime/src/main/resources/application.properties
@@ -1,6 +1,6 @@
###
# ============LICENSE_START=======================================================
-# ONAP CLAMP
+# ONAP POLICY-CLAMP
# ================================================================================
# Copyright (C) 2017-2019, 2021 AT&T Intellectual Property. All rights
# reserved.
@@ -95,10 +95,10 @@ camel.defaultthreadpool.maxpoolsize=20
camel.defaultthreadpool.maxqueuesize=1000
camel.defaultthreadpool.keepaliveTime=60
camel.defaultthreadpool.rejectpolicy=CallerRuns
-#camel.springboot.xmlRoutes = false
-camel.springboot.xmlRoutes=classpath:/clds/camel/routes/*.xml
-camel.springboot.xmlRests=classpath:/clds/camel/rest/*.xml
-#camel.springboot.typeConversion = false
+camel.springboot.xml-routes=classpath:/clds/camel/routes/*.xml
+camel.springboot.xml-rests=classpath:/clds/camel/rest/*.xml
+camel.springboot.backlog-tracing=true
+camel.springboot.tracing=true
#clds datasource connection details
spring.datasource.driverClassName=org.mariadb.jdbc.Driver
@@ -144,12 +144,14 @@ clamp.config.files.cldsUsers=classpath:/clds/clds-users.json
clamp.config.files.globalProperties=classpath:/clds/templates/globalProperties.json
clamp.config.files.sdcController=classpath:/clds/sdc-controllers-config.json
+clamp.config.httpclient.socketTimeout=60000
+clamp.config.httpclient.connectTimeout=10000
#
# Configuration Settings for Policy Engine Components
-clamp.config.policy.api.url=http4://policy.api.simpledemo.onap.org:6969
+clamp.config.policy.api.url=http://policy.api.simpledemo.onap.org:6969
clamp.config.policy.api.userName=healthcheck
clamp.config.policy.api.password=zb!XztG34
-clamp.config.policy.pap.url=http4://policy.api.simpledemo.onap.org:6969
+clamp.config.policy.pap.url=http://policy.api.simpledemo.onap.org:6969
clamp.config.policy.pap.userName=healthcheck
clamp.config.policy.pap.password=zb!XztG34
@@ -158,12 +160,12 @@ clamp.config.policy.pap.password=zb!XztG34
clamp.config.sdc.csarFolder=/tmp/sdc-controllers
#DCAE Inventory Url Properties
-clamp.config.dcae.inventory.url=http4://dcae.api.simpledemo.onap.org:8080
+clamp.config.dcae.inventory.url=http://dcae.api.simpledemo.onap.org:8080
clamp.config.dcae.intentory.retry.interval=10000
clamp.config.dcae.intentory.retry.limit=5
#DCAE Deployment Url Properties
-clamp.config.dcae.deployment.url=http4://dcae.api.simpledemo.onap.org:8188
+clamp.config.dcae.deployment.url=http://dcae.api.simpledemo.onap.org:8188
clamp.config.dcae.deployment.userName=test
clamp.config.dcae.deployment.password=test
@@ -196,6 +198,6 @@ clamp.config.tosca.converter.default.datatypes=classpath:/clds/tosca-converter/d
clamp.config.tosca.converter.dictionary.support.enabled=true
# Configuration settings for CDS
-clamp.config.cds.url=http4://cds-blueprints-processor-http:8080
+clamp.config.cds.url=http://cds-blueprints-processor-http:8080
clamp.config.cds.userName=ccsdkapps
clamp.config.cds.password=ccsdkapps \ No newline at end of file
diff --git a/src/main/resources/asciidoc/swagger.adoc b/runtime/src/main/resources/asciidoc/swagger.adoc
index 6896747fd..6896747fd 100644
--- a/src/main/resources/asciidoc/swagger.adoc
+++ b/runtime/src/main/resources/asciidoc/swagger.adoc
diff --git a/runtime/src/main/resources/boot-message.txt b/runtime/src/main/resources/boot-message.txt
new file mode 100644
index 000000000..5a6cf1824
--- /dev/null
+++ b/runtime/src/main/resources/boot-message.txt
@@ -0,0 +1,16 @@
+
+ ___ _ _ _ ____ ___ _ _ _
+ / _ \| \ | | / \ | _ \ |_ _|___| |_ __ _ _ __ | |__ _ _| |
+ | | | | \| | / _ \ | |_) | | |/ __| __/ _` | '_ \| '_ \| | | | |
+ | |_| | |\ |/ ___ \| __/ | |\__ \ || (_| | | | | |_) | |_| | |
+ \___/|_| \_/_/ \_\_| |___|___/\__\__,_|_| |_|_.__/ \__,_|_|
+ ____ ___ _ ___ ______ __ ____ _ _ __ __ ____
+ | _ \ / _ \| | |_ _/ ___\ \ / / / ___| | / \ | \/ | _ \
+ | |_) | | | | | | | | \ V /____| | | | / _ \ | |\/| | |_) |
+ | __/| |_| | |___ | | |___ | |_____| |___| |___ / ___ \| | | | __/
+ |_| \___/|_____|___\____| |_| \____|_____/_/ \_\_| |_|_|
+
+
+
+
+ :: Starting :: \ No newline at end of file
diff --git a/src/main/resources/clds-version.properties b/runtime/src/main/resources/clds-version.properties
index a0dbcdead..a0dbcdead 100644
--- a/src/main/resources/clds-version.properties
+++ b/runtime/src/main/resources/clds-version.properties
diff --git a/src/main/resources/clds/aaf/org.onap.clamp.keyfile b/runtime/src/main/resources/clds/aaf/org.onap.clamp.keyfile
index c2521fc81..c2521fc81 100644
--- a/src/main/resources/clds/aaf/org.onap.clamp.keyfile
+++ b/runtime/src/main/resources/clds/aaf/org.onap.clamp.keyfile
diff --git a/src/main/resources/clds/aaf/ssl/ca-certs.pem b/runtime/src/main/resources/clds/aaf/ssl/ca-certs.pem
index 70bb844b7..70bb844b7 100644
--- a/src/main/resources/clds/aaf/ssl/ca-certs.pem
+++ b/runtime/src/main/resources/clds/aaf/ssl/ca-certs.pem
diff --git a/src/main/resources/clds/aaf/ssl/clamp.key b/runtime/src/main/resources/clds/aaf/ssl/clamp.key
index bcbb9f17e..bcbb9f17e 100644
--- a/src/main/resources/clds/aaf/ssl/clamp.key
+++ b/runtime/src/main/resources/clds/aaf/ssl/clamp.key
diff --git a/src/main/resources/clds/aaf/ssl/clamp.pem b/runtime/src/main/resources/clds/aaf/ssl/clamp.pem
index a01b587a5..a01b587a5 100644
--- a/src/main/resources/clds/aaf/ssl/clamp.pem
+++ b/runtime/src/main/resources/clds/aaf/ssl/clamp.pem
diff --git a/src/main/resources/clds/aaf/truststoreONAPall.jks b/runtime/src/main/resources/clds/aaf/truststoreONAPall.jks
index ff844b109..ff844b109 100644
--- a/src/main/resources/clds/aaf/truststoreONAPall.jks
+++ b/runtime/src/main/resources/clds/aaf/truststoreONAPall.jks
Binary files differ
diff --git a/src/main/resources/clds/camel/rest/clamp-api-v2.xml b/runtime/src/main/resources/clds/camel/rest/clamp-api-v2.xml
index 7de2de1c9..4659a90bf 100644
--- a/src/main/resources/clds/camel/rest/clamp-api-v2.xml
+++ b/runtime/src/main/resources/clds/camel/rest/clamp-api-v2.xml
@@ -23,7 +23,7 @@
<log loggingLevel="ERROR"
message="GET All Loop names FAILED: ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -56,7 +56,7 @@
<log loggingLevel="ERROR"
message="GET Loop request failed for loop: ${header.loopName}, ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -77,7 +77,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update the global properties')"/>
<to
uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')"/>
- <setHeader headerName="GlobalPropertiesJson">
+ <setHeader name="GlobalPropertiesJson">
<simple>${body}</simple>
</setHeader>
<to uri="direct:load-loop"/>
@@ -97,7 +97,7 @@
<log loggingLevel="ERROR"
message="UPDATE Global properties FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -117,7 +117,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update operational policies')"/>
<to
uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')"/>
- <setHeader headerName="OperationalPoliciesArray">
+ <setHeader name="OperationalPoliciesArray">
<simple>${body}</simple>
</setHeader>
<to uri="direct:load-loop"/>
@@ -139,7 +139,7 @@
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('UPDATE Operational policies request FAILED, Error reported: ${exception.message}','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -161,7 +161,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update Microservice policies')"/>
<to
uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')"/>
- <setProperty propertyName="MicroServicePolicyObject">
+ <setProperty name="MicroServicePolicyObject">
<simple>${body}</simple>
</setProperty>
@@ -183,7 +183,7 @@
message="UPDATE MicroService policy FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('UPDATE MicroService policy request FAILED, Error reported: ${exception.message}','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -200,9 +200,6 @@
<doTry>
<log loggingLevel="INFO"
message="DCAE DEPLOY request for loop: ${header.loopName}"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">true</simple>
- </setProperty>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'DCAE DEPLOY request')"/>
<to
@@ -210,7 +207,6 @@
<to uri="direct:load-loop"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('DCAE DEPLOY request','INFO',${exchangeProperty[loopObject]})"/>
-
<to uri="direct:deploy-loop"/>
<log loggingLevel="INFO"
@@ -230,7 +226,7 @@
message="DEPLOY request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('DEPLOY request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -273,7 +269,7 @@
message="REFRESH json schema request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('REFRESH Json schema request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -316,7 +312,7 @@
message="REFRESH json schema request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('REFRESH Json schema request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -333,9 +329,6 @@
<doTry>
<log loggingLevel="INFO"
message="DCAE UNDEPLOY request for loop: ${header.loopName}"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">true</simple>
- </setProperty>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'DCAE UNDEPLOY request')"/>
<to
@@ -362,7 +355,7 @@
message="UNDEPLOY request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('UNDEPLOY request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -379,7 +372,7 @@
<doTry>
<log loggingLevel="INFO"
message="STOP request for loop: ${header.loopName}"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">true</simple>
</setProperty>
<to
@@ -408,7 +401,7 @@
message="STOP request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('STOP request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -425,9 +418,6 @@
<doTry>
<log loggingLevel="INFO"
message="RESTART request for loop: ${header.loopName}"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">true</simple>
- </setProperty>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*,'RESTART request')"/>
<to
@@ -437,7 +427,7 @@
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('RESTART request','INFO',${exchangeProperty[loopObject]})"/>
- <to uri="direct:add-all-to-active-pdp-group"/>
+ <to uri="direct:add-policies-from-loop-to-pdp-group"/>
<log loggingLevel="INFO"
message="RESTART request successfully executed for loop: ${header.loopName}"/>
<to
@@ -455,7 +445,7 @@
message="RESTART request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('RESTART request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -472,7 +462,7 @@
<doTry>
<log loggingLevel="INFO"
message="POLICY SUBMIT request for loop: ${header.loopName}"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">true</simple>
</setProperty>
<to
@@ -482,7 +472,7 @@
<to uri="direct:load-loop"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('POLICY SUBMIT request','INFO',${exchangeProperty[loopObject]})"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:remove-all-policy-from-active-pdp-group"/>
@@ -491,12 +481,12 @@
<split>
<simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
</simple>
- <setProperty propertyName="policy">
+ <setProperty name="policy">
<simple>${body}</simple>
</setProperty>
<log loggingLevel="INFO"
message="Processing Micro Service Policy: ${exchangeProperty[policy].getName()}"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:delete-policy-from-loop-object"/>
@@ -507,12 +497,12 @@
<split>
<simple>${exchangeProperty[loopObject].getOperationalPolicies()}
</simple>
- <setProperty propertyName="policy">
+ <setProperty name="policy">
<simple>${body}</simple>
</setProperty>
<log loggingLevel="INFO"
message="Processing Operational Policy: ${exchangeProperty[policy].getName()}"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
@@ -524,7 +514,7 @@
<constant>3000</constant>
</delay>
- <to uri="direct:add-all-to-active-pdp-group"/>
+ <to uri="direct:add-policies-from-loop-to-pdp-group"/>
<log loggingLevel="INFO"
message="SUBMIT request successfully executed for loop: ${header.loopName}"/>
@@ -543,7 +533,7 @@
message="SUBMIT request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('SUBMIT request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -559,7 +549,7 @@
<doTry>
<log loggingLevel="INFO"
message="DELETE request for loop: ${header.loopName}"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">true</simple>
</setProperty>
<to
@@ -576,12 +566,12 @@
<split>
<simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
</simple>
- <setProperty propertyName="policy">
+ <setProperty name="policy">
<simple>${body}</simple>
</setProperty>
<log loggingLevel="INFO"
message="Deleting Micro Service Policy: ${exchangeProperty[policy].getName()}"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:delete-policy-from-loop-object"/>
@@ -591,12 +581,12 @@
<split>
<simple>${exchangeProperty[loopObject].getOperationalPolicies()}
</simple>
- <setProperty propertyName="policy">
+ <setProperty name="policy">
<simple>${body}</simple>
</setProperty>
<log loggingLevel="INFO"
message="Deleting Operational Policy: ${exchangeProperty[policy].getName()}"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:delete-policy-from-loop-object"/>
@@ -618,7 +608,7 @@
message="DELETE request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('DELETE request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -666,7 +656,7 @@
<setBody>
<simple>${exchangeProperty[loopObject]}</simple>
</setBody>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>200</constant>
</setHeader>
</doFinally>
@@ -701,7 +691,7 @@
message="ADD operational policy request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('ADD OperationalPolicy request failed','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -724,17 +714,17 @@
<to
uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')"/>
<to uri="direct:load-loop"/>
- <setProperty propertyName="policyName">
+ <setProperty name="policyName">
<simple>${header.policyName}</simple>
</setProperty>
- <setProperty propertyName="policy">
+ <setProperty name="policy">
<simple>${exchangeProperty[loopObject].getOperationalPolicy(header.policyName)}</simple>
</setProperty>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:remove-one-policy-from-active-pdp-group"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:delete-policy-from-loop-object"/>
@@ -755,7 +745,7 @@
message="REMOVE operational policy request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('REMOVE OperationalPolicy request failed','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -793,7 +783,7 @@
message="CREATE Loop from Template request failed for loop: ${header.loopName}, ${exception.stacktrace}"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('CREATE Loop from template request failed','ERROR',${exchangeProperty[loopObject]})"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -826,7 +816,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="GET ALL templates request failed: ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -860,7 +850,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="GET Template request failed for template: ${header.templateName}, ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -892,7 +882,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="GET All Template names request failed for template: ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -926,7 +916,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="GET Dictionary request failed: ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -959,7 +949,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="GET Dictionary request failed: ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -992,7 +982,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="GET Dictionary request failed for: ${header.dictionaryName}, ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -1011,7 +1001,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Add New or Update Dictionary')"/>
<to
uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','update')"/>
- <setProperty propertyName="DictionaryObject">
+ <setProperty name="DictionaryObject">
<simple>${body}</simple>
</setProperty>
<to
@@ -1027,7 +1017,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="PUT Dictionary request failed for: ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -1049,7 +1039,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Add New or Update Dictionary Element')"/>
<to
uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','update')"/>
- <setProperty propertyName="DictionaryObject">
+ <setProperty name="DictionaryObject">
<simple>${body}</simple>
</setProperty>
<to
@@ -1065,7 +1055,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="PUT Dictionary request failed for: ${header.name}, ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -1097,7 +1087,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="DELETE Dictionary request failed for: ${header.name}, ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -1131,7 +1121,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="DELETE Dictionary element request failed for: ${header.name}, ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -1165,7 +1155,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="GET Policy Models request failed for: ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -1198,7 +1188,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="GET Policy Model request failed for type: ${header.policyModelType}, ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -1231,7 +1221,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="GET Policy Model YAML request failed for type: ${header.policyModelType}, ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -1242,82 +1232,6 @@
</route>
</get>
- <post uri="/v2/policyToscaModels"
- type="java.lang.String"
- outType="org.onap.policy.clamp.loop.template.PolicyModel"
- consumes="plain/text" produces="application/json">
- <route>
- <removeHeaders pattern="*"/>
- <doTry>
- <to
- uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Upload New or Update Tosca Policy Model')"/>
- <to
- uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','update')"/>
- <setProperty propertyName="PolicyModelTosca">
- <simple>${body}</simple>
- </setProperty>
- <to
- uri="bean:org.onap.policy.clamp.loop.template.PolicyModelsService?method=createNewPolicyModelFromTosca(${exchangeProperty[PolicyModelTosca]})"/>
- <to
- uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=endLog()"/>
- <doCatch>
- <exception>java.lang.Exception</exception>
- <handled>
- <constant>true</constant>
- </handled>
- <to
- uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
- <log loggingLevel="ERROR"
- message="POST Policy Model YAML request failed: ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
- <constant>500</constant>
- </setHeader>
- <setBody>
- <simple>POST Policy model YAML FAILED</simple>
- </setBody>
- </doCatch>
- </doTry>
- </route>
- </post>
- <put uri="/v2/policyToscaModels/{policyModelType}/{policyModelVersion}"
- type="java.lang.String"
- outType="org.onap.policy.clamp.loop.template.PolicyModel"
- consumes="plain/text" produces="application/json">
- <route>
- <removeHeaders pattern="*"
- excludePattern="policyModelType|policyModelVersion"/>
- <doTry>
- <to
- uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Upload New or Update Tosca Policy Model')"/>
- <to
- uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','update')"/>
- <setProperty propertyName="PolicyModelTosca">
- <simple>${body}</simple>
- </setProperty>
- <to
- uri="bean:org.onap.policy.clamp.loop.template.PolicyModelsService?method=updatePolicyModelTosca(${header.policyModelType},${policyModelVersion},${exchangeProperty[PolicyModelTosca]})"/>
- <to
- uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=endLog()"/>
- <doCatch>
- <exception>java.lang.Exception</exception>
- <handled>
- <constant>true</constant>
- </handled>
- <to
- uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
- <log loggingLevel="ERROR"
- message="MODIFY Policy Model YAML request failed: ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
- <constant>500</constant>
- </setHeader>
- <setBody>
- <simple>MODIFY Policy model YAML FAILED</simple>
- </setBody>
- </doCatch>
- </doTry>
- </route>
- </put>
-
<!-- Policy Related endpoints, not related to LOOP -->
<get uri="/v2/policies" outType="com.google.gson.JsonObject" produces="application/json">
<route>
@@ -1327,13 +1241,15 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET Policies List ')"/>
<to
uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'policies','','read')"/>
-
+ <setProperty name="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setProperty>
<to uri="direct:get-all-policies"/>
- <setProperty propertyName="policiesListResponse">
+ <setProperty name="policiesListResponse">
<simple>${body}</simple>
</setProperty>
<to uri="direct:get-all-pdp-groups"/>
- <setProperty propertyName="pdpGroupInfoResponse">
+ <setProperty name="pdpGroupInfoResponse">
<simple>${body}</simple>
</setProperty>
<setBody>
@@ -1351,7 +1267,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="GET Policies list JSON request failed: ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -1376,22 +1292,25 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'CREATE a new Policy ')"/>
<to
uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'policies','','update')"/>
- <setProperty propertyName="policyModelType">
+ <setProperty name="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setProperty>
+ <setProperty name="policyModelType">
<simple>${header.policyModelType}</simple>
</setProperty>
- <setProperty propertyName="policyModelVersion">
+ <setProperty name="policyModelVersion">
<simple>${header.policyModelVersion}</simple>
</setProperty>
- <setProperty propertyName="policyProperties">
+ <setProperty name="policyProperties">
<simple>${body}</simple>
</setProperty>
<to
- uri="bean:org.onap.policy.clamp.loop.template.PolicyModelsService?method=getPolicyModelTosca(${header.policyModelType},${header.policyModelVersion})"/>
+ uri="bean:org.onap.policy.clamp.loop.template.PolicyModelsService?method=getPolicyModelTosca(${header.policyModelType},${header.policyModelVersion})"/>
<setBody>
<method ref="org.onap.policy.clamp.policy.PolicyPayload"
method="createPolicyPayload(${header.policyModelType}, ${header.policyModelVersion},
${header.policyName}, ${header.policyVersion}, ${exchangeProperty[policyProperties]}, ${body})"/>
- </setBody>
+ </setBody>
<to uri="direct:create-policy"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=endLog()"/>
@@ -1404,7 +1323,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="CREATE Policy request failed for type: ${header.policyModelType}/${header.policyModelVersion}, ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -1424,19 +1343,22 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'DELETE a Policy ')"/>
<to
uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'policies','','update')"/>
- <setProperty propertyName="policyModelType">
+ <setProperty name="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setProperty>
+ <setProperty name="policyModelType">
<simple>${header.policyModelType}</simple>
</setProperty>
- <setProperty propertyName="policyModelVersion">
+ <setProperty name="policyModelVersion">
<simple>${header.policyModelVersion}</simple>
</setProperty>
- <setProperty propertyName="policyName">
+ <setProperty name="policyName">
<simple>${header.policyName}</simple>
</setProperty>
- <setProperty propertyName="policyVersion">
+ <setProperty name="policyVersion">
<simple>${header.policyVersion}</simple>
</setProperty>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:undeploy-one-policy-from-pap"/>
@@ -1452,7 +1374,7 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
<log loggingLevel="ERROR"
message="DELETE Policy request failed for policy: ${header.policyName}/${header.policyVersion}, ${exception.stacktrace}"/>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>500</constant>
</setHeader>
<setBody>
@@ -1463,10 +1385,88 @@
</route>
</delete>
+ <put uri="/v2/policies/pdpDeployment" type="com.google.gson.JsonElement" consumes="application/json">
+ <route>
+ <removeHeaders pattern="*"/>
+ <doTry>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Pdp group deployment update')"/>
+ <to
+ uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'policies','','update')"/>
+ <setBody>
+ <method ref="org.onap.policy.clamp.policy.pdpgroup.PdpGroupPayload"
+ method="generatePdpGroupPayloadFromList(${body})"/>
+ </setBody>
+ <log loggingLevel="INFO"
+ message="PDP Group DEPLOY request payload: ${body}"/>
+ <setProperty name="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setProperty>
+ <to uri="direct:add-multiple-policies-to-pdp-group"/>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=endLog()"/>
+ <doCatch>
+ <exception>java.lang.Exception</exception>
+ <handled>
+ <constant>true</constant>
+ </handled>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
+ <log loggingLevel="ERROR"
+ message="PDP Group deployment request failed: ${exception.stacktrace}"/>
+ <setHeader name="CamelHttpResponseCode">
+ <constant>500</constant>
+ </setHeader>
+ <setBody>
+ <simple>PDP Group deployment request FAILED</simple>
+ </setBody>
+ </doCatch>
+ </doTry>
+ </route>
+ </put>
+
+ <post uri="/v2/policies/policytype" type="java.lang.String" consumes="plain/text">
+ <route>
+ <removeHeaders pattern="*"/>
+ <doTry>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Create policy type')"/>
+ <to
+ uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'policies','','update')"/>
+ <setProperty name="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setProperty>
+ <to uri="direct:create-policy-type"/>
+ <to
+ uri="bean:org.onap.policy.clamp.policy.downloader.PolicyEngineController?method=synchronizeAllPolicies()"/>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=endLog()"/>
+ <doCatch>
+ <exception>java.lang.Exception</exception>
+ <handled>
+ <constant>true</constant>
+ </handled>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
+ <log loggingLevel="ERROR"
+ message="Create policy type request failed: ${exception.stacktrace}"/>
+ <setHeader name="CamelHttpResponseCode">
+ <constant>500</constant>
+ </setHeader>
+ <setBody>
+ <simple>Create policy type request FAILED</simple>
+ </setBody>
+ </doCatch>
+ </doTry>
+ </route>
+ </post>
+
<get uri="/v2/clampInformation" outType="org.onap.policy.clamp.clds.model.ClampInformation"
produces="application/json">
- <to
- uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=getClampInformation()"/>
+ <route>
+ <to
+ uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=getClampInformation()"/>
+ </route>
</get>
</rest>
</rests>
diff --git a/src/main/resources/clds/camel/rest/clds-services.xml b/runtime/src/main/resources/clds/camel/rest/clds-services.xml
index 61e1efbdc..aa4c3cbee 100644
--- a/src/main/resources/clds/camel/rest/clds-services.xml
+++ b/runtime/src/main/resources/clds/camel/rest/clds-services.xml
@@ -9,7 +9,7 @@
</setBody>
<when>
<simple> ${body} == 'NOT-OK'</simple>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>404</constant>
</setHeader>
<log loggingLevel="ERROR" message="HealthCheck failed" />
diff --git a/src/main/resources/clds/camel/routes/cds-flows.xml b/runtime/src/main/resources/clds/camel/routes/cds-flows.xml
index 73f8cb849..10fcb091e 100644
--- a/src/main/resources/clds/camel/routes/cds-flows.xml
+++ b/runtime/src/main/resources/clds/camel/routes/cds-flows.xml
@@ -5,15 +5,15 @@
message="Getting blueprint workflow list from CDS"/>
<to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('CDS', 'Getting workflow list from CDS')"/>
<doTry>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
- <setHeader headerName="Content-Type">
+ <setHeader name="Content-Type">
<constant>application/json</constant>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to query workflows from CDS : {{clamp.config.cds.url}}/api/v1/blueprint-model/workflows/blueprint-name/${exchangeProperty[blueprintName]}/version/${exchangeProperty[blueprintVersion]}"></log>
- <toD uri="{{clamp.config.cds.url}}/api/v1/blueprint-model/workflows/blueprint-name/${exchangeProperty[blueprintName]}/version/${exchangeProperty[blueprintVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.cds.userName}}&amp;authPassword={{clamp.config.cds.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <toD uri="{{clamp.config.cds.url}}/api/v1/blueprint-model/workflows/blueprint-name/${exchangeProperty[blueprintName]}/version/${exchangeProperty[blueprintVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.cds.userName}}&amp;authPassword={{clamp.config.cds.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
<doCatch>
<exception>java.lang.Exception</exception>
@@ -36,15 +36,15 @@
message="Getting blueprint input properties for workflow"/>
<to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('CDS', 'Getting input properties for workflow')"/>
<doTry>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>POST</constant>
</setHeader>
- <setHeader headerName="Content-Type">
+ <setHeader name="Content-Type">
<constant>application/json</constant>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to query input properties for workflow from CDS : {{clamp.config.cds.url}}/api/v1/blueprint-model/workflow-spec"></log>
- <toD uri="{{clamp.config.cds.url}}/api/v1/blueprint-model/workflow-spec?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.cds.userName}}&amp;authPassword={{clamp.config.cds.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <toD uri="{{clamp.config.cds.url}}/api/v1/blueprint-model/workflow-spec?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.cds.userName}}&amp;authPassword={{clamp.config.cds.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
<doCatch>
<exception>java.lang.Exception</exception>
diff --git a/src/main/resources/clds/camel/routes/dcae-flows.xml b/runtime/src/main/resources/clds/camel/routes/dcae-flows.xml
index 1a0eb7b9a..d74bd91bf 100644
--- a/src/main/resources/clds/camel/routes/dcae-flows.xml
+++ b/runtime/src/main/resources/clds/camel/routes/dcae-flows.xml
@@ -5,11 +5,17 @@
<when>
<simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
</simple>
+ <setProperty name="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setProperty>
<to uri="direct:deploy-loop-single-blueprint"/>
</when>
<when>
<simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
</simple>
+ <setProperty name="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setProperty>
<to uri="direct:deploy-loop-multi-blueprint"/>
</when>
</choice>
@@ -24,51 +30,51 @@
<split>
<simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
</simple>
- <setProperty propertyName="microServicePolicy">
+ <setProperty name="microServicePolicy">
<simple>${body}</simple>
</setProperty>
<log
loggingLevel="INFO"
message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<setBody>
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="getDeployPayload(${exchangeProperty[loopObject]},${exchangeProperty[microServicePolicy]})"/>
</setBody>
- <setProperty propertyName="dcaeDeploymentId">
+ <setProperty name="dcaeDeploymentId">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="generateDeploymentId()"/>
</setProperty>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>PUT</constant>
</setHeader>
- <setHeader headerName="Content-Type">
+ <setHeader name="Content-Type">
<constant>application/json</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to deploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}"></log>
<toD
- uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
- <setProperty propertyName="dcaeResponse">
+ <setProperty name="dcaeResponse">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="convertDcaeResponse(${body})"/>
</setProperty>
- <setProperty propertyName="dcaeStatusUrl">
+ <setProperty name="dcaeStatusUrl">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/>
</setProperty>
@@ -82,14 +88,14 @@
<handled>
<constant>false</constant>
</handled>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>DEPLOY micro service failed
(MicroService name:${exchangeProperty[microServicePolicy].getName()}),
Dep-id:${exchangeProperty[dcaeDeploymentId]},
StatusUrl:${exchangeProperty[dcaeStatusUrl]})
</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>DCAE</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -112,40 +118,40 @@
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="getDeployPayload(${exchangeProperty[loopObject]})"/>
</setBody>
- <setProperty propertyName="dcaeDeploymentId">
+ <setProperty name="dcaeDeploymentId">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="generateDeploymentId()"/>
</setProperty>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>PUT</constant>
</setHeader>
- <setHeader headerName="Content-Type">
+ <setHeader name="Content-Type">
<constant>application/json</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to deploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}"></log>
<toD
- uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
- <setProperty propertyName="dcaeResponse">
+ <setProperty name="dcaeResponse">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="convertDcaeResponse(${body})"/>
</setProperty>
- <setProperty propertyName="dcaeStatusUrl">
+ <setProperty name="dcaeStatusUrl">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/>
</setProperty>
@@ -155,13 +161,13 @@
<to uri="direct:reset-raise-http-exception-flag"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>DEPLOY loop status
(Dep-id:${exchangeProperty[dcaeDeploymentId]},
StatusUrl:${exchangeProperty[dcaeStatusUrl]})
</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>DCAE</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -174,11 +180,17 @@
<when>
<simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
</simple>
+ <setProperty name="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setProperty>
<to uri="direct:undeploy-loop-single-blueprint"/>
</when>
<when>
<simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
</simple>
+ <setProperty name="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setProperty>
<to uri="direct:undeploy-loop-multi-blueprint"/>
</when>
</choice>
@@ -193,7 +205,7 @@
<split>
<simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
</simple>
- <setProperty propertyName="microServicePolicy">
+ <setProperty name="microServicePolicy">
<simple>${body}</simple>
</setProperty>
<log
@@ -207,34 +219,34 @@
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="getUndeployPayload(${exchangeProperty[microServicePolicy]})"/>
</setBody>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>DELETE</constant>
</setHeader>
- <setHeader headerName="Content-Type">
+ <setHeader name="Content-Type">
<constant>application/json</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to undeploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[microServicePolicy].getDcaeDeploymentId()}"></log>
<toD
- uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[microServicePolicy].getDcaeDeploymentId()}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[microServicePolicy].getDcaeDeploymentId()}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
- <setProperty propertyName="dcaeResponse">
+ <setProperty name="dcaeResponse">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="convertDcaeResponse(${body})"/>
</setProperty>
- <setProperty propertyName="dcaeStatusUrl">
+ <setProperty name="dcaeStatusUrl">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/>
</setProperty>
@@ -244,7 +256,7 @@
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLogForComponent('Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})"/>
</when>
<otherwise>
- <log loggingLevel="WARNING"
+ <log loggingLevel="WARN"
message="Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLogForComponent('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING','DCAE',${exchangeProperty[loopObject]})"/>
@@ -256,12 +268,12 @@
<handled>
<constant>false</constant>
</handled>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>UNDEPLOY micro service failed
(MicroService name:${exchangeProperty[microServicePolicy].getName()})
</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>DCAE</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -281,43 +293,41 @@
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploying the loop')"/>
<choice>
<when>
- <simple>${exchangeProperty[loopObject].getDcaeDeploymentId()}
- != null
- </simple>
+ <simple>${exchangeProperty[loopObject].getDcaeDeploymentId()} != null</simple>
<doTry>
<setBody>
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="getUndeployPayload(${exchangeProperty[loopObject]})"/>
</setBody>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>DELETE</constant>
</setHeader>
- <setHeader headerName="Content-Type">
+ <setHeader name="Content-Type">
<constant>application/json</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to undeploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}"></log>
<toD
- uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
- <setProperty propertyName="dcaeResponse">
+ <setProperty name="dcaeResponse">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="convertDcaeResponse(${body})"/>
</setProperty>
- <setProperty propertyName="dcaeStatusUrl">
+ <setProperty name="dcaeStatusUrl">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/>
</setProperty>
@@ -327,10 +337,10 @@
<to uri="direct:reset-raise-http-exception-flag"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>UNDEPLOY loop status</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>DCAE</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -338,7 +348,7 @@
</doTry>
</when>
<otherwise>
- <log loggingLevel="WARNING"
+ <log loggingLevel="WARN"
message="Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !"/>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !','WARNING',${exchangeProperty[loopObject]})"/>
@@ -352,18 +362,18 @@
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting Deployment status')"/>
<doTry>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
@@ -373,18 +383,18 @@
<when>
<simple>${exchangeProperty[getStatusUrl].contains("?")} == true
</simple>
- <setProperty propertyName="uriSeparator">
+ <setProperty name="uriSeparator">
<simple>&amp;</simple>
</setProperty>
</when>
<otherwise>
- <setProperty propertyName="uriSeparator">
+ <setProperty name="uriSeparator">
<simple>?</simple>
</setProperty>
</otherwise>
</choice>
<toD
- uri="${exchangeProperty[getStatusUrl]}${exchangeProperty[uriSeparator]}bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="${exchangeProperty[getStatusUrl]}${exchangeProperty[uriSeparator]}bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<doCatch>
<exception>java.lang.Exception</exception>
<handled>
@@ -400,10 +410,10 @@
<to uri="direct:reset-raise-http-exception-flag"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>DCAE deployment status</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>DCAE</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -417,25 +427,25 @@
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting blueprint id in inventory')"/>
<doTry>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to query Dcae inventory Loop status: {{clamp.config.dcae.inventory.url}}/dcae-service-types?${header[CamelHttpQuery]}"></log>
<toD
- uri="{{clamp.config.dcae.inventory.url}}/dcae-service-types?asdcResourceId=${exchangeProperty[blueprintResourceId]}&amp;asdcServiceId=${exchangeProperty[blueprintServiceId]}&amp;typeName=${exchangeProperty[blueprintName]}&amp;bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.dcae.inventory.url}}/dcae-service-types?asdcResourceId=${exchangeProperty[blueprintResourceId]}&amp;asdcServiceId=${exchangeProperty[blueprintServiceId]}&amp;typeName=${exchangeProperty[blueprintName]}&amp;bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
<doFinally>
<to uri="direct:reset-raise-http-exception-flag"/>
@@ -451,33 +461,33 @@
message="Getting all DCAE blueprint from inventory"/>
<to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting all blueprint from inventory')"/>
<doTry>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to query Blueprints from DCAE inventory: {{clamp.config.dcae.inventory.url}}/dcae-service-types?${header[CamelHttpQuery]}"></log>
- <toD uri="{{clamp.config.dcae.inventory.url}}/dcae-service-types;bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <toD uri="{{clamp.config.dcae.inventory.url}}/dcae-service-types;bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
- <setProperty propertyName="dcaeResponseList">
+ <setProperty name="dcaeResponseList">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="convertToDcaeInventoryResponse(${body})"/>
</setProperty>
<split>
<simple>${exchangeProperty[dcaeResponseList]}</simple>
<convertBodyTo type="org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse"/>
- <setProperty propertyName="dcaeResponse">
+ <setProperty name="dcaeResponse">
<simple>${body}</simple>
</setProperty>
<to uri="bean:org.onap.policy.clamp.clds.model.dcae.DcaeInventoryCache?method=addDcaeInventoryResponse(${exchangeProperty[dcaeResponse]})"/>
diff --git a/src/main/resources/clds/camel/routes/loop-flows.xml b/runtime/src/main/resources/clds/camel/routes/loop-flows.xml
index f6a838ef0..4a3cc84b2 100644
--- a/src/main/resources/clds/camel/routes/loop-flows.xml
+++ b/runtime/src/main/resources/clds/camel/routes/loop-flows.xml
@@ -4,13 +4,13 @@
<setBody>
<simple>${header.loopName}</simple>
</setBody>
- <setProperty propertyName="loopObject">
+ <setProperty name="loopObject">
<method ref="org.onap.policy.clamp.loop.LoopService" method="getLoop" />
</setProperty>
<when>
<simple>${exchangeProperty[loopObject]} == null</simple>
- <setHeader headerName="CamelHttpResponseCode">
+ <setHeader name="CamelHttpResponseCode">
<constant>404</constant>
</setHeader>
<log loggingLevel="WARN" message="Loop not found in database: ${body}" />
@@ -19,14 +19,14 @@
</route>
<route id="update-policy-status-for-loop">
<from uri="direct:update-policy-status-for-loop" />
- <setProperty propertyName="policyComponent">
+ <setProperty name="policyComponent">
<simple>${exchangeProperty[loopObject].getComponent('POLICY')}
</simple>
</setProperty>
- <setProperty propertyName="policyFound">
+ <setProperty name="policyFound">
<simple resultType="java.lang.Boolean">true</simple>
</setProperty>
- <setProperty propertyName="policyDeployed">
+ <setProperty name="policyDeployed">
<simple resultType="java.lang.Boolean">true</simple>
</setProperty>
<log loggingLevel="INFO"
@@ -34,19 +34,19 @@
<split>
<simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
</simple>
- <setProperty propertyName="policyName">
+ <setProperty name="policyName">
<simple>${body.getName()}</simple>
</setProperty>
- <setProperty propertyName="policyType">
+ <setProperty name="policyType">
<simple>${body.getPolicyModel().getPolicyModelType()}</simple>
</setProperty>
- <setProperty propertyName="policyTypeVersion">
+ <setProperty name="policyTypeVersion">
<simple>${body.getPolicyModel().getVersion()}</simple>
</setProperty>
- <setProperty propertyName="policyPdpGroup">
+ <setProperty name="policyPdpGroup">
<simple>${body.getPdpGroup()}</simple>
</setProperty>
- <setProperty propertyName="policyVersion">
+ <setProperty name="policyVersion">
<simple>1.0.0</simple>
</setProperty>
<setBody>
@@ -61,19 +61,19 @@
<split>
<simple>${exchangeProperty[loopObject].getOperationalPolicies()}
</simple>
- <setProperty propertyName="policyName">
+ <setProperty name="policyName">
<simple>${body.getName()}</simple>
</setProperty>
- <setProperty propertyName="policyType">
+ <setProperty name="policyType">
<simple>${body.getPolicyModel().getPolicyModelType()}</simple>
</setProperty>
- <setProperty propertyName="policyTypeVersion">
+ <setProperty name="policyTypeVersion">
<simple>${body.getPolicyModel().getVersion()}</simple>
</setProperty>
- <setProperty propertyName="policyVersion">
+ <setProperty name="policyVersion">
<simple>1.0.0</simple>
</setProperty>
- <setProperty propertyName="policyPdpGroup">
+ <setProperty name="policyPdpGroup">
<simple>${body.getPdpGroup()}</simple>
</setProperty>
<setBody>
@@ -83,7 +83,7 @@
message="Processing Operational Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
<to uri="direct:verify-one-policy" />
</split>
- <setProperty propertyName="policyState">
+ <setProperty name="policyState">
<simple> ${exchangeProperty[policyComponent].getState()}
</simple>
</setProperty>
@@ -100,29 +100,29 @@
<when>
<simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
</simple>
- <setProperty propertyName="dcaeComponent">
+ <setProperty name="dcaeComponent">
<simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple>
</setProperty>
<when>
<simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()} != null
</simple>
- <setProperty propertyName="getStatusUrl">
+ <setProperty name="getStatusUrl">
<simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}</simple>
</setProperty>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:get-dcae-deployment-status" />
<when>
<simple> ${header.CamelHttpResponseCode} == 200 </simple>
<convertBodyTo type="java.lang.String" />
- <setProperty propertyName="dcaeResponse">
+ <setProperty name="dcaeResponse">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="convertDcaeResponse(${body})" />
</setProperty>
</when>
</when>
- <setProperty propertyName="dcaeState">
+ <setProperty name="dcaeState">
<simple> ${exchangeProperty[dcaeComponent].computeState(*)}
</simple>
</setProperty>
@@ -137,32 +137,32 @@
<split>
<simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
</simple>
- <setProperty propertyName="microServicePolicy">
+ <setProperty name="microServicePolicy">
<simple>${body}</simple>
</setProperty>
- <setProperty propertyName="dcaeComponent">
+ <setProperty name="dcaeComponent">
<simple>${exchangeProperty[loopObject].getComponent('DCAE_' + ${exchangeProperty[microServicePolicy].getName()})}</simple>
</setProperty>
<when>
<simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()} != null
</simple>
- <setProperty propertyName="getStatusUrl">
+ <setProperty name="getStatusUrl">
<simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()}</simple>
</setProperty>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:get-dcae-deployment-status" />
<when>
<simple> ${header.CamelHttpResponseCode} == 200 </simple>
<convertBodyTo type="java.lang.String" />
- <setProperty propertyName="dcaeResponse">
+ <setProperty name="dcaeResponse">
<method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
method="convertDcaeResponse(${body})" />
</setProperty>
</when>
</when>
- <setProperty propertyName="dcaeState">
+ <setProperty name="dcaeState">
<simple> ${exchangeProperty[dcaeComponent].computeState(*)}
</simple>
</setProperty>
@@ -181,14 +181,14 @@
<choice>
<when>
<simple>${exchangeProperty['dcaeState'].getStateName()} ==
- 'BLUEPRINT_DEPLOYED' and ${exchangeProperty['policyState'].getStateName()}
+ 'BLUEPRINT_DEPLOYED' &amp;&amp; ${exchangeProperty['policyState'].getStateName()}
== 'NOT_SENT'
</simple>
<to
uri="bean:org.onap.policy.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DESIGN')" />
</when>
<when>
- <simple>${exchangeProperty['dcaeState'].getStateName()} == 'IN_ERROR' or
+ <simple>${exchangeProperty['dcaeState'].getStateName()} == 'IN_ERROR' ||
${exchangeProperty['dcaeState'].getStateName()} ==
'MICROSERVICE_INSTALLATION_FAILED'
</simple>
@@ -197,7 +197,7 @@
</when>
<when>
<simple>${exchangeProperty['dcaeState'].getStateName()} ==
- 'MICROSERVICE_UNINSTALLATION_FAILED' or
+ 'MICROSERVICE_UNINSTALLATION_FAILED' ||
${exchangeProperty['policyState'].getStateName()} == 'IN_ERROR'
</simple>
<to
@@ -205,7 +205,7 @@
</when>
<when>
<simple>${exchangeProperty['dcaeState'].getStateName()} ==
- 'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
+ 'MICROSERVICE_INSTALLED_SUCCESSFULLY' &amp;&amp;
${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
</simple>
<to
@@ -213,7 +213,7 @@
</when>
<when>
<simple>${exchangeProperty['dcaeState'].getStateName()} ==
- 'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
+ 'MICROSERVICE_INSTALLED_SUCCESSFULLY' &amp;&amp;
${exchangeProperty['policyState'].getStateName()} == 'SENT'
</simple>
<to
@@ -221,8 +221,8 @@
</when>
<when>
<simple>${exchangeProperty['dcaeState'].getStateName()} ==
- 'BLUEPRINT_DEPLOYED' or ${exchangeProperty['dcaeState'].getStateName()} ==
- 'MICROSERVICE_UNINSTALLED_SUCCESSFULLY' and
+ 'BLUEPRINT_DEPLOYED' || ${exchangeProperty['dcaeState'].getStateName()} ==
+ 'MICROSERVICE_UNINSTALLED_SUCCESSFULLY' &amp;&amp;
${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
</simple>
<to
@@ -230,9 +230,9 @@
</when>
<when>
<simple>${exchangeProperty['dcaeState'].getStateName()} ==
- 'PROCESSING_MICROSERVICE_INSTALLATION' or
+ 'PROCESSING_MICROSERVICE_INSTALLATION' ||
${exchangeProperty['dcaeState'].getStateName()} ==
- 'PROCESSING_MICROSERVICE_UNINSTALLATION' and
+ 'PROCESSING_MICROSERVICE_UNINSTALLATION' &amp;&amp;
${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
</simple>
<to
@@ -240,7 +240,7 @@
</when>
<when>
<simple>${exchangeProperty['dcaeState'].getStateName()} ==
- 'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
+ 'MICROSERVICE_INSTALLED_SUCCESSFULLY' &amp;&amp;
${exchangeProperty['policyState'].getStateName()} != 'NOT_SENT'
</simple>
<to
diff --git a/src/main/resources/clds/camel/routes/policy-flows.xml b/runtime/src/main/resources/clds/camel/routes/policy-flows.xml
index c92617856..01862692c 100644
--- a/src/main/resources/clds/camel/routes/policy-flows.xml
+++ b/runtime/src/main/resources/clds/camel/routes/policy-flows.xml
@@ -1,31 +1,31 @@
<routes xmlns="http://camel.apache.org/schema/spring">
<route id="verify-one-policy">
<from uri="direct:verify-one-policy"/>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:get-policy"/>
<when>
<simple>${header.CamelHttpResponseCode} != 200</simple>
- <setProperty propertyName="policyFound">
+ <setProperty name="policyFound">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<log loggingLevel="WARN"
message="At least one policy has not been found on policy engine: ${exchangeProperty[policyName]}"/>
</when>
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:get-deployment-policy"/>
<when>
<simple>${header.CamelHttpResponseCode} != 200</simple>
- <setProperty propertyName="policyDeployed">
+ <setProperty name="policyDeployed">
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<log loggingLevel="WARN"
message="At least one policy has not been deployed on policy engine: ${exchangeProperty[policyName]}"/>
</when>
- <setProperty propertyName="newPolicyState">
+ <setProperty name="newPolicyState">
<simple>${exchangeProperty[policyComponent].computeState(*)}</simple>
</setProperty>
</route>
@@ -37,25 +37,25 @@
message="Getting Policy: ${exchangeProperty[policyName]}"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Get Policy')"/>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/${exchangeProperty[policyTypeVersion]}/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log>
<toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/${exchangeProperty[policyTypeVersion]}/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/${exchangeProperty[policyTypeVersion]}/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<doCatch>
<exception>java.lang.Exception</exception>
<handled>
@@ -71,12 +71,12 @@
<to uri="direct:reset-raise-http-exception-flag"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>${exchangeProperty[policyName]} GET
Policy status
</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>POLICY</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -91,25 +91,25 @@
message="Getting the policy deployment in PDP: ${exchangeProperty[policyName]}"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy deployment in PDP')"/>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to get policy deployment status: {{clamp.config.policy.pap.url}}/policy/pap/v1/policies/status/${exchangeProperty[policyPdpGroup]}/${exchangeProperty[policyName]}/1.0.0"></log>
<toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/status/${exchangeProperty[policyPdpGroup]}/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/status/${exchangeProperty[policyPdpGroup]}/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<doCatch>
<exception>java.lang.Exception</exception>
<handled>
@@ -125,12 +125,12 @@
<to uri="direct:reset-raise-http-exception-flag"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>${exchangeProperty[policyName]} GET Policy deployment
status
</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>POLICY</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -149,22 +149,22 @@
<simple>${exchangeProperty[policy].createPolicyPayload()}
</simple>
</setBody>
- <setProperty propertyName="policyModelType">
+ <setProperty name="policyModelType">
<simple>${exchangeProperty[policy].getPolicyModel().getPolicyModelType()}</simple>
</setProperty>
- <setProperty propertyName="policyModelVersion">
+ <setProperty name="policyModelVersion">
<simple>${exchangeProperty[policy].getPolicyModel().getVersion()}</simple>
</setProperty>
<to uri="direct:create-policy"/>
<doFinally>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>${exchangeProperty[policy].getName()} creation
status
</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>POLICY</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -179,28 +179,28 @@
message="Deleting Policy in a loop: ${exchangeProperty[policy].getName()}"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Policy in a loop')"/>
- <setProperty propertyName="policyModelType">
+ <setProperty name="policyModelType">
<simple>${exchangeProperty[policy].getPolicyModel().getPolicyModelType()}</simple>
</setProperty>
- <setProperty propertyName="policyModelVersion">
+ <setProperty name="policyModelVersion">
<simple>${exchangeProperty[policy].getPolicyModel().getVersion()}</simple>
</setProperty>
- <setProperty propertyName="policyName">
+ <setProperty name="policyName">
<simple>${exchangeProperty[policy].getName()}</simple>
</setProperty>
- <setProperty propertyName="policyVersion">
+ <setProperty name="policyVersion">
<simple>1.0.0</simple>
</setProperty>
<to uri="direct:delete-policy"/>
<doFinally>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>${exchangeProperty[policy].getName()} removal
status
</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>POLICY</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -208,8 +208,8 @@
</doTry>
</route>
- <route id="add-all-to-active-pdp-group">
- <from uri="direct:add-all-to-active-pdp-group"/>
+ <route id="add-policies-from-loop-to-pdp-group">
+ <from uri="direct:add-policies-from-loop-to-pdp-group"/>
<doTry>
<log loggingLevel="INFO"
message="Adding loop policies to PDP Group: ${exchangeProperty[loopObject].getName()}"/>
@@ -220,37 +220,17 @@
${exchangeProperty[loopObject].getComponent("POLICY").createPoliciesPayloadPdpGroup(exchangeProperty[loopObject],"POST")}
</simple>
</setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>POST</constant>
- </setHeader>
- <setHeader headerName="Content-Type">
- <constant>application/json</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/deployments/batch"></log>
- <toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/deployments/batch?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;useSystemProperties=true&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
-
+ <setProperty name="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setProperty>
+ <to uri="direct:add-multiple-policies-to-pdp-group"/>
<doFinally>
- <to uri="direct:reset-raise-http-exception-flag"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>PDP Group push ALL status</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>POLICY</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -270,37 +250,37 @@
${exchangeProperty[loopObject].getComponent("POLICY").createPoliciesPayloadPdpGroup(exchangeProperty[loopObject],"DELETE")}
</simple>
</setBody>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>POST</constant>
</setHeader>
- <setHeader headerName="Content-Type">
+ <setHeader name="Content-Type">
<constant>application/json</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to remove policies from PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/deployments/batch"></log>
<toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/deployments/batch?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;useSystemProperties=true&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/deployments/batch?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;useSystemProperties=true&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<doFinally>
<to uri="direct:reset-raise-http-exception-flag"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>PDP Group remove ALL status</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>POLICY</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -315,15 +295,15 @@
message="Removing policy from active PDP group for loop: ${exchangeProperty[loopObject].getName()}"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing one policy PDP group')"/>
- <setProperty propertyName="policyVersion">
+ <setProperty name="policyVersion">
<simple>1.0.0</simple>
</setProperty>
<to uri="direct:undeploy-one-policy-from-pap"/>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>${exchangeProperty[policyName]} PDP Group removal status
</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>POLICY</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -332,10 +312,10 @@
<handled>
<constant>false</constant>
</handled>
- <setProperty propertyName="logMessage">
+ <setProperty name="logMessage">
<simple>PDP Group removal, Error reported: ${exception}</simple>
</setProperty>
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<simple>POLICY</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response"/>
@@ -354,25 +334,25 @@
<log loggingLevel="INFO" message="Getting all the policy models"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting all the policy models')"/>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to get all policy models: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes"></log>
<toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
<doFinally>
<to uri="direct:reset-raise-http-exception-flag"/>
@@ -389,25 +369,25 @@
message="Getting the policy tosca model: ${exchangeProperty[policyModelType]}/${exchangeProperty[policyModelVersion]}"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy model')"/>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to get policy model: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelType]}/versions/${exchangeProperty[policyModelVersion]}"></log>
<toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelType]}/versions/${exchangeProperty[policyModelVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelType]}/versions/${exchangeProperty[policyModelVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
<doFinally>
<to uri="direct:reset-raise-http-exception-flag"/>
@@ -424,25 +404,25 @@
message="Getting the list of PDP Groups"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the PDP Group list')"/>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to get policy model: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps"></log>
<toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
<doFinally>
<to uri="direct:reset-raise-http-exception-flag"/>
@@ -459,25 +439,25 @@
message="Getting the policies list"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policies list')"/>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to get policies list: {{clamp.config.policy.api.url}}/policy/api/v1/policies"></log>
<toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
<doFinally>
<to uri="direct:reset-raise-http-exception-flag"/>
@@ -486,7 +466,43 @@
</doFinally>
</doTry>
</route>
-
+ <route id="add-multiple-policies-to-pdp-group">
+ <from uri="direct:add-multiple-policies-to-pdp-group"/>
+ <!-- Body should come from outside, expect a json describing the policy -->
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Add policies to PDP group"/>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')"/>
+ <setHeader name="CamelHttpMethod">
+ <constant>POST</constant>
+ </setHeader>
+ <setHeader name="Content-Type">
+ <constant>application/json</constant>
+ </setHeader>
+ <setHeader name="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader name="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader name="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to add/remove policies in batch to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/deployments/batch"></log>
+ <toD
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/deployments/batch?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;useSystemProperties=true&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ </doFinally>
+ </doTry>
+ </route>
<route id="undeploy-one-policy-from-pap">
<from uri="direct:undeploy-one-policy-from-pap"/>
<doTry>
@@ -497,25 +513,25 @@
<setBody>
<constant>null</constant>
</setBody>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>DELETE</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to delete policy from PDP Group: {{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log>
<toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<doFinally>
<to uri="direct:reset-raise-http-exception-flag"/>
<to
@@ -532,28 +548,28 @@
message="Create Policy from model ${exchangeProperty[policyModelType]}/${exchangeProperty[policyModelVersion]}"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Policy')"/>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>POST</constant>
</setHeader>
- <setHeader headerName="Content-Type">
+ <setHeader name="Content-Type">
<constant>application/json</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to create policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelType]}/versions/${exchangeProperty[policyModelVersion]}/policies"></log>
<toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelType]}/versions/${exchangeProperty[policyModelVersion]}/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelType]}/versions/${exchangeProperty[policyModelVersion]}/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<doFinally>
<to uri="direct:reset-raise-http-exception-flag"/>
<to
@@ -571,25 +587,62 @@
<setBody>
<constant>null</constant>
</setBody>
- <setHeader headerName="CamelHttpMethod">
+ <setHeader name="CamelHttpMethod">
<constant>DELETE</constant>
</setHeader>
- <setHeader headerName="X-ONAP-RequestID">
+ <setHeader name="X-ONAP-RequestID">
<simple>${exchangeProperty[X-ONAP-RequestID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
+ <setHeader name="X-ONAP-InvocationID">
<simple>${exchangeProperty[X-ONAP-InvocationID]}
</simple>
</setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
+ <setHeader name="X-ONAP-PartnerName">
<simple>${exchangeProperty[X-ONAP-PartnerName]}
</simple>
</setHeader>
<log loggingLevel="INFO"
message="Endpoint to delete policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelType]}/versions/${exchangeProperty[policyModelVersion]}/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log>
<toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelType]}/versions/${exchangeProperty[policyModelVersion]}/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelType]}/versions/${exchangeProperty[policyModelVersion]}/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ </doFinally>
+ </doTry>
+ </route>
+ <route id="create-policy-type">
+ <from uri="direct:create-policy-type"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Creating Policy type"/>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create policy typ')"/>
+ <setHeader name="CamelHttpMethod">
+ <constant>POST</constant>
+ </setHeader>
+ <setHeader name="Content-Type">
+ <constant>application/yaml</constant>
+ </setHeader>
+ <setHeader name="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader name="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader name="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to create policy type: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<doFinally>
<to uri="direct:reset-raise-http-exception-flag"/>
diff --git a/src/main/resources/clds/camel/routes/utils-flows.xml b/runtime/src/main/resources/clds/camel/routes/utils-flows.xml
index d5da4faee..90900f842 100644
--- a/src/main/resources/clds/camel/routes/utils-flows.xml
+++ b/runtime/src/main/resources/clds/camel/routes/utils-flows.xml
@@ -1,7 +1,7 @@
<routes xmlns="http://camel.apache.org/schema/spring">
<route id="reset-raise-http-exception-flag">
<from uri="direct:reset-raise-http-exception-flag" />
- <setProperty propertyName="raiseHttpExceptionFlag">
+ <setProperty name="raiseHttpExceptionFlag">
<simple resultType="java.lang.Boolean">true</simple>
</setProperty>
</route>
@@ -19,7 +19,7 @@
<otherwise>
<to
uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLogForComponent('${exchangeProperty[logMessage]} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','${exchangeProperty[logComponent]}',${exchangeProperty[loopObject]})" />
- <setProperty propertyName="logComponent">
+ <setProperty name="logComponent">
<constant>null</constant>
</setProperty>
</otherwise>
diff --git a/src/main/resources/clds/clds-users.json b/runtime/src/main/resources/clds/clds-users.json
index 5a7f43841..5a7f43841 100644
--- a/src/main/resources/clds/clds-users.json
+++ b/runtime/src/main/resources/clds/clds-users.json
diff --git a/src/main/resources/clds/json-schema/operational_policies/operational_policy.json b/runtime/src/main/resources/clds/json-schema/operational_policies/operational_policy.json
index 973028316..973028316 100644
--- a/src/main/resources/clds/json-schema/operational_policies/operational_policy.json
+++ b/runtime/src/main/resources/clds/json-schema/operational_policies/operational_policy.json
diff --git a/src/main/resources/clds/sdc-controllers-config.json b/runtime/src/main/resources/clds/sdc-controllers-config.json
index b86732ec7..be9d02c8d 100644
--- a/src/main/resources/clds/sdc-controllers-config.json
+++ b/runtime/src/main/resources/clds/sdc-controllers-config.json
@@ -6,7 +6,7 @@
"consumerId": "clamp",
"environmentName": "AUTO",
"sdcAddress": "sdc.api.simpledemo.onap.org:8443",
- "password": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981",
+ "password": "enc:JPV4p067JlSXt2Fet9bfuI8JpkS4ZGYVcgypcPs98gXjgjCjTze_d3JxqmlKaaakdiOjIcEC_MJh6-5pJTLgdc",
"pollingInterval":30,
"pollingTimeout":30,
"activateServerTLSAuth":"false",
diff --git a/src/main/resources/clds/tosca-converter/default-tosca-types.yaml b/runtime/src/main/resources/clds/tosca-converter/default-tosca-types.yaml
index a11a73698..a11a73698 100644
--- a/src/main/resources/clds/tosca-converter/default-tosca-types.yaml
+++ b/runtime/src/main/resources/clds/tosca-converter/default-tosca-types.yaml
diff --git a/src/main/resources/clds/tosca-converter/templates.json b/runtime/src/main/resources/clds/tosca-converter/templates.json
index f709e2f6d..f709e2f6d 100644
--- a/src/main/resources/clds/tosca-converter/templates.json
+++ b/runtime/src/main/resources/clds/tosca-converter/templates.json
diff --git a/src/main/resources/logback-default.xml b/runtime/src/main/resources/logback-default.xml
index 5397eab04..5397eab04 100644
--- a/src/main/resources/logback-default.xml
+++ b/runtime/src/main/resources/logback-default.xml
diff --git a/src/main/resources/logback-spring.xml b/runtime/src/main/resources/logback-spring.xml
index ffa497f1d..ffa497f1d 100644
--- a/src/main/resources/logback-spring.xml
+++ b/runtime/src/main/resources/logback-spring.xml
diff --git a/src/main/resources/logmessages.properties b/runtime/src/main/resources/logmessages.properties
index fc9f74a36..fc9f74a36 100644
--- a/src/main/resources/logmessages.properties
+++ b/runtime/src/main/resources/logmessages.properties
diff --git a/src/main/resources/system.properties b/runtime/src/main/resources/system.properties
index f95fc7009..f95fc7009 100644
--- a/src/main/resources/system.properties
+++ b/runtime/src/main/resources/system.properties
diff --git a/src/main/script/SelectNpmRepo.groovy b/runtime/src/main/script/SelectNpmRepo.groovy
index 797d2d003..797d2d003 100644
--- a/src/main/script/SelectNpmRepo.groovy
+++ b/runtime/src/main/script/SelectNpmRepo.groovy
diff --git a/src/main/script/TagVersion.groovy b/runtime/src/main/script/TagVersion.groovy
index 271e2967f..271e2967f 100644
--- a/src/main/script/TagVersion.groovy
+++ b/runtime/src/main/script/TagVersion.groovy
diff --git a/src/main/script/checkLibIndex.sh b/runtime/src/main/script/checkLibIndex.sh
index 9a28e7df9..fef9c1b7a 100755..100644
--- a/src/main/script/checkLibIndex.sh
+++ b/runtime/src/main/script/checkLibIndex.sh
@@ -31,9 +31,9 @@ then
fi
tmpSrcFileList=/tmp/upldateLibIndex.$$.list
-reactUiBaseDir="${baseDir}/ui-react"
-reactLibIndexFile="ui-react-lib/libIndex.js"
-exclusionList="ui-react-lib/libExportExclusions.dat"
+reactUiBaseDir="${baseDir}/runtime/ui-react"
+reactLibIndexFile="runtime/ui-react-lib/libIndex.js"
+exclusionList="runtime/ui-react-lib/libExportExclusions.dat"
if [[ ! -d "$reactUiBaseDir" ]]
diff --git a/src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java
index 6e5300e23..6e5300e23 100644
--- a/src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java
index 605ab99ae..605ab99ae 100644
--- a/src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java
index 89178b778..7390b65ba 100644
--- a/src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -57,7 +57,8 @@ public class SdcSingleControllerConfigurationTest {
StandardCharsets.UTF_8);
JsonObject jsonNode = JsonUtils.GSON.fromJson(streamReader, JsonObject.class);
- return new SdcSingleControllerConfiguration(jsonNode, sdcControllerName);
+ return new SdcSingleControllerConfiguration(jsonNode, sdcControllerName,
+ "classpath:clds/aaf/org.onap.clamp.keyfile");
}
@Test
diff --git a/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java
index 557a2e96c..557a2e96c 100644
--- a/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItCase.java
index 52da63952..52da63952 100644
--- a/src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java
index 1a4a2ec5f..1a4a2ec5f 100644
--- a/src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java
index 017881ba7..017881ba7 100644
--- a/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItCase.java
index c8b9932cc..c8b9932cc 100644
--- a/src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItCase.java
index 516fc7a09..70aeccf59 100644
--- a/src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItCase.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -56,7 +56,7 @@ public class SdcControllersConfigurationItCase {
@Test
public void testGetAllDefinedControllers() throws IOException {
- loadFile("classpath:/clds/sdc-controllers-config.json");
+ loadFile("classpath:clds/sdc-controllers-config.json");
Map<String, SdcSingleControllerConfiguration> mapResult = sdcControllersConfiguration
.getAllDefinedControllers();
assertTrue(mapResult.size() == 2);
@@ -66,7 +66,7 @@ public class SdcControllersConfigurationItCase {
@Test
public void testGetSdcSingleControllerConfiguration() throws IOException {
- loadFile("classpath:/clds/sdc-controllers-config.json");
+ loadFile("classpath:clds/sdc-controllers-config.json");
assertEquals("sdc-controller1", sdcControllersConfiguration
.getSdcSingleControllerConfiguration("sdc-controller1").getSdcControllerName());
assertEquals("sdc-controller2", sdcControllersConfiguration
@@ -75,13 +75,13 @@ public class SdcControllersConfigurationItCase {
@Test(expected = JsonSyntaxException.class)
public void testBadJsonLoading() throws IOException {
- loadFile("classpath:/clds/sdc-controllers-config-bad.json");
+ loadFile("classpath:clds/sdc-controllers-config-bad.json");
fail("Should have raised an exception");
}
@Test(expected = SdcParametersException.class)
public void testMissingParamInJsonLoading() throws IOException {
- loadFile("classpath:/clds/sdc-controllers-config-missing-param.json");
+ loadFile("classpath:clds/sdc-controllers-config-missing-param.json");
sdcControllersConfiguration.getAllDefinedControllers();
fail("Should have raised an exception");
}
diff --git a/src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItCase.java
index 787118902..787118902 100644
--- a/src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java
index 0e7fe6c7e..f406e5ed2 100644
--- a/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java
@@ -37,6 +37,7 @@ import org.junit.runner.RunWith;
import org.onap.policy.clamp.clds.Application;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@@ -99,7 +100,8 @@ public class DcaeInventoryResponseCacheTestItCase {
Exchange exchange = ExchangeBuilder.anExchange(camelContext).build();
Exchange exchangeResponse = camelContext.createProducerTemplate()
.send("direct:get-all-dcae-blueprint-inventory", exchange);
- assertThat(exchangeResponse.getIn().getHeader("CamelHttpResponseCode")).isEqualTo(200);
+ assertThat(HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
+ .is2xxSuccessful()).isTrue();
Set<DcaeInventoryResponse> blueprint = inventoryCache.getAllBlueprintsPerLoopId("testAsdcServiceId");
assertThat(blueprint.size()).isEqualTo(2);
diff --git a/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java
index a246e0efa..a246e0efa 100644
--- a/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java
index 7999709c2..7999709c2 100644
--- a/src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java
index 085b3d187..085b3d187 100644
--- a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java
index d7a3b3823..d7a3b3823 100644
--- a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java
index 08e425abf..08e425abf 100644
--- a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java
index f70e74cd6..f70e74cd6 100644
--- a/src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java
index 6f6f5c104..6f6f5c104 100644
--- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java
index 493ee992c..493ee992c 100644
--- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java
index 3eaa0ce51..3eaa0ce51 100644
--- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java
index 2c8744f33..2c8744f33 100644
--- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java
index dc27d8aaa..dc27d8aaa 100644
--- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java
index 658419d4c..658419d4c 100644
--- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java
index 5652fa9cd..5652fa9cd 100644
--- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java
index 7b17adeec..0ea2146b4 100644
--- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java
@@ -1,52 +1,52 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.tosca.update;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElement;
-import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateManager;
-import org.onap.policy.clamp.clds.util.ResourceFileUtils;
-
-public class ToscaElementTest extends TestCase {
-
- /**
- * Test propertiesName.
- *
- * @throws IOException In case of failure
- */
- public void testPropertiesNames() throws IOException {
- ArrayList<String> reference = new ArrayList<>(Arrays.asList("actor", "operation", "target", "payload"));
- JsonTemplateManager jsonTemplateManager =
- new JsonTemplateManager(
- ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
- ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"),
- ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json"));
- ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor");
- assertEquals(reference, toscaElement.propertiesNames());
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.clds.tosca.update;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import junit.framework.TestCase;
+import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElement;
+import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateManager;
+import org.onap.policy.clamp.clds.util.ResourceFileUtils;
+
+public class ToscaElementTest extends TestCase {
+
+ /**
+ * Test propertiesName.
+ *
+ * @throws IOException In case of failure
+ */
+ public void testPropertiesNames() throws IOException {
+ ArrayList<String> reference = new ArrayList<>(Arrays.asList("actor", "operation", "target", "payload"));
+ JsonTemplateManager jsonTemplateManager =
+ new JsonTemplateManager(
+ ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
+ ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"),
+ ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json"));
+ ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor");
+ assertEquals(reference, toscaElement.propertiesNames());
+ }
+
+}
diff --git a/src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java
index b2c6d282a..b2c6d282a 100644
--- a/src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java
index ab6a41bca..ab6a41bca 100644
--- a/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/util/TestObject.java b/runtime/src/test/java/org/onap/policy/clamp/clds/util/TestObject.java
index 02cabd270..02cabd270 100644
--- a/src/test/java/org/onap/policy/clamp/clds/util/TestObject.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/util/TestObject.java
diff --git a/src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java b/runtime/src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java
index d5abf41d0..d5abf41d0 100644
--- a/src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java
diff --git a/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java b/runtime/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java
index 51c4c078a..622fd5999 100644
--- a/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java
@@ -1,9 +1,11 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
* Copyright (C) 2019 Samsung. All rights reserved.
* ================================================================================
+ * Modifications Copyright (c) 2021 AT&T
+ * ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -28,7 +30,7 @@ import static org.mockito.Mockito.mock;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultExchange;
+import org.apache.camel.support.DefaultExchange;
import org.junit.Test;
import org.mockito.Mockito;
import org.onap.policy.clamp.clds.util.LoggingUtils;
@@ -43,7 +45,7 @@ public class FlowLogOperationTest {
private FlowLogOperation flowLogOperation = new FlowLogOperation();
@Test
- public void testStratLog() {
+ public void testStartLog() {
// given
LoggingUtils loggingUtils = mock(LoggingUtils.class);
ReflectionTestUtils.setField(flowLogOperation, "util", loggingUtils);
@@ -65,7 +67,7 @@ public class FlowLogOperationTest {
public void testInvokeLog() {
// given
final String mockEntity = "mockEntity";
- final String mockServiceName = "mockSerivceName";
+ final String mockServiceName = "mockServiceName";
MDCAdapter mdcAdapter = MDC.getMDCAdapter();
// when
flowLogOperation.invokeLog(mockEntity, mockServiceName);
diff --git a/src/test/java/org/onap/policy/clamp/loop/CsarInstallerItCase.java b/runtime/src/test/java/org/onap/policy/clamp/loop/CsarInstallerItCase.java
index 5b67f1f3a..b0abf832b 100644
--- a/src/test/java/org/onap/policy/clamp/loop/CsarInstallerItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/CsarInstallerItCase.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Modifications copyright (c) 2019 Nokia
@@ -98,9 +98,9 @@ public class CsarInstallerItCase {
@Qualifier("csarInstaller")
private CsarInstaller csarInstaller;
- private BlueprintArtifact buildFakeBuildprintArtifact(String instanceName, String invariantResourceUuid,
- String blueprintFilePath, String artifactName,
- String invariantServiceUuid) throws IOException {
+ private BlueprintArtifact buildFakeBlueprintArtifact(String instanceName, String invariantResourceUuid,
+ String blueprintFilePath, String artifactName,
+ String invariantServiceUuid) throws IOException {
IResourceInstance resource = Mockito.mock(IResourceInstance.class);
Mockito.when(resource.getResourceInstanceName()).thenReturn(instanceName);
Mockito.when(resource.getResourceInvariantUUID()).thenReturn(invariantResourceUuid);
@@ -127,7 +127,7 @@ public class CsarInstallerItCase {
Map<String, BlueprintArtifact> blueprintMap = new HashMap<>();
Mockito.when(csarHandler.getMapOfBlueprints()).thenReturn(blueprintMap);
// Create fake blueprint artifact 1 on resource1
- BlueprintArtifact blueprintArtifact = buildFakeBuildprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1,
+ BlueprintArtifact blueprintArtifact = buildFakeBlueprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1,
INVARIANT_RESOURCE1_UUID, "example/sdc/blueprint-dcae/tca-bad-policy.yaml", "tca-bad-policy.yaml",
INVARIANT_SERVICE_UUID);
listResources.add(blueprintArtifact.getResourceAttached());
@@ -167,25 +167,25 @@ public class CsarInstallerItCase {
Map<String, BlueprintArtifact> blueprintMap = new HashMap<>();
Mockito.when(csarHandler.getMapOfBlueprints()).thenReturn(blueprintMap);
// Create fake blueprint artifact 1 on resource1
- BlueprintArtifact blueprintArtifact = buildFakeBuildprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1,
+ BlueprintArtifact blueprintArtifact = buildFakeBlueprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1,
INVARIANT_RESOURCE1_UUID, "example/sdc/blueprint-dcae/tca.yaml", "tca.yaml", INVARIANT_SERVICE_UUID);
listResources.add(blueprintArtifact.getResourceAttached());
blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact);
// Create fake blueprint artifact 2 on resource2
- blueprintArtifact = buildFakeBuildprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE2, INVARIANT_RESOURCE2_UUID,
+ blueprintArtifact = buildFakeBlueprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE2, INVARIANT_RESOURCE2_UUID,
"example/sdc/blueprint-dcae/tca_2.yaml", "tca_2.yaml", INVARIANT_SERVICE_UUID);
listResources.add(blueprintArtifact.getResourceAttached());
blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact);
// Create fake blueprint artifact 3 on resource 1 so that it's possible to
// test multiple CL deployment per Service/vnf
- blueprintArtifact = buildFakeBuildprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1, INVARIANT_RESOURCE1_UUID,
+ blueprintArtifact = buildFakeBlueprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1, INVARIANT_RESOURCE1_UUID,
"example/sdc/blueprint-dcae/tca_3.yaml", "tca_3.yaml", INVARIANT_SERVICE_UUID);
blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact);
// Create fake blueprint artifact 3 on resource 1 so that it's possible to
// test multiple CL deployment per Service/vnf
- blueprintArtifact = buildFakeBuildprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1, INVARIANT_RESOURCE1_UUID,
+ blueprintArtifact = buildFakeBlueprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1, INVARIANT_RESOURCE1_UUID,
"example/sdc/blueprint-dcae/tca-guilin.yaml", "tca-guilin.yaml", INVARIANT_SERVICE_UUID);
blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact);
diff --git a/src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java b/runtime/src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java
index c94937031..c95725457 100644
--- a/src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -36,6 +36,7 @@ import org.junit.Test;
import org.mockito.Mockito;
import org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse;
import org.onap.policy.clamp.clds.model.dcae.DcaeOperationStatusResponse;
+import org.onap.policy.clamp.clds.util.ResourceFileUtils;
import org.onap.policy.clamp.loop.components.external.DcaeComponent;
import org.onap.policy.clamp.loop.components.external.ExternalComponentState;
import org.onap.policy.clamp.loop.template.LoopTemplate;
@@ -52,7 +53,7 @@ public class DcaeComponentTest {
JsonObject.class));
loopTest.setLastComputedState(LoopState.DESIGN);
loopTest.setDcaeDeploymentId("123456789");
- loopTest.setDcaeDeploymentStatusUrl("http4://localhost:8085");
+ loopTest.setDcaeDeploymentStatusUrl("http://localhost:8085");
MicroServicePolicy microServicePolicy = new MicroServicePolicy("configPolicyTest", new PolicyModel("policy1",
"tosca_definitions_version: tosca_simple_yaml_1_0_0", "1.0.0"), true,
@@ -175,36 +176,10 @@ public class DcaeComponentTest {
*/
@Test
public void convertToDcaeInventoryResponseTest() throws IOException, ParseException {
- String dcaeFakeResponse = "{\n" + " \"links\": {\n" + " \"previousLink\": {\n"
- + " \"title\": \"string\",\n" + " \"rel\": \"string\",\n" + " \"uri\": \"string\",\n"
- + " \"uriBuilder\": {},\n" + " \"rels\": [\n" + " \"string\"\n" + " ],\n"
- + " \"params\": {\n" + " \"additionalProp1\": \"string\",\n"
- + " \"additionalProp2\": \"string\",\n" + " \"additionalProp3\": \"string\"\n"
- + " },\n" + " \"type\": \"string\"\n" + " },\n" + " \"nextLink\": {\n"
- + " \"title\": \"string\",\n" + " \"rel\": \"string\",\n" + " \"uri\": \"string\",\n"
- + " \"uriBuilder\": {},\n" + " \"rels\": [\n" + " \"string\"\n" + " ],\n"
- + " \"params\": {\n" + " \"additionalProp1\": \"string\",\n"
- + " \"additionalProp2\": \"string\",\n" + " \"additionalProp3\": \"string\"\n"
- + " },\n" + " \"type\": \"string\"\n" + " }\n" + " },\n" + " \"totalCount\": 0,\n"
- + " \"items\": [\n" + " {\n" + " \"owner\": \"testOwner\",\n"
- + " \"application\": \"testApplication\",\n" + " \"component\": \"testComponent\",\n"
- + " \"typeName\": \"testTypeName\",\n" + " \"typeVersion\": 0,\n"
- + " \"blueprintTemplate\": \"testBlueprintTemplate\",\n" + " \"serviceIds\": [\n"
- + " \"serviceId1\", \"serviceId2\"\n" + " ],\n" + " \"vnfTypes\": [\n"
- + " \"vnfType1\", \"vnfType2\"\n" + " ],\n" + " \"serviceLocations\": [\n"
- + " \"serviceLocation1\", \"serviceLocation2\"\n" + " ],\n"
- + " \"asdcServiceId\": \"testAsdcServiceId\",\n"
- + " \"asdcResourceId\": \"testAsdcResourceId\",\n"
- + " \"asdcServiceURL\": \"testAsdcServiceURL\",\n" + " \"typeId\": \"testTypeId\",\n"
- + " \"selfLink\": {\n" + " \"title\": \"selfLinkTitle\",\n"
- + " \"rel\": \"selfLinkRel\",\n" + " \"uri\": \"selfLinkUri\",\n"
- + " \"uriBuilder\": {},\n" + " \"rels\": [\n" + " \"string\"\n" + " ],\n"
- + " \"params\": {\n" + " \"additionalProp1\": \"string\",\n"
- + " \"additionalProp2\": \"string\",\n" + " \"additionalProp3\": \"string\"\n"
- + " },\n" + " \"type\": \"string\"\n" + " },\n"
- + " \"created\": \"2020-01-22T09:38:15.436Z\",\n"
- + " \"deactivated\": \"2020-01-22T09:38:15.437Z\"\n" + " }\n" + " ]\n" + "}";
- List<DcaeInventoryResponse> responseObject = DcaeComponent.convertToDcaeInventoryResponse(dcaeFakeResponse);
+
+ List<DcaeInventoryResponse> responseObject = DcaeComponent
+ .convertToDcaeInventoryResponse(
+ ResourceFileUtils.getResourceAsString("example/dcae/inventory-response.json"));
assertThat(responseObject.get(0).getAsdcResourceId()).isEqualTo("testAsdcResourceId");
assertThat(responseObject.get(0).getAsdcServiceId()).isEqualTo("testAsdcServiceId");
assertThat(responseObject.get(0).getTypeName()).isEqualTo("testTypeName");
diff --git a/src/test/java/org/onap/policy/clamp/loop/DeployFlowTestItCase.java b/runtime/src/test/java/org/onap/policy/clamp/loop/DeployFlowTestItCase.java
index 4d02b10dc..4d02b10dc 100644
--- a/src/test/java/org/onap/policy/clamp/loop/DeployFlowTestItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/DeployFlowTestItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java b/runtime/src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java
index a73b2784b..a73b2784b 100644
--- a/src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java
diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java
index 6728d292c..6728d292c 100644
--- a/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java
index 7b0ab8614..7b0ab8614 100644
--- a/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItCase.java b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItCase.java
index e18dd2475..e18dd2475 100644
--- a/src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopServiceTestItCase.java b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopServiceTestItCase.java
index 010c4978a..74092727c 100644
--- a/src/test/java/org/onap/policy/clamp/loop/LoopServiceTestItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopServiceTestItCase.java
@@ -355,10 +355,10 @@ public class LoopServiceTestItCase {
saveTestLoopToDb();
Loop loop = loopService.getLoop(EXAMPLE_LOOP_NAME);
loopService.updateDcaeDeploymentFields(loop, "CLAMP_c5ce429a-f570-48c5-a7ea-53bed8f86f85",
- "https4://deployment-handler.onap:8443");
+ "https://deployment-handler.onap:8443");
loop = loopService.getLoop(EXAMPLE_LOOP_NAME);
assertThat(loop.getDcaeDeploymentId()).isEqualTo("CLAMP_c5ce429a-f570-48c5-a7ea-53bed8f86f85");
- assertThat(loop.getDcaeDeploymentStatusUrl()).isEqualTo("https4://deployment-handler.onap:8443");
+ assertThat(loop.getDcaeDeploymentStatusUrl()).isEqualTo("https://deployment-handler.onap:8443");
}
@Test
diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java
index 9dcd71ef1..9dcd71ef1 100644
--- a/src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java
diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItCase.java b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItCase.java
index d608075fc..dba7c39a9 100644
--- a/src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItCase.java
@@ -1,146 +1,146 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.util.List;
-import java.util.SortedSet;
-import javax.transaction.Transactional;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.onap.policy.clamp.clds.Application;
-import org.onap.policy.clamp.loop.template.LoopElementModel;
-import org.onap.policy.clamp.loop.template.LoopTemplate;
-import org.onap.policy.clamp.loop.template.LoopTemplateLoopElementModel;
-import org.onap.policy.clamp.loop.template.LoopTemplatesService;
-import org.onap.policy.clamp.loop.template.LoopType;
-import org.onap.policy.clamp.loop.template.PolicyModel;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = Application.class)
-public class LoopTemplatesServiceItCase {
-
- @Autowired
- LoopTemplatesService loopTemplatesService;
-
- private static final String POLICY_MODEL_TYPE_1 = "org.onap.test";
- private static final String VERSION = "1.0.0";
-
- private LoopElementModel getLoopElementModel(String yaml, String name, String loopElementType,
- String createdBy, PolicyModel policyModel) {
- LoopElementModel model = new LoopElementModel(name, loopElementType, yaml);
- model.setBlueprint("");
- model.setDcaeBlueprintId("");
- model.addPolicyModel(policyModel);
- return model;
- }
-
- private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version,
- String policyAcronym, String createdBy) {
- return new PolicyModel(policyType, policyModelTosca, version, policyAcronym);
- }
-
- private LoopTemplate getLoopTemplate(String name, String blueprint, String createdBy, Integer maxInstancesAllowed) {
- LoopTemplate template =
- new LoopTemplate(name, blueprint, maxInstancesAllowed, null);
- template.addLoopElementModel(getLoopElementModel("yaml", "microService1", "MicroService",
- createdBy, getPolicyModel(POLICY_MODEL_TYPE_1, "yaml", VERSION, "MS1", createdBy)));
- template.setAllowedLoopType(LoopType.OPEN);
- return template;
- }
-
- @Test
- @Transactional
- public void shouldSaveOrUpdateLoopTemplate() {
- LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
- LoopTemplate actualLoopTemplate =
- loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
-
- assertNotNull(actualLoopTemplate);
- assertThat(loopTemplate.getName()).isEqualTo("TemplateName");
- assertThat(loopTemplate.getAllowedLoopType()).isEqualTo(LoopType.OPEN);
- }
-
- @Test
- @Transactional
- public void shouldReturnAllLoopTemplates() {
- LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
- loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
- List<LoopTemplate> loopTemplateList = loopTemplatesService.getAllLoopTemplates();
-
- assertNotNull(loopTemplateList);
- }
-
- @Test
- @Transactional
- public void shouldReturnLoopTemplateNames() {
- LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
- loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
- List<String> loopTemplateNames = loopTemplatesService.getLoopTemplateNames();
-
- assertNotNull(loopTemplateNames);
- assertEquals("TemplateName", loopTemplateNames.get(0));
- }
-
- @Test
- @Transactional
- public void shouldReturnLoopTemplate() {
- LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
- loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
- LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");
-
- assertNotNull(actualLoopTemplate);
- assertThat(loopTemplate).isEqualTo(actualLoopTemplate);
- assertThat(loopTemplate.getName()).isEqualTo(actualLoopTemplate.getName());
- assertThat(loopTemplate.getMaximumInstancesAllowed())
- .isEqualTo(actualLoopTemplate.getMaximumInstancesAllowed());
- SortedSet<LoopTemplateLoopElementModel> loopElementModelsUsed =
- loopTemplate.getLoopElementModelsUsed();
- LoopTemplateLoopElementModel loopTemplateLoopElementModel = loopElementModelsUsed.first();
- assertThat(loopTemplateLoopElementModel.getLoopElementModel().getName())
- .isEqualTo("microService1");
- assertThat(loopTemplateLoopElementModel.getLoopTemplate().getName())
- .isEqualTo("TemplateName");
- assertNull(actualLoopTemplate.getBlueprint());
- assertNull(actualLoopTemplate.getModelService());
- }
-
- @Test
- @Transactional
- public void shouldDeleteLoopTemplate() {
- LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
- loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
- loopTemplatesService.deleteLoopTemplate("TemplateName");
- LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");
- assertNull(actualLoopTemplate);
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.loop;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.List;
+import java.util.SortedSet;
+import javax.transaction.Transactional;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.policy.clamp.clds.Application;
+import org.onap.policy.clamp.loop.template.LoopElementModel;
+import org.onap.policy.clamp.loop.template.LoopTemplate;
+import org.onap.policy.clamp.loop.template.LoopTemplateLoopElementModel;
+import org.onap.policy.clamp.loop.template.LoopTemplatesService;
+import org.onap.policy.clamp.loop.template.LoopType;
+import org.onap.policy.clamp.loop.template.PolicyModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = Application.class)
+public class LoopTemplatesServiceItCase {
+
+ @Autowired
+ LoopTemplatesService loopTemplatesService;
+
+ private static final String POLICY_MODEL_TYPE_1 = "org.onap.test";
+ private static final String VERSION = "1.0.0";
+
+ private LoopElementModel getLoopElementModel(String yaml, String name, String loopElementType,
+ String createdBy, PolicyModel policyModel) {
+ LoopElementModel model = new LoopElementModel(name, loopElementType, yaml);
+ model.setBlueprint("");
+ model.setDcaeBlueprintId("");
+ model.addPolicyModel(policyModel);
+ return model;
+ }
+
+ private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version,
+ String policyAcronym, String createdBy) {
+ return new PolicyModel(policyType, policyModelTosca, version, policyAcronym);
+ }
+
+ private LoopTemplate getLoopTemplate(String name, String blueprint, String createdBy, Integer maxInstancesAllowed) {
+ LoopTemplate template =
+ new LoopTemplate(name, blueprint, maxInstancesAllowed, null);
+ template.addLoopElementModel(getLoopElementModel("yaml", "microService1", "MicroService",
+ createdBy, getPolicyModel(POLICY_MODEL_TYPE_1, "yaml", VERSION, "MS1", createdBy)));
+ template.setAllowedLoopType(LoopType.OPEN);
+ return template;
+ }
+
+ @Test
+ @Transactional
+ public void shouldSaveOrUpdateLoopTemplate() {
+ LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
+ LoopTemplate actualLoopTemplate =
+ loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
+
+ assertNotNull(actualLoopTemplate);
+ assertThat(loopTemplate.getName()).isEqualTo("TemplateName");
+ assertThat(loopTemplate.getAllowedLoopType()).isEqualTo(LoopType.OPEN);
+ }
+
+ @Test
+ @Transactional
+ public void shouldReturnAllLoopTemplates() {
+ LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
+ loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
+ List<LoopTemplate> loopTemplateList = loopTemplatesService.getAllLoopTemplates();
+
+ assertNotNull(loopTemplateList);
+ }
+
+ @Test
+ @Transactional
+ public void shouldReturnLoopTemplateNames() {
+ LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
+ loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
+ List<String> loopTemplateNames = loopTemplatesService.getLoopTemplateNames();
+
+ assertNotNull(loopTemplateNames);
+ assertEquals("TemplateName", loopTemplateNames.get(0));
+ }
+
+ @Test
+ @Transactional
+ public void shouldReturnLoopTemplate() {
+ LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
+ loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
+ LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");
+
+ assertNotNull(actualLoopTemplate);
+ assertThat(loopTemplate).isEqualTo(actualLoopTemplate);
+ assertThat(loopTemplate.getName()).isEqualTo(actualLoopTemplate.getName());
+ assertThat(loopTemplate.getMaximumInstancesAllowed())
+ .isEqualTo(actualLoopTemplate.getMaximumInstancesAllowed());
+ SortedSet<LoopTemplateLoopElementModel> loopElementModelsUsed =
+ loopTemplate.getLoopElementModelsUsed();
+ LoopTemplateLoopElementModel loopTemplateLoopElementModel = loopElementModelsUsed.first();
+ assertThat(loopTemplateLoopElementModel.getLoopElementModel().getName())
+ .isEqualTo("microService1");
+ assertThat(loopTemplateLoopElementModel.getLoopTemplate().getName())
+ .isEqualTo("TemplateName");
+ assertNull(actualLoopTemplate.getBlueprint());
+ assertNull(actualLoopTemplate.getModelService());
+ }
+
+ @Test
+ @Transactional
+ public void shouldDeleteLoopTemplate() {
+ LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
+ loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
+ loopTemplatesService.deleteLoopTemplate("TemplateName");
+ LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");
+ assertNull(actualLoopTemplate);
+ }
+
+}
diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java
index 0fc4b0b5c..0fc4b0b5c 100644
--- a/src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java
diff --git a/src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java b/runtime/src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java
index ea8785855..5b4e405bb 100644
--- a/src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -39,6 +39,7 @@ import org.onap.policy.clamp.loop.template.LoopTemplate;
import org.onap.policy.clamp.loop.template.PolicyModel;
import org.onap.policy.clamp.policy.microservice.MicroServicePolicy;
import org.onap.policy.clamp.policy.operational.OperationalPolicy;
+import org.skyscreamer.jsonassert.JSONAssert;
public class PolicyComponentTest {
@@ -289,9 +290,7 @@ public class PolicyComponentTest {
loopTemplate.setDcaeBlueprintId("UUID-blueprint");
loopTest.setLoopTemplate(loopTemplate);
- String payload = PolicyComponent.createPoliciesPayloadPdpGroup(loopTest, "POST");
- String expectedRes = ResourceFileUtils.getResourceAsString("tosca/pdp-group-policy-payload.json");
-
- assertThat(payload).isEqualTo(expectedRes);
+ JSONAssert.assertEquals(ResourceFileUtils.getResourceAsString("example/policy/pdp-group-policy-payload.json"),
+ PolicyComponent.createPoliciesPayloadPdpGroup(loopTest, "POST"), false);
}
}
diff --git a/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java b/runtime/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java
index b6c60d84c..a2563b8d3 100644
--- a/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java
@@ -121,24 +121,6 @@ public class PolicyModelServiceItCase {
}
/**
- * This tests a create Policy Model from Tosca.
- *
- * @throws IOException In case of failure
- */
- @Test
- @Transactional
- public void shouldCreatePolicyModelFromTosca() throws IOException {
- String toscaModelYaml =
- ResourceFileUtils.getResourceAsString("tosca/tosca_with_metadata.yaml");
- PolicyModel policyModel = policyModelsService.createNewPolicyModelFromTosca(toscaModelYaml);
-
- assertThat(policyModelsService.getAllPolicyModels()).contains(policyModel);
-
- assertThat(policyModelsService.getPolicyModelTosca(policyModel.getPolicyModelType(),
- policyModel.getVersion())).contains(toscaModelYaml);
- }
-
- /**
* This tests the getPolicyModelJson. A json is expected.
*
* @throws IOException In case of failure
@@ -162,27 +144,6 @@ public class PolicyModelServiceItCase {
}
/**
- * This tests a update Policy Model.
- *
- * @throws IOException In case of failure
- */
- @Test
- @Transactional
- public void shouldUpdatePolicyModel() throws IOException {
- String toscaModelYaml =
- ResourceFileUtils.getResourceAsString("tosca/tosca_with_metadata.yaml");
- PolicyModel policyModel = policyModelsService.createNewPolicyModelFromTosca(toscaModelYaml);
- String newToscaModelYaml =
- ResourceFileUtils.getResourceAsString("tosca/tosca_metadata_clamp_possible_values.yaml");
-
- PolicyModel updatedPolicyModel = policyModelsService.updatePolicyModelTosca(
- policyModel.getPolicyModelType(), policyModel.getVersion(), newToscaModelYaml);
-
- assertThat(updatedPolicyModel.getPolicyModelTosca()).isEqualTo(newToscaModelYaml);
-
- }
-
- /**
* This tests a getAllPolicyModelTypes get.
*/
@Test
diff --git a/src/test/java/org/onap/policy/clamp/loop/ServiceTest.java b/runtime/src/test/java/org/onap/policy/clamp/loop/ServiceTest.java
index 8f28299fd..8f28299fd 100644
--- a/src/test/java/org/onap/policy/clamp/loop/ServiceTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/ServiceTest.java
diff --git a/src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java b/runtime/src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java
index f7f6baa0c..f7f6baa0c 100644
--- a/src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java
diff --git a/src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerTestItCase.java b/runtime/src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerTestItCase.java
index 657adf1d1..657adf1d1 100644
--- a/src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerTestItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerTestItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java b/runtime/src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java
index 4bb850c35..4bb850c35 100644
--- a/src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java
diff --git a/src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java b/runtime/src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java
index 136430c8f..136430c8f 100644
--- a/src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java
diff --git a/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java
new file mode 100644
index 000000000..30d4ebe28
--- /dev/null
+++ b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java
@@ -0,0 +1,231 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.policy.pdpgroup;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.policy.clamp.clds.util.JsonUtils;
+import org.onap.policy.clamp.clds.util.ResourceFileUtils;
+import org.onap.policy.clamp.loop.template.PolicyModel;
+import org.onap.policy.models.pdp.concepts.PdpGroup;
+import org.onap.policy.models.pdp.concepts.PdpGroups;
+import org.onap.policy.models.pdp.concepts.PdpSubGroup;
+import org.onap.policy.models.pdp.enums.PdpState;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+
+/**
+ * This test class validates the PdpGroupAnalyzer class.
+ */
+public class PdpGroupAnalyzerTest {
+
+ private static PdpGroups pdpGroups;
+ private static PdpGroup pdpGroup1;
+ private static PdpGroup pdpGroup2;
+ private static PdpGroup pdpGroup3;
+ private static PdpGroup pdpGroup4;
+
+ private static PdpSubGroup pdpSubgroupBad;
+ private static PdpSubGroup pdpSubgroup1;
+ private static PdpSubGroup pdpSubgroup2;
+ private static PdpSubGroup pdpSubgroup3;
+
+ /**
+ * This method preloads the pdpGroups for the tests.
+ */
+ @BeforeClass
+ public static void setupPdpGroup() {
+ // Create Pdp Groups
+ // Those that do not work first
+ pdpSubgroupBad = new PdpSubGroup();
+ pdpSubgroupBad.setPdpType("subGroupBad");
+ pdpSubgroupBad.setSupportedPolicyTypes(Arrays.asList(new ToscaConceptIdentifier("org.onap.test", "2.0.0"),
+ new ToscaConceptIdentifier("org.onap.test.*", "1.0.0"),
+ new ToscaConceptIdentifier("org.onip.testos", "1.0.0"),
+ new ToscaConceptIdentifier("org.onap.testos3", "2.0.0"),
+ new ToscaConceptIdentifier("org.onap.tes", "1.0.0"),
+ new ToscaConceptIdentifier("org.onap", "1.0.0")
+ ));
+ pdpSubgroupBad.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap", "1.0.0"),
+ new ToscaConceptIdentifier("org.onap.testos", "2.0.0"),
+ new ToscaConceptIdentifier("org.onap.testos", "1.0.1"),
+ new ToscaConceptIdentifier("org.onap.testos.new", "1.0.0"),
+ new ToscaConceptIdentifier("org.onap.", "1.0.0")));
+ pdpSubgroupBad.setPdpInstances(Collections.emptyList());
+
+ pdpSubgroup1 = new PdpSubGroup();
+ pdpSubgroup1.setPdpType("subGroup1");
+ pdpSubgroup1.setSupportedPolicyTypes(
+ Arrays.asList(new ToscaConceptIdentifier("org.onap.*", "1.0.0")));
+ pdpSubgroup1.setPdpInstances(Collections.emptyList());
+
+ pdpSubgroup2 = new PdpSubGroup();
+ pdpSubgroup2.setPdpType("subGroup2");
+ pdpSubgroup2.setSupportedPolicyTypes(Arrays.asList(new ToscaConceptIdentifier("org.onap.test", "1.0.0")));
+ pdpSubgroup2.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap.testos", "1.0.0")));
+ pdpSubgroup2.setPdpInstances(Collections.emptyList());
+
+ pdpSubgroup3 = new PdpSubGroup();
+ pdpSubgroup3.setPdpType("subGroup3");
+ pdpSubgroup3.setSupportedPolicyTypes(Arrays.asList(new ToscaConceptIdentifier("org.onap.test*", "1.0.0")));
+ pdpSubgroup3.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")));
+ pdpSubgroup3.setPdpInstances(Collections.emptyList());
+
+ // Should match pdpSubgroup1
+ pdpGroup1 = new PdpGroup();
+ pdpGroup1.setName("pdpGroup1");
+ pdpGroup1.setPdpGroupState(PdpState.ACTIVE);
+ pdpGroup1.setPdpSubgroups(Arrays.asList(pdpSubgroup1, pdpSubgroupBad));
+
+ // Should match pdpSubgroup1, pdpSubgroup2, pdpSubgroup3
+ // Should match also for the policy (pdpSubgroup2)
+ pdpGroup2 = new PdpGroup();
+ pdpGroup2.setName("pdpGroup2");
+ pdpGroup2.setPdpGroupState(PdpState.ACTIVE);
+ pdpGroup2.setPdpSubgroups(Arrays.asList(pdpSubgroup1, pdpSubgroup2, pdpSubgroup3, pdpSubgroupBad));
+
+ /// Should not match
+ pdpGroup3 = new PdpGroup();
+ pdpGroup3.setName("pdpGroup3");
+ pdpGroup3.setPdpGroupState(PdpState.ACTIVE);
+ pdpGroup3.setPdpSubgroups(Arrays.asList(pdpSubgroupBad));
+
+ // Should not match
+ pdpGroup4 = new PdpGroup();
+ pdpGroup4.setName("pdpGroup4");
+ pdpGroup4.setPdpGroupState(PdpState.TERMINATED);
+ pdpGroup4.setPdpSubgroups(Arrays.asList(pdpSubgroup1));
+
+ pdpGroups = new PdpGroups();
+ pdpGroups.setGroups(Arrays.asList(pdpGroup1, pdpGroup2, pdpGroup3, pdpGroup4));
+ }
+
+ @Test
+ public void testStructuresConstruction() {
+ PdpGroupsAnalyzer pdpGroupsAnalyzer = new PdpGroupsAnalyzer(pdpGroups);
+ assertThat(pdpGroupsAnalyzer).isNotNull();
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()).hasSize(6);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0"))).hasSize(3);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup1").getPdpSubgroups().size())
+ .isEqualTo(1);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup1").getPdpSubgroups())
+ .contains(pdpSubgroupBad);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup2").getPdpSubgroups().size())
+ .isEqualTo(2);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup2").getPdpSubgroups())
+ .contains(pdpSubgroup3);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup2").getPdpSubgroups())
+ .contains(pdpSubgroupBad);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup3").getPdpSubgroups().size())
+ .isEqualTo(1);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup3").getPdpSubgroups())
+ .contains(pdpSubgroupBad);
+
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.0"))).hasSize(1);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.0")).get("pdpGroup2").getPdpSubgroups())
+ .hasSize(1);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.0")).get("pdpGroup2").getPdpSubgroups())
+ .contains(pdpSubgroup2);
+
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1"))).hasSize(3);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup1").getPdpSubgroups())
+ .hasSize(1);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup1").getPdpSubgroups())
+ .contains(pdpSubgroupBad);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup2").getPdpSubgroups())
+ .hasSize(1);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup2").getPdpSubgroups())
+ .contains(pdpSubgroupBad);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup3").getPdpSubgroups())
+ .hasSize(1);
+ assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()
+ .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup3").getPdpSubgroups())
+ .contains(pdpSubgroupBad);
+ }
+
+ @Test
+ public void testGetSupportedPdpGroupsForPolicy() throws IOException {
+ PolicyModel policyModel = new PolicyModel();
+ policyModel.setCreatedBy("user");
+ policyModel.setPolicyAcronym("TEST");
+ policyModel.setPolicyModelTosca("yaml");
+ policyModel.setPolicyModelType("org.onap.test");
+ policyModel.setUpdatedBy("user");
+ policyModel.setVersion("1.0.0");
+
+ PdpGroupsAnalyzer pdpGroupsAnalyzer = new PdpGroupsAnalyzer(pdpGroups);
+ assertThat(pdpGroupsAnalyzer).isNotNull();
+
+ assertThat(
+ JsonUtils.GSON.toJson(pdpGroupsAnalyzer.getPdpGroupsForPolicy("org.onap.testos", "2.0.0")))
+ .isEqualTo(ResourceFileUtils.getResourceAsString("example/policy/pdp-deployment-testos-2_0_0.json"));
+
+ assertThat(
+ JsonUtils.GSON.toJson(pdpGroupsAnalyzer.getPdpGroupsForPolicy("org.onap.testos", "1.0.0")))
+ .isEqualTo(ResourceFileUtils.getResourceAsString("example/policy/pdp-deployment-testos-1_0_0.json"));
+
+ assertThat(
+ pdpGroupsAnalyzer.getPdpGroupsForPolicy("org.onap.donotexist", "1.0.0"))
+ .isNull();
+ }
+
+ @Test
+ public void testUpdatePdpGroupOfPolicyModels() {
+ // Create policyModel
+ PolicyModel policyModel = new PolicyModel();
+ policyModel.setCreatedBy("user");
+ policyModel.setPolicyAcronym("TEST");
+ policyModel.setPolicyModelTosca("yaml");
+ policyModel.setPolicyModelType("org.onap.test");
+ policyModel.setUpdatedBy("user");
+ policyModel.setVersion("1.0.0");
+ PdpGroupsAnalyzer.updatePdpGroupOfPolicyModels(Arrays.asList(policyModel), pdpGroups);
+
+ assertThat(policyModel.getPolicyPdpGroup()).hasToString(
+ "{\"supportedPdpGroups\":[{\"pdpGroup1\":[\"subGroup1\"]},"
+ + "{\"pdpGroup2\":[\"subGroup1\",\"subGroup2\",\"subGroup3\"]}]}");
+ }
+}
diff --git a/ui-react/src/api/PoliciesListCache.js b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java
index 30c9348d0..f3c3fc6cd 100644
--- a/ui-react/src/api/PoliciesListCache.js
+++ b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java
@@ -1,34 +1,33 @@
-/*-
+/*
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2021 AT&T Intellectual Property. All rights
- * reserved.
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
+ * ============LICENSE_END=========================================================
*/
-export default class PoliciesListCache {
- policiesJsonCache;
+package org.onap.policy.clamp.policy.pdpgroup;
- constructor(policiesJson) {
- this.policiesJsonCache=policiesJson;
- }
+import org.junit.Test;
+import org.onap.policy.clamp.policy.pdpgroup.PdpGroupPayloadException;
+import org.onap.policy.common.utils.test.ExceptionsTester;
+
+public class PdpGroupPayloadExceptionTest extends ExceptionsTester {
- getAllPolicies() {
- return this.policiesJsonCache["policies"];
+ @Test
+ public void testPdpGroupPayloadException() {
+ test(PdpGroupPayloadException.class);
}
}
diff --git a/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java
new file mode 100644
index 000000000..34674e3ec
--- /dev/null
+++ b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java
@@ -0,0 +1,75 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.policy.pdpgroup;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import java.io.IOException;
+import org.junit.Test;
+import org.onap.policy.clamp.clds.util.ResourceFileUtils;
+import org.skyscreamer.jsonassert.JSONAssert;
+
+/**
+ * This class tests the PdpGroupPayload features.
+ */
+public class PdpGroupPayloadTest {
+
+ @Test
+ public void testGeneratePdpGroupPayload() throws IOException, PdpGroupPayloadException {
+ JsonArray operations = new JsonArray();
+ operations.add("POST/pdpgroup1/pdpsubgroup1/policyname1/1.0.0");
+ operations.add("POST/pdpgroup1/pdpsubgroup1/policyname2/1.0.0");
+ operations.add("POST/pdpgroup1/pdpsubgroup1/policyname1/2.0.0");
+ operations.add("DELETE/pdpgroup2/pdpsubgroup2/policyname1/1.0.0");
+ operations.add("POST/pdpgroup2/pdpsubgroup2/policyname1/2.0.0");
+ operations.add("DELETE/pdpgroup2/pdpsubgroup2/policyname2/1.0.0");
+ JsonObject listOfOperations = new JsonObject();
+ listOfOperations.add(PdpGroupPayload.PDP_ACTIONS, operations);
+
+ PdpGroupPayload pdpGroupPayload = new PdpGroupPayload(listOfOperations);
+ JSONAssert.assertEquals(
+ ResourceFileUtils.getResourceAsString("example/policy/pdp-group-multi-policies-payload.json"),
+ pdpGroupPayload.generatePdpGroupPayload(), false);
+ }
+
+ @Test
+ public void testGeneratePdpGroupPayload_WithEmptyList() throws PdpGroupPayloadException {
+ JsonArray operations = new JsonArray();
+ JsonObject listOfOperations = new JsonObject();
+ listOfOperations.add(PdpGroupPayload.PDP_ACTIONS, operations);
+
+ PdpGroupPayload pdpGroupPayload = new PdpGroupPayload(listOfOperations);
+ JSONAssert.assertEquals("{}", pdpGroupPayload.generatePdpGroupPayload(), false);
+ }
+
+ @Test(expected = PdpGroupPayloadException.class)
+ public void testUpdatePdpGroupMap_WithEmptyEntry() throws PdpGroupPayloadException {
+ JsonArray operations = new JsonArray();
+ operations.add("");
+ JsonObject listOfOperations = new JsonObject();
+ listOfOperations.add(PdpGroupPayload.PDP_ACTIONS, operations);
+
+ PdpGroupPayload pdpGroupPayload = new PdpGroupPayload(listOfOperations);
+ }
+}
diff --git a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java
index 7b8cbd824..be7a9d674 100644
--- a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java
@@ -93,20 +93,10 @@ public class PoliciesPdpMergerTest {
}
@Test
- public void testUpdatePdpGroupOfPolicyModels() throws IOException {
+ public void testMergePoliciesAndPdpGroupStates() throws IOException {
JSONAssert.assertEquals(ResourceFileUtils.getResourceAsString("example/policy/policy-merger.json"),
PoliciesPdpMerger.mergePoliciesAndPdpGroupStates(
ResourceFileUtils.getResourceAsString("http-cache/example/policy/api/v1/policies/.file"),
pdpGroupsJson).toString(), true);
}
-
- @Test
- public void testRemovePdpStatesOnePolicy() throws IOException {
- JsonObject policiesList = PoliciesPdpMerger.removePdpStatesOnePolicy(JsonUtils.GSON.fromJson(
- ResourceFileUtils.getResourceAsString("example/policy/single-policy-enriched.json"), JsonObject.class));
-
- assertThat(policiesList.get(PdpGroupsAnalyzer.ASSIGNED_PDP_GROUPS_INFO)).isNull();
- assertThat(policiesList.get(PdpGroupsAnalyzer.SUPPORTED_PDP_GROUPS_INFO)).isNull();
- assertThat(policiesList.size()).isEqualTo(6);
- }
}
diff --git a/src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItCase.java b/runtime/src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItCase.java
index fdde53a21..fdde53a21 100644
--- a/src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItCase.java
diff --git a/src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java b/runtime/src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java
index 83e894130..7fd0cb91d 100644
--- a/src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java
@@ -1,24 +1,24 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END============================================
* ===================================================================
- *
+ *
*/
package org.onap.policy.clamp.util;
@@ -48,5 +48,8 @@ public class PassDecoderTest {
public final void testDecryption() throws Exception {
String decodedPass = PassDecoder.decode(encrypted, "classpath:clds/aaf/org.onap.clamp.keyfile");
assertEquals(decodedPass, "China in the Spring");
+ assertEquals("Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U", PassDecoder
+ .decode("enc:JPV4p067JlSXt2Fet9bfuI8JpkS4ZGYVcgypcPs98gXjgjCjTze_d3JxqmlKaaakdiOjIcEC_MJh6-5pJTLgdc",
+ "classpath:clds/aaf/org.onap.clamp.keyfile"));
}
}
diff --git a/src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java b/runtime/src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java
index 604ce55db..604ce55db 100644
--- a/src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java
diff --git a/src/test/resources/application.properties b/runtime/src/test/resources/application.properties
index 2a4caee98..bc513e9e4 100644
--- a/src/test/resources/application.properties
+++ b/runtime/src/test/resources/application.properties
@@ -1,6 +1,6 @@
###
# ============LICENSE_START=======================================================
-# ONAP CLAMP
+# ONAP POLICY-CLAMP
# ================================================================================
# Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights
# reserved.
@@ -31,6 +31,8 @@ server.port=${clamp.it.tests.http}
#server.ssl.key-store-password=pass
#server.ssl.key-password=pass
+clamp.config.keyFile=classpath:clds/aaf/org.onap.clamp.keyfile
+
### In order to be user friendly when HTTPS is enabled,
### you can add another HTTP port that will be automatically redirected to HTTPS
### by enabling this parameter (server.http.port) and set it to another port (80 or 8080, 8090, etc ...)
@@ -79,10 +81,11 @@ camel.defaultthreadpool.maxpoolsize=20
camel.defaultthreadpool.maxqueuesize=1000
camel.defaultthreadpool.keepaliveTime=60
camel.defaultthreadpool.rejectpolicy=CallerRuns
-#camel.springboot.xmlRoutes = false
-camel.springboot.xmlRoutes=classpath:/clds/camel/routes/*.xml
-camel.springboot.xmlRests=classpath:/clds/camel/rest/*.xml
-#camel.springboot.typeConversion = false
+camel.springboot.xml-routes=classpath:/clds/camel/routes/*.xml
+camel.springboot.xml-rests=classpath:/clds/camel/rest/*.xml
+camel.springboot.backlog-tracing=true
+camel.springboot.tracing=true
+camel.springboot.message-history=true
#clds datasource connection details
spring.datasource.driverClassName=org.mariadb.jdbc.Driver
@@ -128,12 +131,15 @@ clamp.config.files.cldsUsers=classpath:/clds/clds-users.json
clamp.config.files.globalProperties=classpath:/clds/templates/globalProperties.json
clamp.config.files.sdcController=classpath:/clds/sdc-controllers-config.json
+clamp.config.httpclient.socketTimeout=20000
+clamp.config.httpclient.connectTimeout=10000
+
#
# Configuration Settings for Policy Engine Components
-clamp.config.policy.api.url=http4://localhost:${docker.http-cache.port.host}
+clamp.config.policy.api.url=http://localhost:${docker.http-cache.port.host}
clamp.config.policy.api.userName=healthcheck
clamp.config.policy.api.password=zb!XztG34
-clamp.config.policy.pap.url=http4://localhost:${docker.http-cache.port.host}
+clamp.config.policy.pap.url=http://localhost:${docker.http-cache.port.host}
clamp.config.policy.pap.userName=healthcheck
clamp.config.policy.pap.password=zb!XztG34
@@ -142,12 +148,12 @@ clamp.config.policy.pap.password=zb!XztG34
clamp.config.sdc.csarFolder = ${project.build.directory}/sdc-tests
#DCAE Inventory Url Properties
-clamp.config.dcae.inventory.url=http4://localhost:${docker.http-cache.port.host}
+clamp.config.dcae.inventory.url=http://localhost:${docker.http-cache.port.host}
clamp.config.dcae.intentory.retry.interval=100
clamp.config.dcae.intentory.retry.limit=1
#DCAE Deployment Url Properties
-clamp.config.dcae.deployment.url=http4://localhost:${docker.http-cache.port.host}
+clamp.config.dcae.deployment.url=http://localhost:${docker.http-cache.port.host}
clamp.config.dcae.deployment.userName=test
clamp.config.dcae.deployment.password=test
@@ -164,7 +170,7 @@ clamp.config.security.permission.instance=dev
clamp.config.security.authentication.class=org.onap.aaf.cadi.principal.X509Principal, org.onap.aaf.cadi.principal.CachedBasicPrincipal
# Configuration settings for CDS
-clamp.config.cds.url=http4://localhost:${docker.http-cache.port.host}
+clamp.config.cds.url=http://localhost:${docker.http-cache.port.host}
clamp.config.cds.userName=ccsdkapps
clamp.config.cds.password=ccsdkapps
diff --git a/src/test/resources/clds/blueprint-with-microservice-chain.yaml b/runtime/src/test/resources/clds/blueprint-with-microservice-chain.yaml
index 0e9e4bc8c..0e9e4bc8c 100644
--- a/src/test/resources/clds/blueprint-with-microservice-chain.yaml
+++ b/runtime/src/test/resources/clds/blueprint-with-microservice-chain.yaml
diff --git a/src/test/resources/clds/clds-parse-exception.json b/runtime/src/test/resources/clds/clds-parse-exception.json
index 1c06a3947..1c06a3947 100644
--- a/src/test/resources/clds/clds-parse-exception.json
+++ b/runtime/src/test/resources/clds/clds-parse-exception.json
diff --git a/src/test/resources/clds/clds-users-incomplete-permissions.json b/runtime/src/test/resources/clds/clds-users-incomplete-permissions.json
index 9e3534ff4..9e3534ff4 100644
--- a/src/test/resources/clds/clds-users-incomplete-permissions.json
+++ b/runtime/src/test/resources/clds/clds-users-incomplete-permissions.json
diff --git a/src/test/resources/clds/clds-users-no-permission.json b/runtime/src/test/resources/clds/clds-users-no-permission.json
index ac91540f2..ac91540f2 100644
--- a/src/test/resources/clds/clds-users-no-permission.json
+++ b/runtime/src/test/resources/clds/clds-users-no-permission.json
diff --git a/src/test/resources/clds/clds-users-two-users.json b/runtime/src/test/resources/clds/clds-users-two-users.json
index b3721946a..b3721946a 100644
--- a/src/test/resources/clds/clds-users-two-users.json
+++ b/runtime/src/test/resources/clds/clds-users-two-users.json
diff --git a/src/test/resources/clds/new-microservice.yaml b/runtime/src/test/resources/clds/new-microservice.yaml
index 70c1eda46..70c1eda46 100644
--- a/src/test/resources/clds/new-microservice.yaml
+++ b/runtime/src/test/resources/clds/new-microservice.yaml
diff --git a/src/test/resources/clds/policy-merger.json b/runtime/src/test/resources/clds/policy-merger.json
index 5c6bd5b6b..5c6bd5b6b 100644
--- a/src/test/resources/clds/policy-merger.json
+++ b/runtime/src/test/resources/clds/policy-merger.json
diff --git a/src/test/resources/clds/sdc-controller-config-NULL.json b/runtime/src/test/resources/clds/sdc-controller-config-NULL.json
index bf310c706..bf310c706 100644
--- a/src/test/resources/clds/sdc-controller-config-NULL.json
+++ b/runtime/src/test/resources/clds/sdc-controller-config-NULL.json
diff --git a/src/test/resources/clds/sdc-controller-config-TLS.json b/runtime/src/test/resources/clds/sdc-controller-config-TLS.json
index 99366b765..4d5f02945 100644
--- a/src/test/resources/clds/sdc-controller-config-TLS.json
+++ b/runtime/src/test/resources/clds/sdc-controller-config-TLS.json
@@ -4,11 +4,11 @@
"consumerId": "consumerId",
"environmentName": "environmentName",
"sdcAddress": "hostname:8080",
- "password": "bb3871669d893c7fb8aaacda31b77b4f537E67A081C2726889548ED7BC4C2DE6",
+ "password": "QpF2TcrdRSFADqDxH1HwDYdYUIbMxOj-TrGd6Vqvwzd",
"pollingInterval":10,
"pollingTimeout":30,
"activateServerTLSAuth": true,
- "keyStorePassword":"bb3871669d893c7fb8aaacda31b77b4f537E67A081C2726889548ED7BC4C2DE6",
+ "keyStorePassword":"QpF2TcrdRSFADqDxH1HwDYdYUIbMxOj-TrGd6Vqvwzd",
"keyStorePath": "/test",
"messageBusAddresses":["localhost"]
}
diff --git a/src/test/resources/clds/sdc-controller-config-bad.json b/runtime/src/test/resources/clds/sdc-controller-config-bad.json
index 194ff5f4b..194ff5f4b 100644
--- a/src/test/resources/clds/sdc-controller-config-bad.json
+++ b/runtime/src/test/resources/clds/sdc-controller-config-bad.json
diff --git a/src/test/resources/clds/sdc-controller-config-empty-encrypted.json b/runtime/src/test/resources/clds/sdc-controller-config-empty-encrypted.json
index 2a70b9edc..2a70b9edc 100644
--- a/src/test/resources/clds/sdc-controller-config-empty-encrypted.json
+++ b/runtime/src/test/resources/clds/sdc-controller-config-empty-encrypted.json
diff --git a/src/test/resources/clds/sdc-controllers-config-bad.json b/runtime/src/test/resources/clds/sdc-controllers-config-bad.json
index 0b417b745..0b417b745 100644
--- a/src/test/resources/clds/sdc-controllers-config-bad.json
+++ b/runtime/src/test/resources/clds/sdc-controllers-config-bad.json
diff --git a/src/test/resources/clds/sdc-controllers-config-missing-param.json b/runtime/src/test/resources/clds/sdc-controllers-config-missing-param.json
index d99ed5801..d99ed5801 100644
--- a/src/test/resources/clds/sdc-controllers-config-missing-param.json
+++ b/runtime/src/test/resources/clds/sdc-controllers-config-missing-param.json
diff --git a/runtime/src/test/resources/clds/sdc-controllers-config.json b/runtime/src/test/resources/clds/sdc-controllers-config.json
new file mode 100644
index 000000000..aafd7d61d
--- /dev/null
+++ b/runtime/src/test/resources/clds/sdc-controllers-config.json
@@ -0,0 +1,30 @@
+{
+ "sdc-connections": {
+ "sdc-controller1": {
+ "user": "User1",
+ "consumerGroup": "consumerGroup1",
+ "consumerId": "consumerId1",
+ "environmentName": "environmentName1",
+ "sdcAddress": "localhost:${docker.http-cache.port.host}",
+ "password": "enc:QpF2TcrdRSFADqDxH1HwDYdYUIbMxOj-TrGd6Vqvwzd",
+ "pollingInterval": 10,
+ "pollingTimeout": 30,
+ "messageBusAddresses": [
+ "localhost"
+ ]
+ },
+ "sdc-controller2": {
+ "user": "User2",
+ "consumerGroup": "consumerGroup2",
+ "consumerId": "consumerId2",
+ "environmentName": "environmentName2",
+ "sdcAddress": "localhost:${docker.http-cache.port.host}",
+ "password": "enc:QpF2TcrdRSFADqDxH1HwDYdYUIbMxOj-TrGd6Vqvwzd",
+ "pollingInterval": 10,
+ "pollingTimeout": 30,
+ "messageBusAddresses": [
+ "localhost"
+ ]
+ }
+ }
+}
diff --git a/src/test/resources/clds/single-microservice-fragment-invalid.yaml b/runtime/src/test/resources/clds/single-microservice-fragment-invalid.yaml
index 2c1680717..2c1680717 100644
--- a/src/test/resources/clds/single-microservice-fragment-invalid.yaml
+++ b/runtime/src/test/resources/clds/single-microservice-fragment-invalid.yaml
diff --git a/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml b/runtime/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml
index ae31fb16a..ae31fb16a 100644
--- a/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml
+++ b/runtime/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml
diff --git a/src/test/resources/clds/single-microservice-fragment-without-name.yaml b/runtime/src/test/resources/clds/single-microservice-fragment-without-name.yaml
index f9ac53cac..f9ac53cac 100644
--- a/src/test/resources/clds/single-microservice-fragment-without-name.yaml
+++ b/runtime/src/test/resources/clds/single-microservice-fragment-without-name.yaml
diff --git a/src/test/resources/clds/single-microservice-fragment-without-properties.yaml b/runtime/src/test/resources/clds/single-microservice-fragment-without-properties.yaml
index a34ccc6d4..a34ccc6d4 100644
--- a/src/test/resources/clds/single-microservice-fragment-without-properties.yaml
+++ b/runtime/src/test/resources/clds/single-microservice-fragment-without-properties.yaml
diff --git a/src/test/resources/clds/single-microservice-fragment-without-relationships.yaml b/runtime/src/test/resources/clds/single-microservice-fragment-without-relationships.yaml
index 0354acd69..0354acd69 100644
--- a/src/test/resources/clds/single-microservice-fragment-without-relationships.yaml
+++ b/runtime/src/test/resources/clds/single-microservice-fragment-without-relationships.yaml
diff --git a/src/test/resources/clds/templates/dcae-deployment-template.json b/runtime/src/test/resources/clds/templates/dcae-deployment-template.json
index d4891747e..d4891747e 100644
--- a/src/test/resources/clds/templates/dcae-deployment-template.json
+++ b/runtime/src/test/resources/clds/templates/dcae-deployment-template.json
diff --git a/src/test/resources/clds/templates/dcae-template.json b/runtime/src/test/resources/clds/templates/dcae-template.json
index b76baf2d4..b76baf2d4 100644
--- a/src/test/resources/clds/templates/dcae-template.json
+++ b/runtime/src/test/resources/clds/templates/dcae-template.json
diff --git a/src/test/resources/clds/templates/globalProperties.json b/runtime/src/test/resources/clds/templates/globalProperties.json
index 067063ea2..067063ea2 100644
--- a/src/test/resources/clds/templates/globalProperties.json
+++ b/runtime/src/test/resources/clds/templates/globalProperties.json
diff --git a/src/test/resources/clds/templates/sdc-decode-service_ids.json b/runtime/src/test/resources/clds/templates/sdc-decode-service_ids.json
index 9e26dfeeb..9e26dfeeb 100644
--- a/src/test/resources/clds/templates/sdc-decode-service_ids.json
+++ b/runtime/src/test/resources/clds/templates/sdc-decode-service_ids.json
diff --git a/src/test/resources/clds/templates/sdc-template.json b/runtime/src/test/resources/clds/templates/sdc-template.json
index 9e26dfeeb..9e26dfeeb 100644
--- a/src/test/resources/clds/templates/sdc-template.json
+++ b/runtime/src/test/resources/clds/templates/sdc-template.json
diff --git a/src/test/resources/clds/templates/tca-policy-template.json b/runtime/src/test/resources/clds/templates/tca-policy-template.json
index 559aacb29..559aacb29 100644
--- a/src/test/resources/clds/templates/tca-policy-template.json
+++ b/runtime/src/test/resources/clds/templates/tca-policy-template.json
diff --git a/src/test/resources/clds/templates/tca-template.json b/runtime/src/test/resources/clds/templates/tca-template.json
index 892fc0d62..892fc0d62 100644
--- a/src/test/resources/clds/templates/tca-template.json
+++ b/runtime/src/test/resources/clds/templates/tca-template.json
diff --git a/src/test/resources/clds/templates/tca-thresholds-template.json b/runtime/src/test/resources/clds/templates/tca-thresholds-template.json
index b67e96321..b67e96321 100644
--- a/src/test/resources/clds/templates/tca-thresholds-template.json
+++ b/runtime/src/test/resources/clds/templates/tca-thresholds-template.json
diff --git a/src/test/resources/clds/templates/ui-location-default.json b/runtime/src/test/resources/clds/templates/ui-location-default.json
index c0043d988..c0043d988 100644
--- a/src/test/resources/clds/templates/ui-location-default.json
+++ b/runtime/src/test/resources/clds/templates/ui-location-default.json
diff --git a/src/test/resources/clds/util/file.xml b/runtime/src/test/resources/clds/util/file.xml
index 81560bab4..81560bab4 100644
--- a/src/test/resources/clds/util/file.xml
+++ b/runtime/src/test/resources/clds/util/file.xml
diff --git a/src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json b/runtime/src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json
index 2b6493176..2b6493176 100644
--- a/src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json
+++ b/runtime/src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json
diff --git a/src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json b/runtime/src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json
index 115d79b1f..115d79b1f 100644
--- a/src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json
+++ b/runtime/src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json
diff --git a/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json b/runtime/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json
index 07d851f38..07d851f38 100644
--- a/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json
+++ b/runtime/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json
diff --git a/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json b/runtime/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json
index 7f76c6cae..7f76c6cae 100644
--- a/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json
+++ b/runtime/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json
diff --git a/runtime/src/test/resources/example/dcae/inventory-response.json b/runtime/src/test/resources/example/dcae/inventory-response.json
new file mode 100644
index 000000000..1ebf068b8
--- /dev/null
+++ b/runtime/src/test/resources/example/dcae/inventory-response.json
@@ -0,0 +1,78 @@
+{
+ "links": {
+ "previousLink": {
+ "title": "string",
+ "rel": "string",
+ "uri": "string",
+ "uriBuilder": {},
+ "rels": [
+ "string"
+ ],
+ "params": {
+ "additionalProp1": "string",
+ "additionalProp2": "string",
+ "additionalProp3": "string"
+ },
+ "type": "string"
+ },
+ "nextLink": {
+ "title": "string",
+ "rel": "string",
+ "uri": "string",
+ "uriBuilder": {},
+ "rels": [
+ "string"
+ ],
+ "params": {
+ "additionalProp1": "string",
+ "additionalProp2": "string",
+ "additionalProp3": "string"
+ },
+ "type": "string"
+ }
+ },
+ "totalCount": 0,
+ "items": [
+ {
+ "owner": "testOwner",
+ "application": "testApplication",
+ "component": "testComponent",
+ "typeName": "testTypeName",
+ "typeVersion": 0,
+ "blueprintTemplate": "testBlueprintTemplate",
+ "serviceIds": [
+ "serviceId1",
+ "serviceId2"
+ ],
+ "vnfTypes": [
+ "vnfType1",
+ "vnfType2"
+ ],
+ "serviceLocations": [
+ "serviceLocation1",
+ "serviceLocation2"
+ ],
+ "asdcServiceId": "testAsdcServiceId",
+ "asdcResourceId": "testAsdcResourceId",
+ "asdcServiceURL": "testAsdcServiceURL",
+ "typeId": "testTypeId",
+ "selfLink": {
+ "title": "selfLinkTitle",
+ "rel": "selfLinkRel",
+ "uri": "selfLinkUri",
+ "uriBuilder": {},
+ "rels": [
+ "string"
+ ],
+ "params": {
+ "additionalProp1": "string",
+ "additionalProp2": "string",
+ "additionalProp3": "string"
+ },
+ "type": "string"
+ },
+ "created": "2020-01-22T09:38:15.436Z",
+ "deactivated": "2020-01-22T09:38:15.437Z"
+ }
+ ]
+} \ No newline at end of file
diff --git a/runtime/src/test/resources/example/policy/pdp-deployment-testos-1_0_0.json b/runtime/src/test/resources/example/policy/pdp-deployment-testos-1_0_0.json
new file mode 100644
index 000000000..3b4a0eafc
--- /dev/null
+++ b/runtime/src/test/resources/example/policy/pdp-deployment-testos-1_0_0.json
@@ -0,0 +1,30 @@
+{
+ "pdpGroupInfo": [
+ {
+ "pdpGroup2": {
+ "name": "pdpGroup2",
+ "pdpGroupState": "ACTIVE",
+ "pdpSubgroups": [
+ {
+ "pdpType": "subGroup2",
+ "supportedPolicyTypes": [
+ {
+ "name": "org.onap.test",
+ "version": "1.0.0"
+ }
+ ],
+ "policies": [
+ {
+ "name": "org.onap.testos",
+ "version": "1.0.0"
+ }
+ ],
+ "currentInstanceCount": 0,
+ "desiredInstanceCount": 0,
+ "pdpInstances": []
+ }
+ ]
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/runtime/src/test/resources/example/policy/pdp-deployment-testos-2_0_0.json b/runtime/src/test/resources/example/policy/pdp-deployment-testos-2_0_0.json
new file mode 100644
index 000000000..0040052f2
--- /dev/null
+++ b/runtime/src/test/resources/example/policy/pdp-deployment-testos-2_0_0.json
@@ -0,0 +1,204 @@
+{
+ "pdpGroupInfo": [
+ {
+ "pdpGroup3": {
+ "name": "pdpGroup3",
+ "pdpGroupState": "ACTIVE",
+ "pdpSubgroups": [
+ {
+ "pdpType": "subGroupBad",
+ "supportedPolicyTypes": [
+ {
+ "name": "org.onap.test",
+ "version": "2.0.0"
+ },
+ {
+ "name": "org.onap.test.*",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onip.testos",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap.testos3",
+ "version": "2.0.0"
+ },
+ {
+ "name": "org.onap.tes",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap",
+ "version": "1.0.0"
+ }
+ ],
+ "policies": [
+ {
+ "name": "org.onap",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap.testos",
+ "version": "2.0.0"
+ },
+ {
+ "name": "org.onap.testos",
+ "version": "1.0.1"
+ },
+ {
+ "name": "org.onap.testos.new",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap.",
+ "version": "1.0.0"
+ }
+ ],
+ "currentInstanceCount": 0,
+ "desiredInstanceCount": 0,
+ "pdpInstances": []
+ }
+ ]
+ },
+ "pdpGroup1": {
+ "name": "pdpGroup1",
+ "pdpGroupState": "ACTIVE",
+ "pdpSubgroups": [
+ {
+ "pdpType": "subGroupBad",
+ "supportedPolicyTypes": [
+ {
+ "name": "org.onap.test",
+ "version": "2.0.0"
+ },
+ {
+ "name": "org.onap.test.*",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onip.testos",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap.testos3",
+ "version": "2.0.0"
+ },
+ {
+ "name": "org.onap.tes",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap",
+ "version": "1.0.0"
+ }
+ ],
+ "policies": [
+ {
+ "name": "org.onap",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap.testos",
+ "version": "2.0.0"
+ },
+ {
+ "name": "org.onap.testos",
+ "version": "1.0.1"
+ },
+ {
+ "name": "org.onap.testos.new",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap.",
+ "version": "1.0.0"
+ }
+ ],
+ "currentInstanceCount": 0,
+ "desiredInstanceCount": 0,
+ "pdpInstances": []
+ }
+ ]
+ },
+ "pdpGroup2": {
+ "name": "pdpGroup2",
+ "pdpGroupState": "ACTIVE",
+ "pdpSubgroups": [
+ {
+ "pdpType": "subGroup3",
+ "supportedPolicyTypes": [
+ {
+ "name": "org.onap.test*",
+ "version": "1.0.0"
+ }
+ ],
+ "policies": [
+ {
+ "name": "org.onap.testos",
+ "version": "2.0.0"
+ }
+ ],
+ "currentInstanceCount": 0,
+ "desiredInstanceCount": 0,
+ "pdpInstances": []
+ },
+ {
+ "pdpType": "subGroupBad",
+ "supportedPolicyTypes": [
+ {
+ "name": "org.onap.test",
+ "version": "2.0.0"
+ },
+ {
+ "name": "org.onap.test.*",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onip.testos",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap.testos3",
+ "version": "2.0.0"
+ },
+ {
+ "name": "org.onap.tes",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap",
+ "version": "1.0.0"
+ }
+ ],
+ "policies": [
+ {
+ "name": "org.onap",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap.testos",
+ "version": "2.0.0"
+ },
+ {
+ "name": "org.onap.testos",
+ "version": "1.0.1"
+ },
+ {
+ "name": "org.onap.testos.new",
+ "version": "1.0.0"
+ },
+ {
+ "name": "org.onap.",
+ "version": "1.0.0"
+ }
+ ],
+ "currentInstanceCount": 0,
+ "desiredInstanceCount": 0,
+ "pdpInstances": []
+ }
+ ]
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/runtime/src/test/resources/example/policy/pdp-group-multi-policies-payload.json b/runtime/src/test/resources/example/policy/pdp-group-multi-policies-payload.json
new file mode 100644
index 000000000..5e9c77f45
--- /dev/null
+++ b/runtime/src/test/resources/example/policy/pdp-group-multi-policies-payload.json
@@ -0,0 +1,74 @@
+{
+ "groups": [
+ {
+ "name": "pdpgroup1",
+ "deploymentSubgroups": [
+ {
+ "pdpType": "pdpsubgroup1",
+ "action": "POST",
+ "policies": [
+ {
+ "name": "policyname1",
+ "version": "1.0.0"
+ }
+ ]
+ },
+ {
+ "pdpType": "pdpsubgroup1",
+ "action": "POST",
+ "policies": [
+ {
+ "name": "policyname2",
+ "version": "1.0.0"
+ }
+ ]
+ },
+ {
+ "pdpType": "pdpsubgroup1",
+ "action": "POST",
+ "policies": [
+ {
+ "name": "policyname1",
+ "version": "2.0.0"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "pdpgroup2",
+ "deploymentSubgroups": [
+ {
+ "pdpType": "pdpsubgroup2",
+ "action": "DELETE",
+ "policies": [
+ {
+ "name": "policyname1",
+ "version": "1.0.0"
+ }
+ ]
+ },
+ {
+ "pdpType": "pdpsubgroup2",
+ "action": "POST",
+ "policies": [
+ {
+ "name": "policyname1",
+ "version": "2.0.0"
+ }
+ ]
+ },
+ {
+ "pdpType": "pdpsubgroup2",
+ "action": "DELETE",
+ "policies": [
+ {
+ "name": "policyname2",
+ "version": "1.0.0"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/test/resources/tosca/pdp-group-policy-payload.json b/runtime/src/test/resources/example/policy/pdp-group-policy-payload.json
index 17535ecbb..897fb43be 100644
--- a/src/test/resources/tosca/pdp-group-policy-payload.json
+++ b/runtime/src/test/resources/example/policy/pdp-group-policy-payload.json
@@ -1,32 +1,23 @@
{
"groups": [
{
- "name": "pdpGroup1",
+ "name": "pdpGroup2",
"deploymentSubgroups": [
{
- "pdpType": "pdpSubgroup1",
+ "pdpType": "pdpSubgroup2",
"action": "POST",
"policies": [
{
- "name": "configPolicyTest",
+ "name": "opLegacyPolicy",
"version": "1.0.0"
}
]
- }
- ]
- },
- {
- "name": "pdpGroup2",
- "deploymentSubgroups": [
+ },
{
"pdpType": "pdpSubgroup2",
"action": "POST",
"policies": [
{
- "name": "opLegacyPolicy",
- "version": "1.0.0"
- },
- {
"name": "opPolicy",
"version": "1.0.0"
}
@@ -43,6 +34,21 @@
]
}
]
+ },
+ {
+ "name": "pdpGroup1",
+ "deploymentSubgroups": [
+ {
+ "pdpType": "pdpSubgroup1",
+ "action": "POST",
+ "policies": [
+ {
+ "name": "configPolicyTest",
+ "version": "1.0.0"
+ }
+ ]
+ }
+ ]
}
]
} \ No newline at end of file
diff --git a/src/test/resources/example/policy/policy-merger.json b/runtime/src/test/resources/example/policy/policy-merger.json
index e1424fffb..c3291ef71 100644
--- a/src/test/resources/example/policy/policy-merger.json
+++ b/runtime/src/test/resources/example/policy/policy-merger.json
@@ -34,10 +34,38 @@
"policy-id": "MICROSERVICE_vLoadBalancerMS_v1_0_tcagen2_1_0_0_AV0",
"policy-version": "1.0.0"
},
- "pdpGroupInfo": {
- "pdpGroup": "pdpGroup2",
- "pdpSubGroup": "subGroup2"
- },
+ "pdpGroupInfo": [
+ {
+ "pdpGroup2": {
+ "name": "pdpGroup2",
+ "pdpGroupState": "ACTIVE",
+ "pdpSubgroups": [
+ {
+ "pdpType": "subGroup2",
+ "supportedPolicyTypes": [
+ {
+ "name": "onap.policies.monitoring.tcagen2",
+ "version": "1.0.0"
+ },
+ {
+ "name": "onap.policies.controlloop.operational.common.Drools",
+ "version": "1.0.0"
+ }
+ ],
+ "policies": [
+ {
+ "name": "MICROSERVICE_vLoadBalancerMS_v1_0_tcagen2_1_0_0_AV0",
+ "version": "1.0.0"
+ }
+ ],
+ "currentInstanceCount": 0,
+ "desiredInstanceCount": 0,
+ "pdpInstances": []
+ }
+ ]
+ }
+ }
+ ],
"supportedPdpGroups": [
{
"pdpGroup2": [
@@ -97,10 +125,42 @@
"policy-id": "OPERATIONAL_vLoadBalancerMS_v1_0_Drools_1_0_0_7xd",
"policy-version": "1.0.0"
},
- "pdpGroupInfo": {
- "pdpGroup": "pdpGroup2",
- "pdpSubGroup": "subGroup3"
- },
+ "pdpGroupInfo": [
+ {
+ "pdpGroup2": {
+ "name": "pdpGroup2",
+ "pdpGroupState": "ACTIVE",
+ "pdpSubgroups": [
+ {
+ "pdpType": "subGroup3",
+ "supportedPolicyTypes": [
+ {
+ "name": "onap.policies.monitoring.tcagen2",
+ "version": "1.0.0"
+ },
+ {
+ "name": "onap.policies.controlloop.operational.common.Drools",
+ "version": "1.0.0"
+ }
+ ],
+ "policies": [
+ {
+ "name": "org.onap.testos",
+ "version": "2.0.0"
+ },
+ {
+ "name": "OPERATIONAL_vLoadBalancerMS_v1_0_Drools_1_0_0_7xd",
+ "version": "1.0.0"
+ }
+ ],
+ "currentInstanceCount": 0,
+ "desiredInstanceCount": 0,
+ "pdpInstances": []
+ }
+ ]
+ }
+ }
+ ],
"supportedPdpGroups": [
{
"pdpGroup2": [
diff --git a/src/test/resources/example/policy/single-policy-enriched.json b/runtime/src/test/resources/example/policy/single-policy-enriched.json
index 66355e589..66355e589 100644
--- a/src/test/resources/example/policy/single-policy-enriched.json
+++ b/runtime/src/test/resources/example/policy/single-policy-enriched.json
diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca-bad-policy.yaml b/runtime/src/test/resources/example/sdc/blueprint-dcae/tca-bad-policy.yaml
index bea4d2710..bea4d2710 100644
--- a/src/test/resources/example/sdc/blueprint-dcae/tca-bad-policy.yaml
+++ b/runtime/src/test/resources/example/sdc/blueprint-dcae/tca-bad-policy.yaml
diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca-guilin.yaml b/runtime/src/test/resources/example/sdc/blueprint-dcae/tca-guilin.yaml
index e7d967a26..e7d967a26 100644
--- a/src/test/resources/example/sdc/blueprint-dcae/tca-guilin.yaml
+++ b/runtime/src/test/resources/example/sdc/blueprint-dcae/tca-guilin.yaml
diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml b/runtime/src/test/resources/example/sdc/blueprint-dcae/tca.yaml
index 0cb9cdb68..0cb9cdb68 100644
--- a/src/test/resources/example/sdc/blueprint-dcae/tca.yaml
+++ b/runtime/src/test/resources/example/sdc/blueprint-dcae/tca.yaml
diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml b/runtime/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml
index 00ebfe7fe..00ebfe7fe 100644
--- a/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml
+++ b/runtime/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml
diff --git a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml b/runtime/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml
index 929f36367..929f36367 100644
--- a/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml
+++ b/runtime/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml
diff --git a/src/test/resources/example/sdc/expected-result/deployment-parameters-multi-blueprints.json b/runtime/src/test/resources/example/sdc/expected-result/deployment-parameters-multi-blueprints.json
index 58f4cf3b2..58f4cf3b2 100644
--- a/src/test/resources/example/sdc/expected-result/deployment-parameters-multi-blueprints.json
+++ b/runtime/src/test/resources/example/sdc/expected-result/deployment-parameters-multi-blueprints.json
diff --git a/src/test/resources/example/sdc/expected-result/deployment-parameters-single-blueprint.json b/runtime/src/test/resources/example/sdc/expected-result/deployment-parameters-single-blueprint.json
index 7140a4748..7140a4748 100644
--- a/src/test/resources/example/sdc/expected-result/deployment-parameters-single-blueprint.json
+++ b/runtime/src/test/resources/example/sdc/expected-result/deployment-parameters-single-blueprint.json
diff --git a/src/test/resources/example/sdc/expected-result/policy-data.yaml b/runtime/src/test/resources/example/sdc/expected-result/policy-data.yaml
index 3cf5e975c..3cf5e975c 100644
--- a/src/test/resources/example/sdc/expected-result/policy-data.yaml
+++ b/runtime/src/test/resources/example/sdc/expected-result/policy-data.yaml
diff --git a/src/test/resources/example/sdc/service-Simsfoimap0112.csar b/runtime/src/test/resources/example/sdc/service-Simsfoimap0112.csar
index 8c16d31ee..8c16d31ee 100644
--- a/src/test/resources/example/sdc/service-Simsfoimap0112.csar
+++ b/runtime/src/test/resources/example/sdc/service-Simsfoimap0112.csar
Binary files differ
diff --git a/src/test/resources/example/sdc/service-without-policy.csar b/runtime/src/test/resources/example/sdc/service-without-policy.csar
index 20c4eef65..20c4eef65 100644
--- a/src/test/resources/example/sdc/service-without-policy.csar
+++ b/runtime/src/test/resources/example/sdc/service-without-policy.csar
Binary files differ
diff --git a/src/test/resources/example/sdc/service_Vloadbalancerms_cds.csar b/runtime/src/test/resources/example/sdc/service_Vloadbalancerms_cds.csar
index ff337993a..ff337993a 100644
--- a/src/test/resources/example/sdc/service_Vloadbalancerms_cds.csar
+++ b/runtime/src/test/resources/example/sdc/service_Vloadbalancerms_cds.csar
Binary files differ
diff --git a/src/test/resources/example/sdc/service_Vloadbalancerms_no_cds.csar b/runtime/src/test/resources/example/sdc/service_Vloadbalancerms_no_cds.csar
index 3330dd1e8..3330dd1e8 100644
--- a/src/test/resources/example/sdc/service_Vloadbalancerms_no_cds.csar
+++ b/runtime/src/test/resources/example/sdc/service_Vloadbalancerms_no_cds.csar
Binary files differ
diff --git a/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.file b/runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.file
index 9e616dfea..9e616dfea 100644
--- a/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.file
+++ b/runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.file
diff --git a/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.header b/runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.header
index 5464a754d..5464a754d 100644
--- a/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.header
+++ b/runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.header
diff --git a/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.file b/runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.file
index 58975d86a..58975d86a 100644
--- a/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.file
+++ b/runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.file
diff --git a/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.header b/runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.header
+++ b/runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.header
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policies/.file b/runtime/src/test/resources/http-cache/example/policy/api/v1/policies/.file
index 91c3c87de..91c3c87de 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policies/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policies/.file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policies/.header b/runtime/src/test/resources/http-cache/example/policy/api/v1/policies/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policies/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policies/.header
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file
index 50fcf9135..50fcf9135 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/.header b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/.header
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.file b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.file
index a00692971..a00692971 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.header b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.header
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.file b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.file
index 79e79f0fe..79e79f0fe 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.header b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.header
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.file b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.file
index 163027e46..163027e46 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.header b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.header
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.file b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.file
index 778efae9e..778efae9e 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.header b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.header
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.file b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.file
index 78bdde746..78bdde746 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.header b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.header
index 5464a754d..5464a754d 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.header
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.file b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.file
index 14ae7acd8..14ae7acd8 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.header b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.header
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.file b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.file
index af7a61ef7..af7a61ef7 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.header b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.header
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.file b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.file
index 3c17c9004..3c17c9004 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.header b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.header
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.file b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.file
index 367d2b5a4..367d2b5a4 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.file
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.header b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.header
diff --git a/src/test/resources/http-cache/example/policy/pap/v1/pdps/.file b/runtime/src/test/resources/http-cache/example/policy/pap/v1/pdps/.file
index b0d6819af..467409f47 100644
--- a/src/test/resources/http-cache/example/policy/pap/v1/pdps/.file
+++ b/runtime/src/test/resources/http-cache/example/policy/pap/v1/pdps/.file
@@ -10,7 +10,12 @@
"desiredInstanceCount": 1,
"pdpInstances": [],
"pdpType": "apex",
- "policies": [],
+ "policies": [
+ {
+ "name": "OPERATIONAL_vLoadBalancerMS_v1_0_Drools_1_0_0_7xd",
+ "version": "1.0.0"
+ }
+ ],
"properties": {},
"supportedPolicyTypes": [
{
diff --git a/src/test/resources/http-cache/example/policy/pap/v1/pdps/.header b/runtime/src/test/resources/http-cache/example/policy/pap/v1/pdps/.header
index b11784a21..b11784a21 100644
--- a/src/test/resources/http-cache/example/policy/pap/v1/pdps/.header
+++ b/runtime/src/test/resources/http-cache/example/policy/pap/v1/pdps/.header
diff --git a/src/test/resources/http-cache/start_http_cache.sh b/runtime/src/test/resources/http-cache/start_http_cache.sh
index 1f84b56f5..1f84b56f5 100755
--- a/src/test/resources/http-cache/start_http_cache.sh
+++ b/runtime/src/test/resources/http-cache/start_http_cache.sh
diff --git a/src/test/resources/http-cache/third_party_proxy.py b/runtime/src/test/resources/http-cache/third_party_proxy.py
index 7fe316852..7fe316852 100755..100644
--- a/src/test/resources/http-cache/third_party_proxy.py
+++ b/runtime/src/test/resources/http-cache/third_party_proxy.py
diff --git a/src/test/resources/https/https-test.properties b/runtime/src/test/resources/https/https-test.properties
index b52b16db4..14079a78e 100644
--- a/src/test/resources/https/https-test.properties
+++ b/runtime/src/test/resources/https/https-test.properties
@@ -96,10 +96,11 @@ camel.defaultthreadpool.maxpoolsize=20
camel.defaultthreadpool.maxqueuesize=1000
camel.defaultthreadpool.keepaliveTime=60
camel.defaultthreadpool.rejectpolicy=CallerRuns
-#camel.springboot.xmlRoutes = false
-camel.springboot.xmlRoutes=classpath:/clds/camel/routes/*.xml
-camel.springboot.xmlRests=classpath:/clds/camel/rest/*.xml
-#camel.springboot.typeConversion = false
+camel.springboot.xml-routes=classpath:/clds/camel/routes/*.xml
+camel.springboot.xml-rests=classpath:/clds/camel/rest/*.xml
+camel.springboot.backlog-tracing=true
+camel.springboot.tracing=true
+camel.springboot.message-history=true
#For EELF logback file
#com.att.eelf.logging.path=
@@ -107,6 +108,9 @@ com.att.eelf.logging.file=logback-default.xml
#The log folder that will be used in logback.xml file
clamp.config.log.path=log
+clamp.config.httpclient.socketTimeout=20000
+clamp.config.httpclient.connectTimeout=10000
+
#Define user permission related parameters, the permission type can be changed but MUST be redefined in clds-users.properties in that case !
clamp.config.security.permission.type.cl=org.onap.clamp.clds.cl
clamp.config.security.permission.type.cl.manage=org.onap.clamp.clds.cl.manage
diff --git a/src/test/resources/https/keystore-test.jks b/runtime/src/test/resources/https/keystore-test.jks
index 04ad3b114..04ad3b114 100644
--- a/src/test/resources/https/keystore-test.jks
+++ b/runtime/src/test/resources/https/keystore-test.jks
Binary files differ
diff --git a/src/test/resources/logback.xml b/runtime/src/test/resources/logback.xml
index 97a8982a9..97a8982a9 100644
--- a/src/test/resources/logback.xml
+++ b/runtime/src/test/resources/logback.xml
diff --git a/src/test/resources/robotframework/Dockerfile b/runtime/src/test/resources/robotframework/Dockerfile
index 03d180c5e..e93b7b9d1 100644
--- a/src/test/resources/robotframework/Dockerfile
+++ b/runtime/src/test/resources/robotframework/Dockerfile
@@ -2,4 +2,5 @@ FROM ppodgorsek/robot-framework:3.8.0
USER root
COPY requirements.txt .
-RUN pip3 install --no-cache-dir -r requirements.txt \ No newline at end of file
+RUN pip3 install --no-cache-dir -r requirements.txt
+
diff --git a/src/test/resources/robotframework/requirements.txt b/runtime/src/test/resources/robotframework/requirements.txt
index 2ae8f4500..2ae8f4500 100644
--- a/src/test/resources/robotframework/requirements.txt
+++ b/runtime/src/test/resources/robotframework/requirements.txt
diff --git a/src/test/resources/robotframework/robotframework-test.properties b/runtime/src/test/resources/robotframework/robotframework-test.properties
index 1e173f961..fed074198 100644
--- a/src/test/resources/robotframework/robotframework-test.properties
+++ b/runtime/src/test/resources/robotframework/robotframework-test.properties
@@ -1,6 +1,6 @@
###
# ============LICENSE_START=======================================================
-# ONAP CLAMP
+# ONAP POLICY-CLAMP
# ================================================================================
# Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights
# reserved.
@@ -31,6 +31,8 @@ server.port=${clamp.it.tests.robotframework.http}
#server.ssl.key-store-password=pass
#server.ssl.key-password=pass
+clamp.config.keyFile=classpath:clds/aaf/org.onap.clamp.keyfile
+
### In order to be user friendly when HTTPS is enabled,
### you can add another HTTP port that will be automatically redirected to HTTPS
### by enabling this parameter (server.http.port) and set it to another port (80 or 8080, 8090, etc ...)
@@ -79,10 +81,11 @@ camel.defaultthreadpool.maxpoolsize=20
camel.defaultthreadpool.maxqueuesize=1000
camel.defaultthreadpool.keepaliveTime=60
camel.defaultthreadpool.rejectpolicy=CallerRuns
-#camel.springboot.xmlRoutes = false
-camel.springboot.xmlRoutes=classpath:/clds/camel/routes/*.xml
-camel.springboot.xmlRests=classpath:/clds/camel/rest/*.xml
-#camel.springboot.typeConversion = false
+camel.springboot.xml-routes=classpath:/clds/camel/routes/*.xml
+camel.springboot.xml-rests=classpath:/clds/camel/rest/*.xml
+camel.springboot.backlog-tracing=true
+camel.springboot.tracing=true
+camel.springboot.message-history=true
#clds datasource connection details
spring.datasource.driverClassName=org.mariadb.jdbc.Driver
@@ -128,12 +131,15 @@ clamp.config.files.cldsUsers=classpath:/clds/clds-users.json
clamp.config.files.globalProperties=classpath:/clds/templates/globalProperties.json
clamp.config.files.sdcController=classpath:/clds/sdc-controllers-config.json
+clamp.config.httpclient.socketTimeout=20000
+clamp.config.httpclient.connectTimeout=10000
+
#
# Configuration Settings for Policy Engine Components
-clamp.config.policy.api.url=http4://localhost:${docker.http-cache.port.host}
+clamp.config.policy.api.url=http://localhost:${docker.http-cache.port.host}
clamp.config.policy.api.userName=healthcheck
clamp.config.policy.api.password=zb!XztG34
-clamp.config.policy.pap.url=http4://localhost:${docker.http-cache.port.host}
+clamp.config.policy.pap.url=http://localhost:${docker.http-cache.port.host}
clamp.config.policy.pap.userName=healthcheck
clamp.config.policy.pap.password=zb!XztG34
@@ -142,12 +148,12 @@ clamp.config.policy.pap.password=zb!XztG34
clamp.config.sdc.csarFolder = ${project.build.directory}/sdc-tests
#DCAE Inventory Url Properties
-clamp.config.dcae.inventory.url=http4://localhost:${docker.http-cache.port.host}
+clamp.config.dcae.inventory.url=http://localhost:${docker.http-cache.port.host}
clamp.config.dcae.intentory.retry.interval=100
clamp.config.dcae.intentory.retry.limit=1
#DCAE Deployment Url Properties
-clamp.config.dcae.deployment.url=http4://localhost:${docker.http-cache.port.host}
+clamp.config.dcae.deployment.url=http://localhost:${docker.http-cache.port.host}
clamp.config.dcae.deployment.userName=test
clamp.config.dcae.deployment.password=test
@@ -164,7 +170,7 @@ clamp.config.security.permission.instance=dev
clamp.config.security.authentication.class=org.onap.aaf.cadi.principal.X509Principal, org.onap.aaf.cadi.principal.CachedBasicPrincipal
# Configuration settings for CDS
-clamp.config.cds.url=http4://localhost:${docker.http-cache.port.host}
+clamp.config.cds.url=http://localhost:${docker.http-cache.port.host}
clamp.config.cds.userName=ccsdkapps
clamp.config.cds.password=ccsdkapps
diff --git a/src/test/resources/robotframework/tests/01_healthcheck.robot b/runtime/src/test/resources/robotframework/tests/01_healthcheck.robot
index f19266781..f19266781 100644
--- a/src/test/resources/robotframework/tests/01_healthcheck.robot
+++ b/runtime/src/test/resources/robotframework/tests/01_healthcheck.robot
diff --git a/src/test/resources/robotframework/tests/02_policy_queries.robot b/runtime/src/test/resources/robotframework/tests/02_policy_queries.robot
index 713a39f52..713a39f52 100644
--- a/src/test/resources/robotframework/tests/02_policy_queries.robot
+++ b/runtime/src/test/resources/robotframework/tests/02_policy_queries.robot
diff --git a/src/test/resources/tosca/micro-service-policy-payload.json b/runtime/src/test/resources/tosca/micro-service-policy-payload.json
index 2533a5410..2533a5410 100644
--- a/src/test/resources/tosca/micro-service-policy-payload.json
+++ b/runtime/src/test/resources/tosca/micro-service-policy-payload.json
diff --git a/src/test/resources/tosca/micro-service-policy-properties.json b/runtime/src/test/resources/tosca/micro-service-policy-properties.json
index 04fe0cc7f..04fe0cc7f 100644
--- a/src/test/resources/tosca/micro-service-policy-properties.json
+++ b/runtime/src/test/resources/tosca/micro-service-policy-properties.json
diff --git a/src/test/resources/tosca/model-properties-cds.json b/runtime/src/test/resources/tosca/model-properties-cds.json
index fea658431..fea658431 100644
--- a/src/test/resources/tosca/model-properties-cds.json
+++ b/runtime/src/test/resources/tosca/model-properties-cds.json
diff --git a/src/test/resources/tosca/model-properties-operational-policy.json b/runtime/src/test/resources/tosca/model-properties-operational-policy.json
index 2a6568528..2a6568528 100644
--- a/src/test/resources/tosca/model-properties-operational-policy.json
+++ b/runtime/src/test/resources/tosca/model-properties-operational-policy.json
diff --git a/src/test/resources/tosca/model-properties.json b/runtime/src/test/resources/tosca/model-properties.json
index 1c0fe24b4..1c0fe24b4 100644
--- a/src/test/resources/tosca/model-properties.json
+++ b/runtime/src/test/resources/tosca/model-properties.json
diff --git a/src/test/resources/tosca/new-converter/constraints.yaml b/runtime/src/test/resources/tosca/new-converter/constraints.yaml
index 7a94ca965..b711f35c8 100644
--- a/src/test/resources/tosca/new-converter/constraints.yaml
+++ b/runtime/src/test/resources/tosca/new-converter/constraints.yaml
@@ -1,60 +1,60 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-policy_types:
- onap.policies.controlloop.operational.common.Drools:
- derived_from: onap.policies.controlloop.operational.Common
- type_version: 1.0.0
- version: 1.0.0
- description: Operational policies for Drools PDP
- properties:
- controllerName:
- type: String
- description: Drools controller properties
- required: true
-data_types:
- onap.datatype.controlloop.Operation:
- derived_from: tosca.datatypes.Root
- description: An operation supported by an actor
- properties:
- id:
- type: String
- description: Unique identifier for the operation
- required: true
- constraints:
- - length: 8
- description:
- type: Array
- description: A user-friendly description of the intent for the operation
- required: false
- constraints:
- - min_length: 5
- - max_length: 7
- test:
- type: Integer
- description: |
- Overall timeout for executing all the operations. This timeout should equal or exceed the total
- timeout for each operation listed.
- required: true
- constraints:
- - greater_than: 7
- - greater_or_equal: 1
- - less_than: 7
- - less_or_equal: 1
- timeout:
- type: Integer
- description: The amount of time for the actor to perform the operation.
- required: true
- constraints:
- - valid_values: [3,4,5.5,6,10]
- retries:
- type: Integer
- description: The number of retries the actor should attempt to perform the operation.
- required: true
- default: 0
- constraints:
- - equal: 5
- success:
- type: String
- description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation.
- required: false
- constraints:
- - valid_values: [VALID,TERMINATED]
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+policy_types:
+ onap.policies.controlloop.operational.common.Drools:
+ derived_from: onap.policies.controlloop.operational.Common
+ type_version: 1.0.0
+ version: 1.0.0
+ description: Operational policies for Drools PDP
+ properties:
+ controllerName:
+ type: String
+ description: Drools controller properties
+ required: true
+data_types:
+ onap.datatype.controlloop.Operation:
+ derived_from: tosca.datatypes.Root
+ description: An operation supported by an actor
+ properties:
+ id:
+ type: String
+ description: Unique identifier for the operation
+ required: true
+ constraints:
+ - length: 8
+ description:
+ type: Array
+ description: A user-friendly description of the intent for the operation
+ required: false
+ constraints:
+ - min_length: 5
+ - max_length: 7
+ test:
+ type: Integer
+ description: |
+ Overall timeout for executing all the operations. This timeout should equal or exceed the total
+ timeout for each operation listed.
+ required: true
+ constraints:
+ - greater_than: 7
+ - greater_or_equal: 1
+ - less_than: 7
+ - less_or_equal: 1
+ timeout:
+ type: Integer
+ description: The amount of time for the actor to perform the operation.
+ required: true
+ constraints:
+ - valid_values: [3,4,5.5,6,10]
+ retries:
+ type: Integer
+ description: The number of retries the actor should attempt to perform the operation.
+ required: true
+ default: 0
+ constraints:
+ - equal: 5
+ success:
+ type: String
+ description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation.
+ required: false
+ constraints:
+ - valid_values: [VALID,TERMINATED]
diff --git a/src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml b/runtime/src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml
index c2afeccdc..1da17190e 100644
--- a/src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml
+++ b/runtime/src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml
@@ -1,160 +1,160 @@
-
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-policy_types:
- onap.policies.controlloop.operational.Common:
- derived_from: tosca.policies.Root
- version: 1.0.0
- description: Operational Policy for Control Loop execution
- properties:
- id:
- type: String
- description: The unique control loop id.
- required: true
- timeout:
- type: Integer
- description: |
- Overall timeout for executing all the operations. This timeout should equal or exceed the total
- timeout for each operation listed.
- required: true
- abatement:
- type: Boolean
- description: Whether an abatement event message will be expected for the control loop from DCAE.
- required: true
- default: false
- trigger:
- type: String
- description: Initial operation to execute upon receiving an Onset event message for the Control Loop.
- required: true
- operations:
- type: List
- description: List of operations to be performed when Control Loop is triggered.
- required: true
- entry_schema:
- type: onap.datatype.controlloop.Operation
- onap.policies.controlloop.operational.common.Drools:
- derived_from: onap.policies.controlloop.operational.Common
- type_version: 1.0.0
- version: 1.0.0
- description: Operational policies for Drools PDP
- properties:
- controllerName:
- type: String
- description: Drools controller properties
- required: false
-data_types:
- # TBD if this is needed
- onap.datatype.controlloop.operation.Failure:
- derived_from: tosca.datatypes.Root
- description: Captures information of an operational failure performed for control loop
- properties:
- messages:
- type: String
- description: error message
- required: true
- category:
- type: String
- description: |
- The category the error occurred in. Whether this is a general error from the actor, or the operation
- timed out, retries were exhausted in trying to execute the operation, a guard policy prevented the
- operation from occuring, or an exception in the system caused the failure.
- constraints:
- - valid_values: [error, timeout, retries, guard, exception]
- onap.datatype.controlloop.Target:
- derived_from: tosca.datatypes.Root
- description: Definition for a entity in A&AI to perform a control loop operation on
- properties:
- targetType:
- type: String
- description: Category for the target type
- required: true
- constraints:
- - valid_values: [VNF, VM, VFMODULE, PNF]
- entityIds:
- type: Map
- description: |
- Map of values that identify the resource. If none are provided, it is assumed that the
- entity that generated the ONSET event will be the target.
- required: false
- entry_schema:
- type: String
- onap.datatype.controlloop.Actor:
- derived_from: tosca.datatypes.Root
- description: An actor/operation/target definition
- properties:
- actor:
- type: String
- description: The actor performing the operation.
- required: true
- operation:
- type: String
- description: The operation the actor is performing.
- required: true
- target:
- type: String
- description: The resource the operation should be performed on.
- required: true
- metadata:
- clamp_possible_values: <string:see clamp project for syntax>
- payload:
- type: Map
- description: Name/value pairs of payload information passed by Policy to the actor
- required: false
- entry_schema:
- type: String
- onap.datatype.controlloop.Operation:
- derived_from: tosca.datatypes.Root
- description: An operation supported by an actor
- properties:
- id:
- type: String
- description: Unique identifier for the operation
- required: true
- description:
- type: String
- description: A user-friendly description of the intent for the operation
- required: false
- operation:
- type: onap.datatype.controlloop.Actor
- description: The definition of the operation to be performed.
- required: true
- metadata:
- clamp_possible_values: <string:see clamp project for syntax>
- timeout:
- type: Integer
- description: The amount of time for the actor to perform the operation.
- required: true
- retries:
- type: Integer
- description: The number of retries the actor should attempt to perform the operation.
- required: true
- default: 0
- success:
- type: String
- description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation.
- required: false
- default: final_success
- failure:
- type: String
- description: Points to the operation to invoke on Actor operation failure.
- required: false
- default: final_failure
- failure_timeout:
- type: String
- description: Points to the operation to invoke when the time out for the operation occurs.
- required: false
- default: final_failure_timeout
- failure_retries:
- type: String
- description: Points to the operation to invoke when the current operation has exceeded its max retries.
- required: false
- default: final_failure_retries
- failure_exception:
- type: String
- description: Points to the operation to invoke when the current operation causes an exception.
- required: false
- default: final_failure_exception
- failure_guard:
- type: String
- description: Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.
- required: false
- default: final_failure_guard
+
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+policy_types:
+ onap.policies.controlloop.operational.Common:
+ derived_from: tosca.policies.Root
+ version: 1.0.0
+ description: Operational Policy for Control Loop execution
+ properties:
+ id:
+ type: String
+ description: The unique control loop id.
+ required: true
+ timeout:
+ type: Integer
+ description: |
+ Overall timeout for executing all the operations. This timeout should equal or exceed the total
+ timeout for each operation listed.
+ required: true
+ abatement:
+ type: Boolean
+ description: Whether an abatement event message will be expected for the control loop from DCAE.
+ required: true
+ default: false
+ trigger:
+ type: String
+ description: Initial operation to execute upon receiving an Onset event message for the Control Loop.
+ required: true
+ operations:
+ type: List
+ description: List of operations to be performed when Control Loop is triggered.
+ required: true
+ entry_schema:
+ type: onap.datatype.controlloop.Operation
+ onap.policies.controlloop.operational.common.Drools:
+ derived_from: onap.policies.controlloop.operational.Common
+ type_version: 1.0.0
+ version: 1.0.0
+ description: Operational policies for Drools PDP
+ properties:
+ controllerName:
+ type: String
+ description: Drools controller properties
+ required: false
+data_types:
+ # TBD if this is needed
+ onap.datatype.controlloop.operation.Failure:
+ derived_from: tosca.datatypes.Root
+ description: Captures information of an operational failure performed for control loop
+ properties:
+ messages:
+ type: String
+ description: error message
+ required: true
+ category:
+ type: String
+ description: |
+ The category the error occurred in. Whether this is a general error from the actor, or the operation
+ timed out, retries were exhausted in trying to execute the operation, a guard policy prevented the
+ operation from occuring, or an exception in the system caused the failure.
+ constraints:
+ - valid_values: [error, timeout, retries, guard, exception]
+ onap.datatype.controlloop.Target:
+ derived_from: tosca.datatypes.Root
+ description: Definition for a entity in A&AI to perform a control loop operation on
+ properties:
+ targetType:
+ type: String
+ description: Category for the target type
+ required: true
+ constraints:
+ - valid_values: [VNF, VM, VFMODULE, PNF]
+ entityIds:
+ type: Map
+ description: |
+ Map of values that identify the resource. If none are provided, it is assumed that the
+ entity that generated the ONSET event will be the target.
+ required: false
+ entry_schema:
+ type: String
+ onap.datatype.controlloop.Actor:
+ derived_from: tosca.datatypes.Root
+ description: An actor/operation/target definition
+ properties:
+ actor:
+ type: String
+ description: The actor performing the operation.
+ required: true
+ operation:
+ type: String
+ description: The operation the actor is performing.
+ required: true
+ target:
+ type: String
+ description: The resource the operation should be performed on.
+ required: true
+ metadata:
+ clamp_possible_values: <string:see clamp project for syntax>
+ payload:
+ type: Map
+ description: Name/value pairs of payload information passed by Policy to the actor
+ required: false
+ entry_schema:
+ type: String
+ onap.datatype.controlloop.Operation:
+ derived_from: tosca.datatypes.Root
+ description: An operation supported by an actor
+ properties:
+ id:
+ type: String
+ description: Unique identifier for the operation
+ required: true
+ description:
+ type: String
+ description: A user-friendly description of the intent for the operation
+ required: false
+ operation:
+ type: onap.datatype.controlloop.Actor
+ description: The definition of the operation to be performed.
+ required: true
+ metadata:
+ clamp_possible_values: <string:see clamp project for syntax>
+ timeout:
+ type: Integer
+ description: The amount of time for the actor to perform the operation.
+ required: true
+ retries:
+ type: Integer
+ description: The number of retries the actor should attempt to perform the operation.
+ required: true
+ default: 0
+ success:
+ type: String
+ description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation.
+ required: false
+ default: final_success
+ failure:
+ type: String
+ description: Points to the operation to invoke on Actor operation failure.
+ required: false
+ default: final_failure
+ failure_timeout:
+ type: String
+ description: Points to the operation to invoke when the time out for the operation occurs.
+ required: false
+ default: final_failure_timeout
+ failure_retries:
+ type: String
+ description: Points to the operation to invoke when the current operation has exceeded its max retries.
+ required: false
+ default: final_failure_retries
+ failure_exception:
+ type: String
+ description: Points to the operation to invoke when the current operation causes an exception.
+ required: false
+ default: final_failure_exception
+ failure_guard:
+ type: String
+ description: Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.
+ required: false
+ default: final_failure_guard
diff --git a/src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml b/runtime/src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml
index 780acadc2..780acadc2 100644
--- a/src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml
+++ b/runtime/src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml
diff --git a/src/test/resources/tosca/new-converter/tca-with-metadata.json b/runtime/src/test/resources/tosca/new-converter/tca-with-metadata.json
index 3a700c8ee..3a700c8ee 100644
--- a/src/test/resources/tosca/new-converter/tca-with-metadata.json
+++ b/runtime/src/test/resources/tosca/new-converter/tca-with-metadata.json
diff --git a/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json b/runtime/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json
index 4519d5c9f..4519d5c9f 100644
--- a/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json
+++ b/runtime/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json
diff --git a/src/test/resources/tosca/new-converter/tosca_metadata_clamp_possible_values.yaml b/runtime/src/test/resources/tosca/new-converter/tosca_metadata_clamp_possible_values.yaml
index 7fe9d5398..7fe9d5398 100644
--- a/src/test/resources/tosca/new-converter/tosca_metadata_clamp_possible_values.yaml
+++ b/runtime/src/test/resources/tosca/new-converter/tosca_metadata_clamp_possible_values.yaml
diff --git a/src/test/resources/tosca/operational-policy-cds-payload-with-list.json b/runtime/src/test/resources/tosca/operational-policy-cds-payload-with-list.json
index 9a9308e3b..9a9308e3b 100644
--- a/src/test/resources/tosca/operational-policy-cds-payload-with-list.json
+++ b/runtime/src/test/resources/tosca/operational-policy-cds-payload-with-list.json
diff --git a/src/test/resources/tosca/operational-policy-json-schema.json b/runtime/src/test/resources/tosca/operational-policy-json-schema.json
index dc6c32fa7..dc6c32fa7 100644
--- a/src/test/resources/tosca/operational-policy-json-schema.json
+++ b/runtime/src/test/resources/tosca/operational-policy-json-schema.json
diff --git a/src/test/resources/tosca/operational-policy-no-guard-properties.json b/runtime/src/test/resources/tosca/operational-policy-no-guard-properties.json
index fdb1906a4..fdb1906a4 100644
--- a/src/test/resources/tosca/operational-policy-no-guard-properties.json
+++ b/runtime/src/test/resources/tosca/operational-policy-no-guard-properties.json
diff --git a/src/test/resources/tosca/operational-policy-properties.json b/runtime/src/test/resources/tosca/operational-policy-properties.json
index a38334b55..a38334b55 100644
--- a/src/test/resources/tosca/operational-policy-properties.json
+++ b/runtime/src/test/resources/tosca/operational-policy-properties.json
diff --git a/src/test/resources/tosca/resource-details-cds.json b/runtime/src/test/resources/tosca/resource-details-cds.json
index d972d0cb9..d972d0cb9 100644
--- a/src/test/resources/tosca/resource-details-cds.json
+++ b/runtime/src/test/resources/tosca/resource-details-cds.json
diff --git a/src/test/resources/tosca/resource-details.json b/runtime/src/test/resources/tosca/resource-details.json
index b55adbf52..b55adbf52 100644
--- a/src/test/resources/tosca/resource-details.json
+++ b/runtime/src/test/resources/tosca/resource-details.json
diff --git a/src/test/resources/tosca/service-details.json b/runtime/src/test/resources/tosca/service-details.json
index f41eec107..f41eec107 100644
--- a/src/test/resources/tosca/service-details.json
+++ b/runtime/src/test/resources/tosca/service-details.json
diff --git a/src/test/resources/tosca/tca_hi_lo.json b/runtime/src/test/resources/tosca/tca_hi_lo.json
index cb3ed893f..cb3ed893f 100644
--- a/src/test/resources/tosca/tca_hi_lo.json
+++ b/runtime/src/test/resources/tosca/tca_hi_lo.json
diff --git a/src/test/resources/tosca/tosca_example.yaml b/runtime/src/test/resources/tosca/tosca_example.yaml
index b0119f887..b0119f887 100644
--- a/src/test/resources/tosca/tosca_example.yaml
+++ b/runtime/src/test/resources/tosca/tosca_example.yaml
diff --git a/src/test/resources/tosca/tosca_with_date_time_json_schema.json b/runtime/src/test/resources/tosca/tosca_with_date_time_json_schema.json
index e15942cc5..e15942cc5 100644
--- a/src/test/resources/tosca/tosca_with_date_time_json_schema.json
+++ b/runtime/src/test/resources/tosca/tosca_with_date_time_json_schema.json
diff --git a/src/test/resources/tosca/tosca_with_metadata.yaml b/runtime/src/test/resources/tosca/tosca_with_metadata.yaml
index 5967d1569..5967d1569 100644
--- a/src/test/resources/tosca/tosca_with_metadata.yaml
+++ b/runtime/src/test/resources/tosca/tosca_with_metadata.yaml
diff --git a/ui-react-lib/libExportExclusions.dat b/runtime/ui-react-lib/libExportExclusions.dat
index 7194fc2ad..7194fc2ad 100644
--- a/ui-react-lib/libExportExclusions.dat
+++ b/runtime/ui-react-lib/libExportExclusions.dat
diff --git a/ui-react-lib/libIndex.js b/runtime/ui-react-lib/libIndex.js
index 8772421a5..75d1bc9df 100755
--- a/ui-react-lib/libIndex.js
+++ b/runtime/ui-react-lib/libIndex.js
@@ -26,7 +26,6 @@ export { default as CreateLoopModal } from './src/components/dialogs/Loop/Create
export { default as DeployLoopModal } from './src/components/dialogs/Loop/DeployLoopModal';
export { default as LoopActionService } from './src/api/LoopActionService';
export { default as LoopCache } from './src/api/LoopCache';
-export { default as PoliciesListCache } from './src/api/PoliciesListCache';
export { default as LoopLogs } from './src/components/loop_viewer/logs/LoopLogs';
export { default as LoopPropertiesModal } from './src/components/dialogs/Loop/LoopPropertiesModal';
export { default as LoopService } from './src/api/LoopService';
@@ -52,3 +51,6 @@ export { default as UserInfoModal } from './src/components/dialogs/UserInfoModal
export { default as UserService } from './src/api/UserService';
export { default as ViewLoopTemplatesModal } from './src/components/dialogs/Tosca/ViewLoopTemplatesModal';
export { default as ViewAllPolicies } from './src/components/dialogs/Policy/ViewAllPolicies';
+export { default as PolicyDeploymentEditor } from './src/components/dialogs/Policy/PolicyDeploymentEditor';
+export { default as PoliciesTreeViewer } from './src/components/dialogs/Policy/PoliciesTreeViewer';
+export { default as PolicyToscaFileSelector } from './src/components/dialogs/Policy/PolicyToscaFileSelector'; \ No newline at end of file
diff --git a/ui-react-lib/package.json b/runtime/ui-react-lib/package.json
index b1efe2f8e..b1efe2f8e 100755
--- a/ui-react-lib/package.json
+++ b/runtime/ui-react-lib/package.json
diff --git a/ui-react-lib/rollup.config.js b/runtime/ui-react-lib/rollup.config.js
index c671779c0..c671779c0 100755
--- a/ui-react-lib/rollup.config.js
+++ b/runtime/ui-react-lib/rollup.config.js
diff --git a/ui-react/package.json b/runtime/ui-react/package.json
index 8d1104442..fd3dc0ad3 100644
--- a/ui-react/package.json
+++ b/runtime/ui-react/package.json
@@ -27,8 +27,8 @@
"dependencies": {
"@json-editor/json-editor": "2.5.2",
"@fortawesome/fontawesome-free": "5.15.2",
- "react": "17.0.1",
- "react-dom": "17.0.1",
+ "react": "17.0.2",
+ "react-dom": "17.0.2",
"react-scripts": "4.0.3",
"react-bootstrap": "1.5.2",
"bootstrap-css-only": "4.3.1",
@@ -36,9 +36,10 @@
"react-router-dom": "5.2.0",
"@material-ui/core": "4.11.3",
"@material-ui/icons": "4.11.2",
+ "@material-ui/pickers": "3.3.10",
+ "@material-ui/lab": "4.0.0-alpha.57",
"material-table": "1.68.1",
- "react-select": "4.2.1",
- "react-uuid": "1.0.2"
+ "react-select": "4.2.1"
},
"devDependencies": {
"jest": "26.6.0",
@@ -47,9 +48,10 @@
"@babel/preset-react": "7.12.13",
"@babel/plugin-proposal-class-properties": "7.13.0",
"enzyme": "3.11.0",
- "enzyme-adapter-react-17-updated": "1.0.2",
+ "@wojtekmaj/enzyme-adapter-react-17": "0.6.1",
"enzyme-to-json": "3.6.1",
- "jest-fetch-mock": "3.0.3"
+ "jest-fetch-mock": "3.0.3",
+ "jest-canvas-mock": "2.3.1"
},
"browserslist": [
">0.2%",
@@ -71,7 +73,8 @@
"\\.(css|png)$": "identity-obj-proxy"
},
"setupFiles": [
- "./src/setupTests.js"
+ "./src/setupTests.js",
+ "jest-canvas-mock"
],
"snapshotSerializers": [
"enzyme-to-json/serializer"
@@ -95,4 +98,3 @@
]
}
}
-
diff --git a/ui-react/public/index.html b/runtime/ui-react/public/index.html
index bab3e7ab6..bab3e7ab6 100644
--- a/ui-react/public/index.html
+++ b/runtime/ui-react/public/index.html
diff --git a/ui-react/public/manifest.json b/runtime/ui-react/public/manifest.json
index 8210c4ee5..8210c4ee5 100644
--- a/ui-react/public/manifest.json
+++ b/runtime/ui-react/public/manifest.json
diff --git a/ui-react/public/onap.ico b/runtime/ui-react/public/onap.ico
index 85e168ae2..85e168ae2 100644
--- a/ui-react/public/onap.ico
+++ b/runtime/ui-react/public/onap.ico
Binary files differ
diff --git a/ui-react/src/LoopUI.js b/runtime/ui-react/src/LoopUI.js
index 8dc3bdb03..8dc3bdb03 100644
--- a/ui-react/src/LoopUI.js
+++ b/runtime/ui-react/src/LoopUI.js
diff --git a/ui-react/src/LoopUI.test.js b/runtime/ui-react/src/LoopUI.test.js
index bfd6376e3..bfd6376e3 100644
--- a/ui-react/src/LoopUI.test.js
+++ b/runtime/ui-react/src/LoopUI.test.js
diff --git a/ui-react/src/NotFound.js b/runtime/ui-react/src/NotFound.js
index d4b53fd71..d4b53fd71 100644
--- a/ui-react/src/NotFound.js
+++ b/runtime/ui-react/src/NotFound.js
diff --git a/ui-react/src/NotFound.test.js b/runtime/ui-react/src/NotFound.test.js
index 3a5fc107d..3a5fc107d 100644
--- a/ui-react/src/NotFound.test.js
+++ b/runtime/ui-react/src/NotFound.test.js
diff --git a/ui-react/src/OnapClamp.js b/runtime/ui-react/src/OnapClamp.js
index 506f6e09d..506f6e09d 100644
--- a/ui-react/src/OnapClamp.js
+++ b/runtime/ui-react/src/OnapClamp.js
diff --git a/ui-react/src/OnapClamp.test.js b/runtime/ui-react/src/OnapClamp.test.js
index c3336a9ab..c3336a9ab 100644
--- a/ui-react/src/OnapClamp.test.js
+++ b/runtime/ui-react/src/OnapClamp.test.js
diff --git a/ui-react/src/__snapshots__/LoopUI.test.js.snap b/runtime/ui-react/src/__snapshots__/LoopUI.test.js.snap
index 322c93155..322c93155 100644
--- a/ui-react/src/__snapshots__/LoopUI.test.js.snap
+++ b/runtime/ui-react/src/__snapshots__/LoopUI.test.js.snap
diff --git a/ui-react/src/__snapshots__/NotFound.test.js.snap b/runtime/ui-react/src/__snapshots__/NotFound.test.js.snap
index 86bcfd1c4..86bcfd1c4 100644
--- a/ui-react/src/__snapshots__/NotFound.test.js.snap
+++ b/runtime/ui-react/src/__snapshots__/NotFound.test.js.snap
diff --git a/ui-react/src/__snapshots__/OnapClamp.test.js.snap b/runtime/ui-react/src/__snapshots__/OnapClamp.test.js.snap
index 353bc1173..353bc1173 100644
--- a/ui-react/src/__snapshots__/OnapClamp.test.js.snap
+++ b/runtime/ui-react/src/__snapshots__/OnapClamp.test.js.snap
diff --git a/ui-react/src/api/LoopActionService.js b/runtime/ui-react/src/api/LoopActionService.js
index bff812a2f..bff812a2f 100644
--- a/ui-react/src/api/LoopActionService.js
+++ b/runtime/ui-react/src/api/LoopActionService.js
diff --git a/ui-react/src/api/LoopCache.js b/runtime/ui-react/src/api/LoopCache.js
index 3e19b4fc7..3e19b4fc7 100644
--- a/ui-react/src/api/LoopCache.js
+++ b/runtime/ui-react/src/api/LoopCache.js
diff --git a/ui-react/src/api/LoopCache.test.js b/runtime/ui-react/src/api/LoopCache.test.js
index 76f819c69..76f819c69 100644
--- a/ui-react/src/api/LoopCache.test.js
+++ b/runtime/ui-react/src/api/LoopCache.test.js
diff --git a/ui-react/src/api/LoopCacheMockFile.json b/runtime/ui-react/src/api/LoopCacheMockFile.json
index cb9ed87b0..cb9ed87b0 100644
--- a/ui-react/src/api/LoopCacheMockFile.json
+++ b/runtime/ui-react/src/api/LoopCacheMockFile.json
diff --git a/ui-react/src/api/LoopService.js b/runtime/ui-react/src/api/LoopService.js
index 96bb8a0a7..96bb8a0a7 100644
--- a/ui-react/src/api/LoopService.js
+++ b/runtime/ui-react/src/api/LoopService.js
diff --git a/ui-react/src/api/PoliciesListCacheMockFile.json b/runtime/ui-react/src/api/PoliciesListCacheMockFile.json
index 5c6bd5b6b..5c6bd5b6b 100644
--- a/ui-react/src/api/PoliciesListCacheMockFile.json
+++ b/runtime/ui-react/src/api/PoliciesListCacheMockFile.json
diff --git a/ui-react/src/api/PolicyService.js b/runtime/ui-react/src/api/PolicyService.js
index 855d44167..f2886b30a 100644
--- a/ui-react/src/api/PolicyService.js
+++ b/runtime/ui-react/src/api/PolicyService.js
@@ -41,7 +41,7 @@ export default class PolicyService {
console.error("getPoliciesList error occurred ", error);
alert("getPoliciesList error occurred " + error);
return undefined;
- })
+ });
}
static createNewPolicy(policyModelType, policyModelVersion, policyName, policyVersion, policyJson) {
return fetch(window.location.pathname + 'restservices/clds/v2/policies/' + policyModelType + '/'
@@ -93,4 +93,56 @@ export default class PolicyService {
return undefined;
});
}
+ static updatePdpDeployment(pdpOperationsList) {
+ return fetch(window.location.pathname + 'restservices/clds/v2/policies/pdpDeployment', {
+ method: 'PUT',
+ credentials: 'same-origin',
+ headers: {
+ "Content-Type": "application/json"
+ },
+ body: JSON.stringify(pdpOperationsList)
+ })
+ .then(function (response) {
+ console.debug("updatePdpDeployment response received: ", response.status);
+ if (response.ok) {
+ console.info("updatePdpDeployment query successful");
+ return response.text();
+ } else {
+ return response.text().then(responseBody => {
+ throw new Error("HTTP " + response.status + "," + responseBody);
+ })
+ }
+ })
+ .catch(function (error) {
+ console.error("updatePdpDeployment error occurred ", error);
+ alert ("updatePdpDeployment error occurred " + error);
+ return undefined;
+ });
+ }
+ static sendNewPolicyModel(newPolicyModel) {
+ return fetch(window.location.pathname + 'restservices/clds/v2/policies/policytype', {
+ method: 'POST',
+ credentials: 'same-origin',
+ headers: {
+ "Content-Type": "plain/text"
+ },
+ body: newPolicyModel
+ })
+ .then(function (response) {
+ console.debug("sendNewPolicyModel response received: ", response.status);
+ if (response.ok) {
+ console.info("sendNewPolicyModel query successful");
+ return response.text();
+ } else {
+ return response.text().then(responseBody => {
+ throw new Error("HTTP " + response.status + "," + responseBody);
+ })
+ }
+ })
+ .catch(function (error) {
+ console.error("sendNewPolicyModel error occurred ", error);
+ alert ("sendNewPolicyModel error occurred " + error);
+ return undefined;
+ });
+ }
}
diff --git a/ui-react/src/api/PolicyToscaService.js b/runtime/ui-react/src/api/PolicyToscaService.js
index c54e768a9..e2a1f45e4 100644
--- a/ui-react/src/api/PolicyToscaService.js
+++ b/runtime/ui-react/src/api/PolicyToscaService.js
@@ -56,9 +56,9 @@ export default class PolicyToscaService {
console.error("getToscaPolicyModelYaml error received", error);
return "";
});
- }
+ }
- static getToscaPolicyModel(policyModelType, policyModelVersion) {
+ static getToscaPolicyModel(policyModelType, policyModelVersion) {
return fetch(window.location.pathname + 'restservices/clds/v2/policyToscaModels/' + policyModelType + "/" + policyModelVersion, {
method: 'GET',
credentials: 'same-origin'
@@ -77,60 +77,4 @@ export default class PolicyToscaService {
return {};
});
}
-
- static createPolicyModelFromToscaModel(jsonData) {
- return fetch(window.location.pathname + 'restservices/clds/v2/policyToscaModels', {
- method: 'POST',
- credentials: 'same-origin',
- headers: {
- "Content-Type": "a",
- },
- body: JSON.stringify(jsonData)
- })
- .then(function(response) {
- console.debug("createPolicyModelFromToscaModel response received: ", response.status);
- if (response.ok) {
- var message = {
- status: response.status,
- message: 'Tosca Policy Model successfully uploaded'
- };
- return message;
- } else {
- console.error("createPolicyModelFromToscaModel failed");
- return response.text();
- }
- })
- .catch(function(error) {
- console.error("createPolicyModelFromToscaModel error received", error);
- return "";
- });
- }
-
- static updatePolicyModelTosca(policyModelType, policyModelVersion, jsonData) {
- return fetch(window.location.pathname + 'restservices/clds/v2/policyToscaModels/' + policyModelType + '/' + policyModelVersion, {
- method: 'PUT',
- credentials: 'same-origin',
- headers: {
- "Content-Type": "a",
- },
- body: JSON.stringify(jsonData)
- })
- .then(function(response) {
- console.debug("updatePolicyModelTosca response received: ", response.status);
- if (response.ok) {
- var message = {
- status: response.status,
- message: 'Tosca Policy Model successfully uploaded'
- };
- return message;
- } else {
- console.error("updatePolicyModelTosca failed");
- return response.text();
- }
- })
- .catch(function(error) {
- console.error("updatePolicyModelTosca error received", error);
- return "";
- });
- }
}
diff --git a/ui-react/src/api/TemplateService.js b/runtime/ui-react/src/api/TemplateService.js
index 08436f2b8..08436f2b8 100644
--- a/ui-react/src/api/TemplateService.js
+++ b/runtime/ui-react/src/api/TemplateService.js
diff --git a/ui-react/src/api/UserService.js b/runtime/ui-react/src/api/UserService.js
index 5fb4aa6b4..5fb4aa6b4 100644
--- a/ui-react/src/api/UserService.js
+++ b/runtime/ui-react/src/api/UserService.js
diff --git a/ui-react/src/components/dialogs/Loop/CreateLoopModal.js b/runtime/ui-react/src/components/dialogs/Loop/CreateLoopModal.js
index 5663360a0..5663360a0 100644
--- a/ui-react/src/components/dialogs/Loop/CreateLoopModal.js
+++ b/runtime/ui-react/src/components/dialogs/Loop/CreateLoopModal.js
diff --git a/ui-react/src/components/dialogs/Loop/CreateLoopModal.test.js b/runtime/ui-react/src/components/dialogs/Loop/CreateLoopModal.test.js
index 1caa22dc7..8ef53b412 100644
--- a/ui-react/src/components/dialogs/Loop/CreateLoopModal.test.js
+++ b/runtime/ui-react/src/components/dialogs/Loop/CreateLoopModal.test.js
@@ -26,6 +26,10 @@ import CreateLoopModal from './CreateLoopModal';
import LoopService from '../../../api/LoopService';
import TemplateService from '../../../api/TemplateService';
+let errorMessage = '';
+window.alert = jest.fn().mockImplementation((mesg) => { errorMessage = mesg ; return });
+
+
describe('Verify CreateLoopModal', () => {
it('Test the render method', async () => {
diff --git a/ui-react/src/components/dialogs/Loop/DeployLoopModal.js b/runtime/ui-react/src/components/dialogs/Loop/DeployLoopModal.js
index 2155977f6..803cfa9cb 100644
--- a/ui-react/src/components/dialogs/Loop/DeployLoopModal.js
+++ b/runtime/ui-react/src/components/dialogs/Loop/DeployLoopModal.js
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -66,13 +66,7 @@ export default class DeployLoopModal extends React.Component {
}
getInitialKeyValue(temporaryPropertiesJson) {
const deployJsonList = temporaryPropertiesJson["dcaeDeployParameters"];
- let initialKey;
- Object.keys(deployJsonList)
- .filter((obj) => Object.keys(deployJsonList).indexOf(obj) === 0)
- .map(obj =>
- initialKey = obj
- );
- return initialKey;
+ return Object.keys(deployJsonList).find((obj) => Object.keys(deployJsonList).indexOf(obj) === 0);
}
componentWillReceiveProps(newProps) {
this.setState({
@@ -143,8 +137,8 @@ export default class DeployLoopModal extends React.Component {
const deployJsonList = this.state.temporaryPropertiesJson["dcaeDeployParameters"];
var indents = [];
- Object.keys(deployJsonList).map((item,key) =>
- indents.push(<Tab eventKey={item} title={item}>
+ Object.keys(deployJsonList).forEach(item =>
+ indents.push(<Tab key={item} eventKey={item} title={item}>
{this.renderDeployParam(deployJsonList[item])}
</Tab>)
);
@@ -152,8 +146,8 @@ export default class DeployLoopModal extends React.Component {
}
renderDeployParam(deployJson) {
var indents = [];
- Object.keys(deployJson).map((item,key) =>
- indents.push(<FormStyled>
+ Object.keys(deployJson).forEach(item =>
+ indents.push(<FormStyled key={item}>
<Form.Label>{item}</Form.Label>
<Form.Control type="text" name={item} onChange={this.handleChange} defaultValue={deployJson[item]}></Form.Control>
</FormStyled>));
diff --git a/ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js b/runtime/ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js
index 84dbfd1f6..84dbfd1f6 100644
--- a/ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js
+++ b/runtime/ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js
diff --git a/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.js b/runtime/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.js
index acd0acade..acd0acade 100644
--- a/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.js
+++ b/runtime/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.js
diff --git a/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.test.js b/runtime/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.test.js
index 5bbefe228..5bbefe228 100644
--- a/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.test.js
+++ b/runtime/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.test.js
diff --git a/ui-react/src/components/dialogs/Loop/ModifyLoopModal.js b/runtime/ui-react/src/components/dialogs/Loop/ModifyLoopModal.js
index 5154a880b..f6c0d2ede 100644
--- a/ui-react/src/components/dialogs/Loop/ModifyLoopModal.js
+++ b/runtime/ui-react/src/components/dialogs/Loop/ModifyLoopModal.js
@@ -122,13 +122,6 @@ export default class ModifyLoopModal extends React.Component {
this.initializeToscaPolicyModelsInfo();
}
- componentWillReceiveProps(newProps) {
- this.setState({
- loopCache: newProps.loopCache,
- temporaryPropertiesJson: JSON.parse(JSON.stringify(newProps.loopCache.getGlobalProperties()))
- });
- }
-
initializeToscaPolicyModelsInfo() {
var operationalPolicies = this.state.loopCache.getOperationalPolicies();
var selectedPolicyModels = [];
diff --git a/ui-react/src/components/dialogs/Loop/ModifyLoopModal.test.js b/runtime/ui-react/src/components/dialogs/Loop/ModifyLoopModal.test.js
index 055ad0e68..055ad0e68 100644
--- a/ui-react/src/components/dialogs/Loop/ModifyLoopModal.test.js
+++ b/runtime/ui-react/src/components/dialogs/Loop/ModifyLoopModal.test.js
diff --git a/ui-react/src/components/dialogs/Loop/OpenLoopModal.js b/runtime/ui-react/src/components/dialogs/Loop/OpenLoopModal.js
index b45df6502..b45df6502 100644
--- a/ui-react/src/components/dialogs/Loop/OpenLoopModal.js
+++ b/runtime/ui-react/src/components/dialogs/Loop/OpenLoopModal.js
diff --git a/ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js b/runtime/ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js
index 1865869df..1865869df 100644
--- a/ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js
+++ b/runtime/ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js
diff --git a/ui-react/src/components/dialogs/Loop/__snapshots__/CreateLoopModal.test.js.snap b/runtime/ui-react/src/components/dialogs/Loop/__snapshots__/CreateLoopModal.test.js.snap
index 1ba9dbaf1..1ba9dbaf1 100644
--- a/ui-react/src/components/dialogs/Loop/__snapshots__/CreateLoopModal.test.js.snap
+++ b/runtime/ui-react/src/components/dialogs/Loop/__snapshots__/CreateLoopModal.test.js.snap
diff --git a/ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap b/runtime/ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap
index 4779ced0d..33f8faa77 100644
--- a/ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap
+++ b/runtime/ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap
@@ -26,9 +26,12 @@ exports[`Verify DeployLoopModal Test the render method 1`] = `
>
<Tab
eventKey="testMs"
+ key="testMs"
title="testMs"
>
- <Styled(FormGroup)>
+ <Styled(FormGroup)
+ key="location_id"
+ >
<FormLabel
column={false}
srOnly={false}
@@ -42,7 +45,9 @@ exports[`Verify DeployLoopModal Test the render method 1`] = `
type="text"
/>
</Styled(FormGroup)>
- <Styled(FormGroup)>
+ <Styled(FormGroup)
+ key="policy_id"
+ >
<FormLabel
column={false}
srOnly={false}
diff --git a/ui-react/src/components/dialogs/Loop/__snapshots__/LoopPropertiesModal.test.js.snap b/runtime/ui-react/src/components/dialogs/Loop/__snapshots__/LoopPropertiesModal.test.js.snap
index 3baaa5798..3baaa5798 100644
--- a/ui-react/src/components/dialogs/Loop/__snapshots__/LoopPropertiesModal.test.js.snap
+++ b/runtime/ui-react/src/components/dialogs/Loop/__snapshots__/LoopPropertiesModal.test.js.snap
diff --git a/ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap b/runtime/ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap
index 581fd0ec0..581fd0ec0 100644
--- a/ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap
+++ b/runtime/ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap
diff --git a/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.js b/runtime/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.js
index 90bbc887c..90bbc887c 100644
--- a/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.js
+++ b/runtime/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.js
diff --git a/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js b/runtime/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js
index a4c1335d8..a4c1335d8 100644
--- a/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js
+++ b/runtime/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js
diff --git a/ui-react/src/components/dialogs/ManageDictionaries/__snapshots__/ManageDictionaries.test.js.snap b/runtime/ui-react/src/components/dialogs/ManageDictionaries/__snapshots__/ManageDictionaries.test.js.snap
index 6b583632f..6b583632f 100644
--- a/ui-react/src/components/dialogs/ManageDictionaries/__snapshots__/ManageDictionaries.test.js.snap
+++ b/runtime/ui-react/src/components/dialogs/ManageDictionaries/__snapshots__/ManageDictionaries.test.js.snap
diff --git a/ui-react/src/components/dialogs/PerformActions.js b/runtime/ui-react/src/components/dialogs/PerformActions.js
index f6001e21f..f6001e21f 100644
--- a/ui-react/src/components/dialogs/PerformActions.js
+++ b/runtime/ui-react/src/components/dialogs/PerformActions.js
diff --git a/ui-react/src/components/dialogs/PerformActions.test.js b/runtime/ui-react/src/components/dialogs/PerformActions.test.js
index c91c2f675..c91c2f675 100644
--- a/ui-react/src/components/dialogs/PerformActions.test.js
+++ b/runtime/ui-react/src/components/dialogs/PerformActions.test.js
diff --git a/runtime/ui-react/src/components/dialogs/Policy/PoliciesTreeViewer.js b/runtime/ui-react/src/components/dialogs/Policy/PoliciesTreeViewer.js
new file mode 100644
index 000000000..9c2f102b4
--- /dev/null
+++ b/runtime/ui-react/src/components/dialogs/Policy/PoliciesTreeViewer.js
@@ -0,0 +1,109 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+import React, { forwardRef } from 'react'
+import TreeView from '@material-ui/lab/TreeView';
+import TreeItem from '@material-ui/lab/TreeItem';
+import FolderIcon from '@material-ui/icons/Folder';
+import FolderOpenIcon from '@material-ui/icons/FolderOpen';
+import DescriptionIcon from '@material-ui/icons/Description';
+
+
+export default class PoliciesTreeViewer extends React.Component {
+
+ separator = ".";
+
+ nodesList = new Map();
+
+ constructor(props, context) {
+ super(props, context);
+ this.createPoliciesTree = this.createPoliciesTree.bind(this);
+ this.handleTreeItemClick = this.handleTreeItemClick.bind(this);
+ this.buildNameWithParent = this.buildNameWithParent.bind(this);
+
+ }
+
+ state = {
+ policiesTreeData: this.createPoliciesTree(this.props.policiesData),
+ }
+
+ componentDidUpdate(prevProps) {
+ if (prevProps.policiesData !== this.props.policiesData) {
+ this.setState({policiesTreeData: this.createPoliciesTree(this.props.policiesData)})
+ }
+ }
+
+ createPoliciesTree(policiesArray) {
+ // put my policies array in a Json
+ let nodeId = 1;
+ let root = {id:nodeId, policyCount:0, name:"ROOT", children:[], parent: undefined};
+ this.nodesList.set(nodeId++, root);
+
+ policiesArray.forEach(policy => {
+ let currentTreeNode = root;
+ policy[this.props.valueForTreeCreation].split(this.separator).forEach((policyNamePart, index, policyNamePartsArray) => {
+ let node = currentTreeNode["children"].find(element => element.name === policyNamePart);
+ if (typeof(node) === "undefined") {
+ node = {id:nodeId, policyCount:0, children:[], name:policyNamePart, parent:currentTreeNode};
+ this.nodesList.set(nodeId++, node);
+ currentTreeNode["children"].push(node);
+ }
+ if ((index+1) === policyNamePartsArray.length) {
+ ++currentTreeNode["policyCount"];
+ }
+ currentTreeNode = node;
+ })
+ })
+ return root;
+ }
+
+ buildNameWithParent(node) {
+ let nameToBuild = node.name;
+ if (node.parent !== undefined) {
+ nameToBuild = this.buildNameWithParent(node.parent) + this.separator + node.name;
+ }
+ return nameToBuild;
+ }
+
+ handleTreeItemClick(event, value) {
+ let fullName = this.buildNameWithParent(this.nodesList.get(value[0])).substring(5);
+ this.props.policiesFilterFunction(fullName);
+ }
+
+ renderTreeItems(nodes) {
+ return (<TreeItem key={nodes.id} nodeId={nodes.id} label={nodes.name + "("+ nodes.policyCount + ")"} onNodeSelect={this.handleTreeItemClick}>
+ {
+ Array.isArray(nodes.children) ? nodes.children.map((node) => this.renderTreeItems(node)) : null
+ }
+ </TreeItem>);
+ };
+
+ render() {
+ return (
+ <TreeView defaultExpanded={['root']} defaultCollapseIcon={<FolderOpenIcon />}
+ defaultExpandIcon={<FolderIcon />} defaultEndIcon={<DescriptionIcon />} onNodeSelect={this.handleTreeItemClick} multiSelect>
+ {this.renderTreeItems(this.state.policiesTreeData)}
+ </TreeView>
+ );
+ }
+} \ No newline at end of file
diff --git a/runtime/ui-react/src/components/dialogs/Policy/PolicyDeploymentEditor.js b/runtime/ui-react/src/components/dialogs/Policy/PolicyDeploymentEditor.js
new file mode 100644
index 000000000..57d61600a
--- /dev/null
+++ b/runtime/ui-react/src/components/dialogs/Policy/PolicyDeploymentEditor.js
@@ -0,0 +1,176 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+import React, { forwardRef } from 'react';
+import Modal from 'react-bootstrap/Modal';
+import styled from 'styled-components';
+import Button from 'react-bootstrap/Button';
+import Alert from 'react-bootstrap/Alert';
+import PolicyService from '../../../api/PolicyService';
+import FormGroup from '@material-ui/core/FormGroup';
+import Checkbox from '@material-ui/core/Checkbox';
+import FormControlLabel from '@material-ui/core/FormControlLabel';
+
+const DivWhiteSpaceStyled = styled.div`
+ white-space: pre;
+`
+
+const PanelDiv = styled.div`
+ text-align: justify;
+ font-size: ${props => props.theme.policyEditorFontSize};
+ background-color: ${props => props.theme.loopViewerBackgroundColor};
+`
+
+export default class PolicyDeploymentEditor extends React.Component {
+
+ state = {
+ policyData: this.props.policyData,
+ showSuccessAlert: false,
+ showFailAlert: false,
+ checkboxesState: this.createPdpStructure(this.props.policyData),
+ checkboxesInitialState: this.createPdpStructure(this.props.policyData),
+ };
+
+ constructor(props, context) {
+ super(props, context);
+ this.handleClose = this.handleClose.bind(this);
+ this.handleUpdatePdpDeployment = this.handleUpdatePdpDeployment.bind(this);
+ this.disableAlert = this.disableAlert.bind(this);
+ this.renderPdpDeploymentCheckboxes = this.renderPdpDeploymentCheckboxes.bind(this);
+ this.createPdpStructure = this.createPdpStructure.bind(this);
+ this.handleCheckboxChange = this.handleCheckboxChange.bind(this);
+ this.createPdpGroupOperations = this.createPdpGroupOperations.bind(this);
+ }
+
+ handleClose() {
+ this.setState({ show: false });
+
+ }
+
+ disableAlert() {
+ this.setState ({ showSuccessAlert: false, showFailAlert: false });
+ }
+
+ createPdpGroupOperations(initialStates, newStates) {
+ let commandsArray = [];
+ initialStates.forEach(initElem => {
+ let newStateFound = newStates.find(newElement => newElement.name === initElem.name);
+ if (initElem.value !== newStateFound.value) {
+ let newPdpGroupsArray = newStateFound.name.split("/");
+ let operation = "POST/";
+ if (initElem.value) {
+ operation = "DELETE/";
+ }
+ commandsArray.push(operation + newPdpGroupsArray[0] + "/"+newPdpGroupsArray[1] + "/"
+ +this.state.policyData.name + "/" + this.state.policyData.version);
+ }
+ });
+ return commandsArray.length > 0 ? {"PdpActions":commandsArray} : undefined;
+ }
+
+ handleUpdatePdpDeployment() {
+ let operationsList = this.createPdpGroupOperations(this.state.checkboxesInitialState,
+ this.state.checkboxesState);
+ if (typeof(operationsList) !== "undefined") {
+ PolicyService.updatePdpDeployment(operationsList).then(respPdpDeploymentUpdate => {
+ if (typeof(respPdpDeploymentUpdate) === "undefined") {
+ //it indicates a failure
+ this.setState({
+ showFailAlert: true,
+ showMessage: 'Pdp Deployment update Failure'
+ });
+ } else {
+ this.setState({
+ showSuccessAlert: true,
+ showMessage: 'Pdp Deployment Update successful'
+ });
+ this.props.policiesTableUpdateFunction();
+ }
+ })
+ } else {
+ this.setState({
+ showSuccessAlert: true,
+ showMessage: 'Pdp Deployment: Nothing to change'
+ });
+ }
+ }
+
+ createPdpStructure(policyData) {
+ // Create map with data for all group/subgroup where the policy is deployed
+ let infoPdpMap = new Map();
+ if (typeof policyData.pdpGroupInfo !== "undefined") {
+ policyData["pdpGroupInfo"].forEach(pdpGroupElem => {
+ let pdpGroupName = Object.keys(pdpGroupElem)[0];
+ pdpGroupElem[pdpGroupName]["pdpSubgroups"].forEach(pdpSubGroupElem => {
+ infoPdpMap.set(pdpGroupName + "/" + pdpSubGroupElem["pdpType"], true);
+ });
+ });
+ }
+ // Create the possible values for pdpgroup/subgroup and tick the ones where policy is deployed
+ let pdpStates = [];
+ if (typeof policyData.supportedPdpGroups !== "undefined") {
+ for (const pdpGroup of policyData["supportedPdpGroups"]) {
+ let pdpGroupName = Object.keys(pdpGroup)[0];
+ for (const pdpSubGroup of Object.values(pdpGroup)[0]) {
+ let fullName = pdpGroupName + "/" + pdpSubGroup;
+ pdpStates.push({name: fullName,
+ value: infoPdpMap.get(fullName) !== undefined});
+ }
+ }
+ }
+ return pdpStates;
+ }
+
+ handleCheckboxChange(event) {
+ const checkboxesArray = this.state.checkboxesState;
+ checkboxesArray.find(element => element.name === event.target.name).value = event.target.checked;
+ this.setState({checkboxesState:checkboxesArray});
+ }
+
+ renderPdpDeploymentCheckboxes() {
+ return this.state.checkboxesState.map(item => {
+ return <FormControlLabel control={<Checkbox checked={item.value} onChange={this.handleCheckboxChange}
+ name={item.name} />} label={item.name} />;
+ });
+ }
+
+ render() {
+ return (
+ <PanelDiv>
+ <Alert variant="success" show={this.state.showSuccessAlert} onClose={this.disableAlert} dismissible>
+ <DivWhiteSpaceStyled>
+ {this.state.showMessage}
+ </DivWhiteSpaceStyled>
+ </Alert>
+ <Alert variant="danger" show={this.state.showFailAlert} onClose={this.disableAlert} dismissible>
+ <DivWhiteSpaceStyled>
+ {this.state.showMessage}
+ </DivWhiteSpaceStyled>
+ </Alert>
+ <Button variant="secondary" title="Update the policy to the specified PDP Groups/Subgroups"
+ onClick={this.handleUpdatePdpDeployment}>Update PDP</Button>
+ <FormGroup>{this.renderPdpDeploymentCheckboxes()}</FormGroup>
+ </PanelDiv>
+ );
+ }
+ } \ No newline at end of file
diff --git a/ui-react/src/components/dialogs/Policy/PolicyEditor.js b/runtime/ui-react/src/components/dialogs/Policy/PolicyEditor.js
index f20650e26..be77f14e9 100644
--- a/ui-react/src/components/dialogs/Policy/PolicyEditor.js
+++ b/runtime/ui-react/src/components/dialogs/Policy/PolicyEditor.js
@@ -31,9 +31,7 @@ import TextField from '@material-ui/core/TextField';
import Alert from 'react-bootstrap/Alert';
import PolicyService from '../../../api/PolicyService';
import OnapUtils from '../../../utils/OnapUtils';
-import uuid from 'react-uuid';
-//const JSONEditor = require("@json-editor/json-editor").JSONEditor;
const DivWhiteSpaceStyled = styled.div`
white-space: pre;
`
@@ -46,7 +44,6 @@ const JsonEditorDiv = styled.div`
border: 1px solid #C0C0C0;
`
const PanelDiv = styled.div`
- margin-top: 20px;
text-align: justify;
font-size: ${props => props.theme.policyEditorFontSize};
background-color: ${props => props.theme.loopViewerBackgroundColor};
@@ -63,7 +60,7 @@ export default class PolicyEditor extends React.Component {
showSuccessAlert: false,
showFailAlert: false,
jsonEditor: null,
- jsonEditorDivId: uuid(),
+ jsonEditorDivId: this.props.policyModelType + "_" + this.props.policyModelTypeVersion + "_" + this.props.policyName + "_" + this.props.policyVersion,
}
constructor(props, context) {
@@ -112,17 +109,12 @@ export default class PolicyEditor extends React.Component {
showSuccessAlert: true,
showMessage: 'Policy '+ this.state.policyName + '/' + this.state.policyVersion + ' created successfully'
});
- this.props.policyUpdateFunction();
+ this.props.policiesTableUpdateFunction();
}
})
}
}
- bumpVersion(versionToBump) {
- let semVer = versionToBump.split(".");
- return parseInt(semVer[0])+1 + "." + semVer[1] + "." + semVer[2];
- }
-
getToscaModelForPolicy() {
PolicyToscaService.getToscaPolicyModel(this.state.policyModelType, this.state.policyModelTypeVersion).then(respJsonPolicyTosca => {
if (respJsonPolicyTosca !== {}) {
@@ -139,27 +131,10 @@ export default class PolicyEditor extends React.Component {
}
createJsonEditor(toscaModel, editorData) {
- /*JSONEditor.defaults.themes.myBootstrap4 = JSONEditor.defaults.themes.bootstrap4.extend({
- getTab: function(text,tabId) {
- var liel = document.createElement('li');
- liel.classList.add('nav-item');
- var ael = document.createElement("a");
- ael.classList.add("nav-link");
- ael.setAttribute("style",'padding:10px;max-width:160px;');
- ael.setAttribute("href", "#" + tabId);
- ael.setAttribute('data-toggle', 'tab');
- text.setAttribute("style",'word-wrap:break-word;');
- ael.appendChild(text);
- liel.appendChild(ael);
- return liel;
- }
- });*/
-
return new JSONEditor(document.getElementById(this.state.jsonEditorDivId),
{
schema: toscaModel,
startval: editorData,
- //theme: 'myBootstrap4',
theme: 'bootstrap4',
iconlib: 'fontawesome5',
object_layout: 'grid',
diff --git a/runtime/ui-react/src/components/dialogs/Policy/PolicyEditor.test.js b/runtime/ui-react/src/components/dialogs/Policy/PolicyEditor.test.js
new file mode 100644
index 000000000..0b734430a
--- /dev/null
+++ b/runtime/ui-react/src/components/dialogs/Policy/PolicyEditor.test.js
@@ -0,0 +1,71 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+import React from 'react';
+import PolicyEditor from './PolicyEditor';
+import { shallow, mount } from 'enzyme';
+import PolicyToscaService from '../../../api/PolicyToscaService';
+
+describe('Verify PolicyEditor', () => {
+ const fs = require('fs');
+
+ let toscaJson = fs.readFileSync('src/components/dialogs/Policy/toscaData.test.json', {encoding:'utf8', flag:'r'})
+
+ const policyProperties = {
+ "tca.policy": {
+ "domain": "measurementsForVfScaling",
+ "metricsPerEventName": [
+ {
+ "policyScope": "DCAE",
+ "thresholds": [
+ {
+ "version": "1.0.2",
+ "severity": "MAJOR",
+ "thresholdValue": 200,
+ "closedLoopEventStatus": "ONSET",
+ "closedLoopControlName": "LOOP_test",
+ "direction": "LESS_OR_EQUAL",
+ "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta"
+ }
+ ],
+ "eventName": "vLoadBalancer",
+ "policyVersion": "v0.0.1",
+ "controlLoopSchemaType": "VM",
+ "policyName": "DCAE.Config_tca-hi-lo"
+ }
+ ]
+ }
+ };
+
+
+ it('Test the render method',async () => {
+ PolicyToscaService.getToscaPolicyModel = jest.fn().mockImplementation(() => {
+ return Promise.resolve(toscaJson);
+ });
+
+ const component = mount(<PolicyEditor policyModelType="onap.policies.monitoring.tcagen2" policyModelTypeVersion="1.0.0"
+ policyName="org.onap.new" policyVersion="1.0.0" policyProperties={policyProperties}
+ policiesTableUpdateFunction={() => {}} />);
+ await PolicyToscaService.getToscaPolicyModel();
+ expect(component).toMatchSnapshot();
+ });
+}); \ No newline at end of file
diff --git a/ui-react/src/components/dialogs/Policy/PolicyModal.js b/runtime/ui-react/src/components/dialogs/Policy/PolicyModal.js
index 2fa0b5432..4a883fffa 100644
--- a/ui-react/src/components/dialogs/Policy/PolicyModal.js
+++ b/runtime/ui-react/src/components/dialogs/Policy/PolicyModal.js
@@ -138,21 +138,6 @@ export default class PolicyModal extends React.Component {
}
createJsonEditor(toscaModel, editorData) {
- /*JSONEditor.defaults.themes.myBootstrap4 = JSONEditor.defaults.themes.bootstrap4.extend({
- getTab: function(text,tabId) {
- var liel = document.createElement('li');
- liel.classList.add('nav-item');
- var ael = document.createElement("a");
- ael.classList.add("nav-link");
- ael.setAttribute("style",'padding:10px;max-width:160px;');
- ael.setAttribute("href", "#" + tabId);
- ael.setAttribute('data-toggle', 'tab');
- text.setAttribute("style",'word-wrap:break-word;');
- ael.appendChild(text);
- liel.appendChild(ael);
- return liel;
- }
- });*/
return new JSONEditor(document.getElementById("editor"),
{ schema: toscaModel,
startval: editorData,
@@ -312,17 +297,17 @@ export default class PolicyModal extends React.Component {
}
renderButton() {
- var allElement = [(<Button variant="secondary" onClick={this.handleClose}>
+ var allElement = [(<Button key="close" variant="secondary" onClick={this.handleClose}>
Close
</Button>)];
if(this.state.policyInstanceType !== OnapConstant.operationalPolicyType || !this.state.loopCache.isOpenLoopTemplate()) {
allElement.push((
- <Button variant="primary" disabled={this.readOnly} onClick={this.handleSave}>
+ <Button key="save" variant="primary" disabled={this.readOnly} onClick={this.handleSave}>
Save Changes
</Button>
));
allElement.push((
- <Button variant="primary" disabled={this.readOnly} onClick={this.handleRefresh}>
+ <Button key="refresh" variant="primary" disabled={this.readOnly} onClick={this.handleRefresh}>
Refresh
</Button>
));
diff --git a/ui-react/src/components/dialogs/Policy/PolicyModal.test.js b/runtime/ui-react/src/components/dialogs/Policy/PolicyModal.test.js
index cb0a32020..1e6fac0a0 100644
--- a/ui-react/src/components/dialogs/Policy/PolicyModal.test.js
+++ b/runtime/ui-react/src/components/dialogs/Policy/PolicyModal.test.js
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,6 +26,7 @@ import PolicyModal from './PolicyModal';
import LoopCache from '../../../api/LoopCache';
import LoopService from '../../../api/LoopService';
import OnapConstant from '../../../utils/OnapConstants';
+import { shallow } from 'enzyme';
describe('Verify PolicyModal', () => {
beforeEach(() => {
@@ -52,11 +53,12 @@ describe('Verify PolicyModal', () => {
"jsonRepresentation" : {"schema": {}}
}]
};
+
const loopCache = new LoopCache(loopCacheStr);
const historyMock = { push: jest.fn() };
const flushPromises = () => new Promise(setImmediate);
const match = {params: {policyName:"OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca", policyInstanceType: OnapConstant.operationalPolicyType}}
-
+
it('Test handleClose', () => {
const handleClose = jest.spyOn(PolicyModal.prototype,'handleClose');
const component = mount(<PolicyModal history={historyMock} match={match} loopCache={loopCache}/>)
@@ -125,4 +127,9 @@ describe('Verify PolicyModal', () => {
instance.handlePdpSubgroupChange(event);
expect(component.state('chosenPdpSubgroup')).toEqual("option1");
});
+
+ it('Test the render method', () => {
+ const component = shallow(<PolicyModal loopCache={loopCache} match={match}/>)
+ expect(component).toMatchSnapshot();
+ });
}); \ No newline at end of file
diff --git a/runtime/ui-react/src/components/dialogs/Policy/PolicyToscaFileSelector.js b/runtime/ui-react/src/components/dialogs/Policy/PolicyToscaFileSelector.js
new file mode 100644
index 000000000..9cd3d4172
--- /dev/null
+++ b/runtime/ui-react/src/components/dialogs/Policy/PolicyToscaFileSelector.js
@@ -0,0 +1,128 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+import React from 'react'
+import Modal from 'react-bootstrap/Modal';
+import Form from 'react-bootstrap/Form';
+import Row from 'react-bootstrap/Row';
+import Col from 'react-bootstrap/Col';
+import styled from 'styled-components';
+import Alert from 'react-bootstrap/Alert';
+import { Input, InputLabel, Button , SvgIcon} from "@material-ui/core";
+import PublishIcon from '@material-ui/icons/Publish';
+import PolicyService from '../../../api/PolicyService';
+
+const ModalStyled = styled(Modal)`
+ background-color: transparent;
+`
+
+const StyledMessagesDiv = styled.div`
+ overflow: auto;
+ max-height: 300px;
+`
+
+
+export default class PolicyToscaFileSelector extends React.Component {
+
+ state = {
+ show: this.props.show,
+ alertMessages: [],
+ }
+ constructor(props, context) {
+ super(props, context);
+ this.handleClose = this.handleClose.bind(this);
+ this.onFileChange = this.onFileChange.bind(this);
+ }
+
+ componentDidUpdate(prevProps) {
+ if (this.props.show !== this.state.show) {
+ this.setState({show: this.props.show});
+ }
+ }
+
+ handleClose() {
+ this.props.disableFunction();
+ this.setState({alertMessages:[]});
+ }
+
+ onFileChange(target) {
+ this.setState({alertMessages:[]});
+ target.currentTarget.files.forEach(file => {
+ const fileReader = new FileReader();
+ fileReader.readAsDataURL(file);
+ fileReader.onload = (content) => {
+ PolicyService.sendNewPolicyModel(atob(content.target.result.split(",")[1])).then(respModelCreate => {
+ if (typeof(respModelCreate) === "undefined") {
+ //it indicates a failure
+ this.setState(state => {
+ return {
+ alertMessages: [...state.alertMessages,(<Alert variant="danger"><Alert.Heading>{file.name}</Alert.Heading><p>Policy Tosca Model Creation Failure</p><hr/><p>Type: {file.type}</p><p>Size: {file.size}</p></Alert>)]
+ };
+ });
+ } else {
+ this.props.toscaTableUpdateFunction();
+ this.setState(state => {
+ return {
+ alertMessages: [...state.alertMessages,(<Alert variant="success"><Alert.Heading>{file.name}</Alert.Heading><p>Policy Tosca Model Created Successfully</p><hr/><p>Type: {file.type}</p><p>Size: {file.size}</p></Alert>)]
+ };
+ });
+ }
+ });
+ };
+ });
+
+ }
+
+ render() {
+ return (
+ <ModalStyled size="lg" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false} >
+ <Modal.Header closeButton>
+ <Modal.Title>Create New Policy Tosca Model</Modal.Title>
+ </Modal.Header>
+ <Modal.Body>
+ <Form.Group as={Row} controlId="formPlaintextEmail">
+ <Col sm="10">
+ <input type="file" multiple accept=".yaml,.yml" id="fileUploadButton" style={{ display: 'none' }} onChange={this.onFileChange} />
+ <label htmlFor={'fileUploadButton'}>
+ <Button color="primary" variant="contained" component="span"
+ startIcon={
+ <SvgIcon fontSize="small">
+ <PublishIcon />
+ </SvgIcon>
+ }>
+ Upload Files
+ </Button>
+ <p>(Only YAML files are supported)</p>
+ </label>
+ <StyledMessagesDiv>
+ {this.state.alertMessages}
+ </StyledMessagesDiv>
+ </Col>
+ </Form.Group>
+ </Modal.Body>
+ <Modal.Footer>
+ <Button variant="secondary" onClick={this.handleClose}>Close</Button>
+ </Modal.Footer>
+ </ModalStyled>
+ );
+ }
+} \ No newline at end of file
diff --git a/ui-react/src/components/dialogs/Policy/ToscaViewer.js b/runtime/ui-react/src/components/dialogs/Policy/ToscaViewer.js
index 06e83164d..fa83aa245 100644
--- a/ui-react/src/components/dialogs/Policy/ToscaViewer.js
+++ b/runtime/ui-react/src/components/dialogs/Policy/ToscaViewer.js
@@ -26,8 +26,7 @@ import PolicyToscaService from '../../../api/PolicyToscaService';
import styled from 'styled-components';
import Button from 'react-bootstrap/Button';
-const JsonEditorDiv = styled.div`
- margin-top: 20px;
+const ToscaDiv = styled.div`
background-color: ${props => props.theme.toscaTextareaBackgroundColor};
text-align: justify;
font-size: ${props => props.theme.toscaTextareaFontSize};
@@ -50,18 +49,18 @@ export default class ToscaViewer extends React.Component {
getToscaModelYamlFor(toscaData) {
PolicyToscaService.getToscaPolicyModelYaml(toscaData["policyModelType"], toscaData["version"]).then(respYamlPolicyTosca => {
this.setState({
- yamlPolicyTosca: respYamlPolicyTosca,
- })
+ yamlPolicyTosca: respYamlPolicyTosca,
+ })
});
}
render() {
return (
- <JsonEditorDiv>
- <pre>{this.state.yamlPolicyTosca}</pre>
- <Button variant="secondary" title="Create a new policy version from the defined parameters"
- onClick={this.handleCreateNewVersion}>Create New Version</Button>
- </JsonEditorDiv>
+ <ToscaDiv>
+ <pre>{this.state.yamlPolicyTosca}</pre>
+ <Button variant="secondary" title="Create a new policy version from the defined parameters"
+ onClick={this.handleCreateNewVersion}>Create New Version</Button>
+ </ToscaDiv>
);
}
-} \ No newline at end of file
+}
diff --git a/runtime/ui-react/src/components/dialogs/Policy/ToscaViewer.test.js b/runtime/ui-react/src/components/dialogs/Policy/ToscaViewer.test.js
new file mode 100644
index 000000000..cc8c59a03
--- /dev/null
+++ b/runtime/ui-react/src/components/dialogs/Policy/ToscaViewer.test.js
@@ -0,0 +1,54 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+import React from 'react';
+import ToscaViewer from './ToscaViewer';
+import { shallow, mount } from 'enzyme';
+import PolicyToscaService from '../../../api/PolicyToscaService';
+
+describe('Verify ToscaViewer', () => {
+ const fs = require('fs');
+
+ let toscaYaml = fs.readFileSync('src/components/dialogs/Policy/toscaData.test.yaml', {encoding:'utf8', flag:'r'})
+
+ const toscaData = {
+ "policyModelType": "onap.policies.controlloop.Guard",
+ "version": "1.0.0",
+ "policyAcronym": "Guard",
+ "createdDate": "2021-04-09T02:29:31.407356Z",
+ "updatedDate": "2021-04-09T02:29:31.407356Z",
+ "updatedBy": "Not found",
+ "createdBy": "Not found",
+ "tableData": {
+ "id": 0
+ }
+ };
+
+ it('Test the render method',async () => {
+ PolicyToscaService.getToscaPolicyModelYaml = jest.fn().mockImplementation(() => {
+ return Promise.resolve(toscaYaml);
+ });
+ const component = shallow(<ToscaViewer toscaData={toscaData}/>);
+ await PolicyToscaService.getToscaPolicyModelYaml();
+ expect(component).toMatchSnapshot();
+ });
+});
diff --git a/runtime/ui-react/src/components/dialogs/Policy/ViewAllPolicies.js b/runtime/ui-react/src/components/dialogs/Policy/ViewAllPolicies.js
new file mode 100644
index 000000000..04965352b
--- /dev/null
+++ b/runtime/ui-react/src/components/dialogs/Policy/ViewAllPolicies.js
@@ -0,0 +1,473 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+import React, { forwardRef } from 'react'
+import Button from 'react-bootstrap/Button';
+import Modal from 'react-bootstrap/Modal';
+import styled from 'styled-components';
+import AddBox from '@material-ui/icons/AddBox';
+import ArrowDownward from '@material-ui/icons/ArrowDownward';
+import Check from '@material-ui/icons/Check';
+import ChevronLeft from '@material-ui/icons/ChevronLeft';
+import ChevronRight from '@material-ui/icons/ChevronRight';
+import Clear from '@material-ui/icons/Clear';
+import DeleteRoundedIcon from '@material-ui/icons/DeleteRounded';
+import Edit from '@material-ui/icons/Edit';
+import FilterList from '@material-ui/icons/FilterList';
+import FirstPage from '@material-ui/icons/FirstPage';
+import LastPage from '@material-ui/icons/LastPage';
+import Remove from '@material-ui/icons/Remove';
+import SaveAlt from '@material-ui/icons/SaveAlt';
+import Search from '@material-ui/icons/Search';
+import ViewColumn from '@material-ui/icons/ViewColumn';
+import DehazeIcon from '@material-ui/icons/Dehaze';
+import ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';
+import AddIcon from '@material-ui/icons/Add';
+import PublishIcon from '@material-ui/icons/Publish';
+import Switch from '@material-ui/core/Switch';
+import MaterialTable from "material-table";
+import PolicyService from '../../../api/PolicyService';
+import PolicyToscaService from '../../../api/PolicyToscaService';
+import Select from '@material-ui/core/Select';
+import Alert from 'react-bootstrap/Alert';
+import Tabs from 'react-bootstrap/Tabs';
+import Tab from 'react-bootstrap/Tab';
+import PolicyEditor from './PolicyEditor';
+import ToscaViewer from './ToscaViewer';
+import PolicyDeploymentEditor from './PolicyDeploymentEditor';
+import PoliciesTreeViewer from './PoliciesTreeViewer';
+import PolicyToscaFileSelector from './PolicyToscaFileSelector';
+
+const DivWhiteSpaceStyled = styled.div`
+ white-space: pre;
+`
+
+const ModalStyled = styled(Modal)`
+ @media (min-width: 800px) {
+ .modal-xl {
+ max-width: 96%;
+ }
+ }
+ background-color: transparent;
+`
+const DetailedRow = styled.div`
+ margin: 0 auto;
+ background-color: ${props => props.theme.policyEditorBackgroundColor};
+ font-size: ${props => props.theme.policyEditorFontSize};
+ width: 97%;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 20px;
+`
+
+const PoliciesTreeViewerDiv = styled.div`
+ width: 20%;
+ float: left;
+ left: 0;
+ overflow: auto;
+`
+
+const MaterialTableDiv = styled.div`
+ float: right;
+ width: 80%;
+ left: 20%;
+`
+
+const standardCellStyle = { backgroundColor: '#039be5', color: '#FFF', border: '1px solid black' };
+const headerStyle = { backgroundColor: '#ddd', border: '2px solid black' };
+const rowHeaderStyle = {backgroundColor:'#ddd', fontSize: '15pt', text: 'bold', border: '1px solid black'};
+
+export default class ViewAllPolicies extends React.Component {
+ state = {
+ show: true,
+ policiesListData: [],
+ policiesListDataFiltered: [],
+ toscaModelsListData: [],
+ toscaModelsListDataFiltered: [],
+ jsonEditorForPolicy: new Map(),
+ showSuccessAlert: false,
+ showFailAlert: false,
+ showFileSelector: false,
+ policyColumnsDefinition: [
+ {
+ title: "Policy Name", field: "name",
+ cellStyle: standardCellStyle,
+ headerStyle: headerStyle
+ },
+ {
+ title: "Policy Version", field: "version",
+ cellStyle: standardCellStyle,
+ headerStyle: headerStyle,
+ },
+ {
+ title: "Policy Type", field: "type",
+ cellStyle: standardCellStyle,
+ headerStyle: headerStyle
+ },
+ {
+ title: "Policy Type Version", field: "type_version",
+ cellStyle: standardCellStyle,
+ headerStyle: headerStyle
+ },
+ {
+ title: "Deployable in PDP Group", field: "supportedPdpGroupsString",
+ cellStyle: standardCellStyle,
+ headerStyle: headerStyle
+ },
+ {
+ title: "Deployed in PDP Group", field: "pdpGroupInfoString",
+ cellStyle: standardCellStyle,
+ headerStyle: headerStyle
+ }
+ ],
+ toscaColumnsDefinition: [
+ {
+ title: "Policy Model Type", field: "policyModelType",
+ cellStyle: standardCellStyle,
+ headerStyle: headerStyle
+ },
+ {
+ title: "Policy Acronym", field: "policyAcronym",
+ cellStyle: standardCellStyle,
+ headerStyle: headerStyle
+ },
+ {
+ title: "Version", field: "version",
+ cellStyle: standardCellStyle,
+ headerStyle: headerStyle
+ },
+ {
+ title: "Uploaded By", field: "updatedBy",
+ cellStyle: standardCellStyle,
+ headerStyle: headerStyle
+ },
+ {
+ title: "Uploaded Date", field: "updatedDate", editable: 'never',
+ cellStyle: standardCellStyle,
+ headerStyle: headerStyle
+ }
+ ],
+ tableIcons: {
+ Add: forwardRef((props, ref) => <AddBox {...props} ref={ref} />),
+ Check: forwardRef((props, ref) => <Check {...props} ref={ref} />),
+ Clear: forwardRef((props, ref) => <Clear {...props} ref={ref} />),
+ Delete: forwardRef((props, ref) => <DeleteRoundedIcon {...props} ref={ref} />),
+ DetailPanel: forwardRef((props, ref) => <ChevronRight {...props} ref={ref} />),
+ Edit: forwardRef((props, ref) => <Edit {...props} ref={ref} />),
+ Export: forwardRef((props, ref) => <SaveAlt {...props} ref={ref} />),
+ Filter: forwardRef((props, ref) => <FilterList {...props} ref={ref} />),
+ FirstPage: forwardRef((props, ref) => <FirstPage {...props} ref={ref} />),
+ LastPage: forwardRef((props, ref) => <LastPage {...props} ref={ref} />),
+ NextPage: forwardRef((props, ref) => <ChevronRight {...props} ref={ref} />),
+ PreviousPage: forwardRef((props, ref) => <ChevronLeft {...props} ref={ref} />),
+ ResetSearch: forwardRef((props, ref) => <Clear {...props} ref={ref} />),
+ Search: forwardRef((props, ref) => <Search {...props} ref={ref} />),
+ SortArrow: forwardRef((props, ref) => <ArrowDownward {...props} ref={ref} />),
+ ThirdStateCheck: forwardRef((props, ref) => <Remove {...props} ref={ref} />),
+ ViewColumn: forwardRef((props, ref) => <ViewColumn {...props} ref={ref} />)
+ }
+ };
+
+ constructor(props, context) {
+ super(props, context);
+ this.handleClose = this.handleClose.bind(this);
+ this.handleDeletePolicy = this.handleDeletePolicy.bind(this);
+ this.disableAlert = this.disableAlert.bind(this);
+ this.getAllPolicies = this.getAllPolicies.bind(this);
+ this.getAllToscaModels = this.getAllToscaModels.bind(this);
+ this.generateAdditionalPolicyColumns = this.generateAdditionalPolicyColumns.bind(this);
+ this.filterPolicies = this.filterPolicies.bind(this);
+ this.filterTosca = this.filterTosca.bind(this);
+ this.showFileSelector = this.showFileSelector.bind(this);
+ this.disableFileSelector = this.disableFileSelector.bind(this);
+ this.getAllPolicies();
+ this.getAllToscaModels();
+ }
+
+ generateAdditionalPolicyColumns(policiesData) {
+ policiesData.forEach(policy => {
+ let supportedPdpGroupsString = "";
+ if (typeof policy.supportedPdpGroups !== "undefined") {
+ for (const pdpGroup of policy["supportedPdpGroups"]) {
+ for (const pdpSubGroup of Object.values(pdpGroup)[0]) {
+ supportedPdpGroupsString += (Object.keys(pdpGroup)[0] + "/" + pdpSubGroup + "\r\n");
+ }
+ }
+ policy["supportedPdpGroupsString"] = supportedPdpGroupsString;
+ }
+
+ let infoPdpGroup = "";
+ if (typeof policy.pdpGroupInfo !== "undefined") {
+ policy["pdpGroupInfo"].forEach(pdpGroupElem => {
+ let groupName = Object.keys(pdpGroupElem)[0];
+ pdpGroupElem[groupName]["pdpSubgroups"].forEach(pdpSubGroupElem => {
+ infoPdpGroup += (groupName + "/" + pdpSubGroupElem["pdpType"] + " ("
+ + pdpGroupElem[groupName]["pdpGroupState"] + ")" + "\r\n");
+ });
+ policy["pdpGroupInfoString"] = infoPdpGroup;
+ });
+ }
+ });
+ }
+
+ getAllToscaModels() {
+ PolicyToscaService.getToscaPolicyModels().then(toscaModelsList => {
+ this.setState({ toscaModelsListData: toscaModelsList,
+ toscaModelsListDataFiltered: toscaModelsList
+ });
+ });
+ }
+
+ getAllPolicies() {
+ PolicyService.getPoliciesList().then(allPolicies => {
+ this.generateAdditionalPolicyColumns(allPolicies["policies"])
+ this.setState({ policiesListData: allPolicies["policies"],
+ policiesListDataFiltered: allPolicies["policies"],
+ })
+ });
+
+ }
+
+ handleClose() {
+ this.setState({ show: false });
+ this.props.history.push('/')
+ }
+
+ handleDeletePolicy(event, rowData) {
+ PolicyService.deletePolicy(rowData["type"], rowData["type_version"], rowData["name"],rowData["version"]).then(
+ respPolicyDeletion => {
+ if (typeof(respPolicyDeletion) === "undefined") {
+ //it indicates a failure
+ this.setState({
+ showFailAlert: true,
+ showMessage: 'Policy Deletion Failure'
+ });
+ } else {
+ this.setState({
+ showSuccessAlert: true,
+ showMessage: 'Policy successfully Deleted'
+ });
+ this.getAllPolicies();
+ }
+ }
+ )
+ }
+
+ disableAlert() {
+ this.setState ({ showSuccessAlert: false, showFailAlert: false });
+ }
+
+ filterPolicies(prefixForFiltering) {
+ this.setState({policiesListDataFiltered: this.state.policiesListData.filter(element => element.name.startsWith(prefixForFiltering))});
+ }
+
+ filterTosca(prefixForFiltering) {
+ this.setState({toscaModelsListDataFiltered: this.state.toscaModelsListData.filter(element => element.policyModelType.startsWith(prefixForFiltering))});
+ }
+
+ showFileSelector() {
+ this.setState({showFileSelector:true});
+ }
+
+ disableFileSelector() {
+ this.setState({showFileSelector:false});
+ }
+
+ renderPoliciesTab() {
+ return (
+ <Tab eventKey="policies" title="Policies in Policy Framework">
+ <Modal.Body>
+ <div>
+ <PoliciesTreeViewerDiv>
+ <PoliciesTreeViewer policiesData={this.state.policiesListData} valueForTreeCreation="name" policiesFilterFunction={this.filterPolicies} />
+ </PoliciesTreeViewerDiv>
+ <MaterialTableDiv>
+ <MaterialTable
+ title={"Policies"}
+ data={this.state.policiesListDataFiltered}
+ columns={this.state.policyColumnsDefinition}
+ icons={this.state.tableIcons}
+ onRowClick={(event, rowData, togglePanel) => togglePanel()}
+ options={{
+ grouping: true,
+ exportButton: true,
+ headerStyle:rowHeaderStyle,
+ actionsColumnIndex: -1
+ }}
+ detailPanel={[
+ {
+ icon: ArrowForwardIosIcon,
+ tooltip: 'Show Configuration',
+ render: rowData => {
+ return (
+ <DetailedRow>
+ <PolicyEditor policyModelType={rowData["type"]} policyModelTypeVersion={rowData["type_version"]}
+ policyName={rowData["name"]} policyVersion={rowData["version"]} policyProperties={rowData["properties"]}
+ policiesTableUpdateFunction={this.getAllPolicies} />
+ </DetailedRow>
+ )
+ },
+ },
+ {
+ icon: DehazeIcon,
+ openIcon: DehazeIcon,
+ tooltip: 'Show Raw Data',
+ render: rowData => {
+ return (
+ <DetailedRow>
+ <pre>{JSON.stringify(rowData, null, 2)}</pre>
+ </DetailedRow>
+ )
+ },
+ },
+ {
+ icon: PublishIcon,
+ openIcon: PublishIcon,
+ tooltip: 'PDP Group Deployment',
+ render: rowData => {
+ return (
+ <DetailedRow>
+ <PolicyDeploymentEditor policyData={rowData} policiesTableUpdateFunction={this.getAllPolicies} />
+ </DetailedRow>
+ )
+ },
+ }
+ ]}
+ actions={[
+ {
+ icon: DeleteRoundedIcon,
+ tooltip: 'Delete Policy',
+ onClick: (event, rowData) => this.handleDeletePolicy(event, rowData)
+ }
+ ]}
+ />
+ </MaterialTableDiv>
+ </div>
+ </Modal.Body>
+ </Tab>
+ );
+ }
+
+ renderToscaTab() {
+ return (
+ <Tab eventKey="tosca models" title="Tosca Models in Policy Framework">
+ <Modal.Body>
+ <div>
+ <PoliciesTreeViewerDiv>
+ <PoliciesTreeViewer policiesData={this.state.toscaModelsListData} valueForTreeCreation="policyModelType" policiesFilterFunction={this.filterTosca} />
+ </PoliciesTreeViewerDiv>
+ <MaterialTableDiv>
+ <MaterialTable
+ title={"Tosca Models"}
+ data={this.state.toscaModelsListDataFiltered}
+ columns={this.state.toscaColumnsDefinition}
+ icons={this.state.tableIcons}
+ onRowClick={(event, rowData, togglePanel) => togglePanel()}
+ options={{
+ grouping: true,
+ exportButton: true,
+ headerStyle:rowHeaderStyle,
+ actionsColumnIndex: -1
+ }}
+ actions={[
+ {
+ icon: AddIcon,
+ tooltip: 'Add New Tosca Model',
+ isFreeAction: true,
+ onClick: () => this.showFileSelector()
+ }
+ ]}
+ detailPanel={[
+ {
+ icon: ArrowForwardIosIcon,
+ tooltip: 'Show Tosca',
+ render: rowData => {
+ return (
+ <DetailedRow>
+ <ToscaViewer toscaData={rowData} />
+ </DetailedRow>
+ )
+ },
+ },
+ {
+ icon: DehazeIcon,
+ openIcon: DehazeIcon,
+ tooltip: 'Show Raw Data',
+ render: rowData => {
+ return (
+ <DetailedRow>
+ <pre>{JSON.stringify(rowData, null, 2)}</pre>
+ </DetailedRow>
+ )
+ },
+ },
+ {
+ icon: AddIcon,
+ openIcon: AddIcon,
+ tooltip: 'Create a policy from this model',
+ render: rowData => {
+ return (
+ <DetailedRow>
+ <PolicyEditor policyModelType={rowData["policyModelType"]} policyModelTypeVersion={rowData["version"]} policyProperties={{}} policiesTableUpdateFunction={this.getAllPolicies} />
+ </DetailedRow>
+ )
+ },
+ },
+ ]}
+ />
+ </MaterialTableDiv>
+ </div>
+ </Modal.Body>
+ </Tab>
+ );
+ }
+
+ render() {
+ return (
+ <React.Fragment>
+ <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false}>
+ <Modal.Header closeButton>
+ </Modal.Header>
+ <Tabs id="controlled-tab-example" activeKey={this.state.key} onSelect={key => this.setState({ key, selectedRowData: {} })}>
+ {this.renderPoliciesTab()}
+ {this.renderToscaTab()}
+ </Tabs>
+ <Alert variant="success" show={this.state.showSuccessAlert} onClose={this.disableAlert} dismissible>
+ <DivWhiteSpaceStyled>
+ {this.state.showMessage}
+ </DivWhiteSpaceStyled>
+ </Alert>
+ <Alert variant="danger" show={this.state.showFailAlert} onClose={this.disableAlert} dismissible>
+ <DivWhiteSpaceStyled>
+ {this.state.showMessage}
+ </DivWhiteSpaceStyled>
+ </Alert>
+ <Modal.Footer>
+ <Button variant="secondary" onClick={this.handleClose}>Close</Button>
+ </Modal.Footer>
+ </ModalStyled>
+ <PolicyToscaFileSelector show={this.state.showFileSelector} disableFunction={this.disableFileSelector} toscaTableUpdateFunction={this.getAllToscaModels}/>
+ </React.Fragment>
+ );
+ }
+ } \ No newline at end of file
diff --git a/runtime/ui-react/src/components/dialogs/Policy/__snapshots__/PolicyEditor.test.js.snap b/runtime/ui-react/src/components/dialogs/Policy/__snapshots__/PolicyEditor.test.js.snap
new file mode 100644
index 000000000..959b52a36
--- /dev/null
+++ b/runtime/ui-react/src/components/dialogs/Policy/__snapshots__/PolicyEditor.test.js.snap
@@ -0,0 +1,788 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Verify PolicyEditor Test the render method 1`] = `
+<PolicyEditor
+ policiesTableUpdateFunction={[Function]}
+ policyModelType="onap.policies.monitoring.tcagen2"
+ policyModelTypeVersion="1.0.0"
+ policyName="org.onap.new"
+ policyProperties={
+ Object {
+ "tca.policy": Object {
+ "domain": "measurementsForVfScaling",
+ "metricsPerEventName": Array [
+ Object {
+ "controlLoopSchemaType": "VM",
+ "eventName": "vLoadBalancer",
+ "policyName": "DCAE.Config_tca-hi-lo",
+ "policyScope": "DCAE",
+ "policyVersion": "v0.0.1",
+ "thresholds": Array [
+ Object {
+ "closedLoopControlName": "LOOP_test",
+ "closedLoopEventStatus": "ONSET",
+ "direction": "LESS_OR_EQUAL",
+ "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
+ "severity": "MAJOR",
+ "thresholdValue": 200,
+ "version": "1.0.2",
+ },
+ ],
+ },
+ ],
+ },
+ }
+ }
+ policyVersion="1.0.0"
+>
+ <styled.div>
+ <div
+ className="sc-dlfnbm iSTbVM"
+ >
+ <Alert
+ closeLabel="Close alert"
+ dismissible={true}
+ onClose={[Function]}
+ show={false}
+ transition={
+ Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "defaultProps": Object {
+ "appear": false,
+ "in": false,
+ "mountOnEnter": false,
+ "timeout": 300,
+ "unmountOnExit": false,
+ },
+ "render": [Function],
+ }
+ }
+ variant="success"
+ >
+ <Fade
+ appear={false}
+ in={false}
+ mountOnEnter={false}
+ timeout={300}
+ unmountOnExit={true}
+ >
+ <Transition
+ addEndListener={[Function]}
+ appear={false}
+ enter={true}
+ exit={true}
+ in={false}
+ mountOnEnter={false}
+ onEnter={[Function]}
+ onEntered={[Function]}
+ onEntering={[Function]}
+ onExit={[Function]}
+ onExited={[Function]}
+ onExiting={[Function]}
+ timeout={300}
+ unmountOnExit={true}
+ />
+ </Fade>
+ </Alert>
+ <Alert
+ closeLabel="Close alert"
+ dismissible={true}
+ onClose={[Function]}
+ show={false}
+ transition={
+ Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "defaultProps": Object {
+ "appear": false,
+ "in": false,
+ "mountOnEnter": false,
+ "timeout": 300,
+ "unmountOnExit": false,
+ },
+ "render": [Function],
+ }
+ }
+ variant="danger"
+ >
+ <Fade
+ appear={false}
+ in={false}
+ mountOnEnter={false}
+ timeout={300}
+ unmountOnExit={true}
+ >
+ <Transition
+ addEndListener={[Function]}
+ appear={false}
+ enter={true}
+ exit={true}
+ in={false}
+ mountOnEnter={false}
+ onEnter={[Function]}
+ onEntered={[Function]}
+ onEntering={[Function]}
+ onExit={[Function]}
+ onExited={[Function]}
+ onExiting={[Function]}
+ timeout={300}
+ unmountOnExit={true}
+ />
+ </Fade>
+ </Alert>
+ <WithStyles(ForwardRef(TextField))
+ defaultValue="org.onap.new"
+ id="policyName"
+ label="Required"
+ onChange={[Function]}
+ required={true}
+ size="small"
+ variant="outlined"
+ >
+ <ForwardRef(TextField)
+ classes={
+ Object {
+ "root": "MuiTextField-root",
+ }
+ }
+ defaultValue="org.onap.new"
+ id="policyName"
+ label="Required"
+ onChange={[Function]}
+ required={true}
+ size="small"
+ variant="outlined"
+ >
+ <WithStyles(ForwardRef(FormControl))
+ className="MuiTextField-root"
+ color="primary"
+ disabled={false}
+ error={false}
+ fullWidth={false}
+ required={true}
+ size="small"
+ variant="outlined"
+ >
+ <ForwardRef(FormControl)
+ className="MuiTextField-root"
+ classes={
+ Object {
+ "fullWidth": "MuiFormControl-fullWidth",
+ "marginDense": "MuiFormControl-marginDense",
+ "marginNormal": "MuiFormControl-marginNormal",
+ "root": "MuiFormControl-root",
+ }
+ }
+ color="primary"
+ disabled={false}
+ error={false}
+ fullWidth={false}
+ required={true}
+ size="small"
+ variant="outlined"
+ >
+ <div
+ className="MuiFormControl-root MuiTextField-root"
+ >
+ <WithStyles(ForwardRef(InputLabel))
+ htmlFor="policyName"
+ id="policyName-label"
+ >
+ <ForwardRef(InputLabel)
+ classes={
+ Object {
+ "animated": "MuiInputLabel-animated",
+ "asterisk": "MuiInputLabel-asterisk",
+ "disabled": "Mui-disabled",
+ "error": "Mui-error",
+ "filled": "MuiInputLabel-filled",
+ "focused": "Mui-focused",
+ "formControl": "MuiInputLabel-formControl",
+ "marginDense": "MuiInputLabel-marginDense",
+ "outlined": "MuiInputLabel-outlined",
+ "required": "Mui-required",
+ "root": "MuiInputLabel-root",
+ "shrink": "MuiInputLabel-shrink",
+ }
+ }
+ htmlFor="policyName"
+ id="policyName-label"
+ >
+ <WithStyles(ForwardRef(FormLabel))
+ className="MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-marginDense MuiInputLabel-outlined"
+ classes={
+ Object {
+ "asterisk": "MuiInputLabel-asterisk",
+ "disabled": "Mui-disabled",
+ "error": "Mui-error",
+ "focused": "Mui-focused",
+ "required": "Mui-required",
+ }
+ }
+ data-shrink={true}
+ htmlFor="policyName"
+ id="policyName-label"
+ >
+ <ForwardRef(FormLabel)
+ className="MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-marginDense MuiInputLabel-outlined"
+ classes={
+ Object {
+ "asterisk": "MuiFormLabel-asterisk MuiInputLabel-asterisk",
+ "colorSecondary": "MuiFormLabel-colorSecondary",
+ "disabled": "Mui-disabled Mui-disabled",
+ "error": "Mui-error Mui-error",
+ "filled": "MuiFormLabel-filled",
+ "focused": "Mui-focused Mui-focused",
+ "required": "Mui-required Mui-required",
+ "root": "MuiFormLabel-root",
+ }
+ }
+ data-shrink={true}
+ htmlFor="policyName"
+ id="policyName-label"
+ >
+ <label
+ className="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-marginDense MuiInputLabel-outlined MuiFormLabel-filled Mui-required Mui-required"
+ data-shrink={true}
+ htmlFor="policyName"
+ id="policyName-label"
+ >
+ Required
+ <span
+ aria-hidden={true}
+ className="MuiFormLabel-asterisk MuiInputLabel-asterisk"
+ >
+  
+ *
+ </span>
+ </label>
+ </ForwardRef(FormLabel)>
+ </WithStyles(ForwardRef(FormLabel))>
+ </ForwardRef(InputLabel)>
+ </WithStyles(ForwardRef(InputLabel))>
+ <WithStyles(ForwardRef(OutlinedInput))
+ autoFocus={false}
+ defaultValue="org.onap.new"
+ fullWidth={false}
+ id="policyName"
+ label={
+ <React.Fragment>
+ Required
+  *
+ </React.Fragment>
+ }
+ multiline={false}
+ onChange={[Function]}
+ >
+ <ForwardRef(OutlinedInput)
+ autoFocus={false}
+ classes={
+ Object {
+ "adornedEnd": "MuiOutlinedInput-adornedEnd",
+ "adornedStart": "MuiOutlinedInput-adornedStart",
+ "colorSecondary": "MuiOutlinedInput-colorSecondary",
+ "disabled": "Mui-disabled",
+ "error": "Mui-error",
+ "focused": "Mui-focused",
+ "input": "MuiOutlinedInput-input",
+ "inputAdornedEnd": "MuiOutlinedInput-inputAdornedEnd",
+ "inputAdornedStart": "MuiOutlinedInput-inputAdornedStart",
+ "inputMarginDense": "MuiOutlinedInput-inputMarginDense",
+ "inputMultiline": "MuiOutlinedInput-inputMultiline",
+ "marginDense": "MuiOutlinedInput-marginDense",
+ "multiline": "MuiOutlinedInput-multiline",
+ "notchedOutline": "MuiOutlinedInput-notchedOutline",
+ "root": "MuiOutlinedInput-root",
+ }
+ }
+ defaultValue="org.onap.new"
+ fullWidth={false}
+ id="policyName"
+ label={
+ <React.Fragment>
+ Required
+  *
+ </React.Fragment>
+ }
+ multiline={false}
+ onChange={[Function]}
+ >
+ <WithStyles(ForwardRef(InputBase))
+ autoFocus={false}
+ classes={
+ Object {
+ "adornedEnd": "MuiOutlinedInput-adornedEnd",
+ "adornedStart": "MuiOutlinedInput-adornedStart",
+ "colorSecondary": "MuiOutlinedInput-colorSecondary",
+ "disabled": "Mui-disabled",
+ "error": "Mui-error",
+ "focused": "Mui-focused",
+ "input": "MuiOutlinedInput-input",
+ "inputAdornedEnd": "MuiOutlinedInput-inputAdornedEnd",
+ "inputAdornedStart": "MuiOutlinedInput-inputAdornedStart",
+ "inputMarginDense": "MuiOutlinedInput-inputMarginDense",
+ "inputMultiline": "MuiOutlinedInput-inputMultiline",
+ "marginDense": "MuiOutlinedInput-marginDense",
+ "multiline": "MuiOutlinedInput-multiline",
+ "notchedOutline": null,
+ "root": "MuiOutlinedInput-root",
+ }
+ }
+ defaultValue="org.onap.new"
+ fullWidth={false}
+ id="policyName"
+ inputComponent="input"
+ multiline={false}
+ onChange={[Function]}
+ renderSuffix={[Function]}
+ type="text"
+ >
+ <ForwardRef(InputBase)
+ autoFocus={false}
+ classes={
+ Object {
+ "adornedEnd": "MuiInputBase-adornedEnd MuiOutlinedInput-adornedEnd",
+ "adornedStart": "MuiInputBase-adornedStart MuiOutlinedInput-adornedStart",
+ "colorSecondary": "MuiInputBase-colorSecondary MuiOutlinedInput-colorSecondary",
+ "disabled": "Mui-disabled Mui-disabled",
+ "error": "Mui-error Mui-error",
+ "focused": "Mui-focused Mui-focused",
+ "formControl": "MuiInputBase-formControl",
+ "fullWidth": "MuiInputBase-fullWidth",
+ "input": "MuiInputBase-input MuiOutlinedInput-input",
+ "inputAdornedEnd": "MuiInputBase-inputAdornedEnd MuiOutlinedInput-inputAdornedEnd",
+ "inputAdornedStart": "MuiInputBase-inputAdornedStart MuiOutlinedInput-inputAdornedStart",
+ "inputHiddenLabel": "MuiInputBase-inputHiddenLabel",
+ "inputMarginDense": "MuiInputBase-inputMarginDense MuiOutlinedInput-inputMarginDense",
+ "inputMultiline": "MuiInputBase-inputMultiline MuiOutlinedInput-inputMultiline",
+ "inputTypeSearch": "MuiInputBase-inputTypeSearch",
+ "marginDense": "MuiInputBase-marginDense MuiOutlinedInput-marginDense",
+ "multiline": "MuiInputBase-multiline MuiOutlinedInput-multiline",
+ "root": "MuiInputBase-root MuiOutlinedInput-root",
+ }
+ }
+ defaultValue="org.onap.new"
+ fullWidth={false}
+ id="policyName"
+ inputComponent="input"
+ multiline={false}
+ onChange={[Function]}
+ renderSuffix={[Function]}
+ type="text"
+ >
+ <div
+ className="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-formControl MuiInputBase-marginDense MuiOutlinedInput-marginDense"
+ onClick={[Function]}
+ >
+ <input
+ aria-invalid={false}
+ autoFocus={false}
+ className="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputMarginDense MuiOutlinedInput-inputMarginDense"
+ defaultValue="org.onap.new"
+ disabled={false}
+ id="policyName"
+ onAnimationStart={[Function]}
+ onBlur={[Function]}
+ onChange={[Function]}
+ onFocus={[Function]}
+ required={true}
+ type="text"
+ />
+ <WithStyles(ForwardRef(NotchedOutline))
+ className="MuiOutlinedInput-notchedOutline"
+ label={
+ <React.Fragment>
+ Required
+  *
+ </React.Fragment>
+ }
+ labelWidth={0}
+ notched={true}
+ >
+ <ForwardRef(NotchedOutline)
+ className="MuiOutlinedInput-notchedOutline"
+ classes={
+ Object {
+ "legend": "PrivateNotchedOutline-legend-2",
+ "legendLabelled": "PrivateNotchedOutline-legendLabelled-3",
+ "legendNotched": "PrivateNotchedOutline-legendNotched-4",
+ "root": "PrivateNotchedOutline-root-1",
+ }
+ }
+ label={
+ <React.Fragment>
+ Required
+  *
+ </React.Fragment>
+ }
+ labelWidth={0}
+ notched={true}
+ >
+ <fieldset
+ aria-hidden={true}
+ className="PrivateNotchedOutline-root-1 MuiOutlinedInput-notchedOutline"
+ >
+ <legend
+ className="PrivateNotchedOutline-legendLabelled-3 PrivateNotchedOutline-legendNotched-4"
+ >
+ <span>
+ Required
+  *
+ </span>
+ </legend>
+ </fieldset>
+ </ForwardRef(NotchedOutline)>
+ </WithStyles(ForwardRef(NotchedOutline))>
+ </div>
+ </ForwardRef(InputBase)>
+ </WithStyles(ForwardRef(InputBase))>
+ </ForwardRef(OutlinedInput)>
+ </WithStyles(ForwardRef(OutlinedInput))>
+ </div>
+ </ForwardRef(FormControl)>
+ </WithStyles(ForwardRef(FormControl))>
+ </ForwardRef(TextField)>
+ </WithStyles(ForwardRef(TextField))>
+ <WithStyles(ForwardRef(TextField))
+ defaultValue="1.0.0"
+ id="policyVersion"
+ label="Required"
+ onChange={[Function]}
+ required={true}
+ size="small"
+ variant="outlined"
+ >
+ <ForwardRef(TextField)
+ classes={
+ Object {
+ "root": "MuiTextField-root",
+ }
+ }
+ defaultValue="1.0.0"
+ id="policyVersion"
+ label="Required"
+ onChange={[Function]}
+ required={true}
+ size="small"
+ variant="outlined"
+ >
+ <WithStyles(ForwardRef(FormControl))
+ className="MuiTextField-root"
+ color="primary"
+ disabled={false}
+ error={false}
+ fullWidth={false}
+ required={true}
+ size="small"
+ variant="outlined"
+ >
+ <ForwardRef(FormControl)
+ className="MuiTextField-root"
+ classes={
+ Object {
+ "fullWidth": "MuiFormControl-fullWidth",
+ "marginDense": "MuiFormControl-marginDense",
+ "marginNormal": "MuiFormControl-marginNormal",
+ "root": "MuiFormControl-root",
+ }
+ }
+ color="primary"
+ disabled={false}
+ error={false}
+ fullWidth={false}
+ required={true}
+ size="small"
+ variant="outlined"
+ >
+ <div
+ className="MuiFormControl-root MuiTextField-root"
+ >
+ <WithStyles(ForwardRef(InputLabel))
+ htmlFor="policyVersion"
+ id="policyVersion-label"
+ >
+ <ForwardRef(InputLabel)
+ classes={
+ Object {
+ "animated": "MuiInputLabel-animated",
+ "asterisk": "MuiInputLabel-asterisk",
+ "disabled": "Mui-disabled",
+ "error": "Mui-error",
+ "filled": "MuiInputLabel-filled",
+ "focused": "Mui-focused",
+ "formControl": "MuiInputLabel-formControl",
+ "marginDense": "MuiInputLabel-marginDense",
+ "outlined": "MuiInputLabel-outlined",
+ "required": "Mui-required",
+ "root": "MuiInputLabel-root",
+ "shrink": "MuiInputLabel-shrink",
+ }
+ }
+ htmlFor="policyVersion"
+ id="policyVersion-label"
+ >
+ <WithStyles(ForwardRef(FormLabel))
+ className="MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-marginDense MuiInputLabel-outlined"
+ classes={
+ Object {
+ "asterisk": "MuiInputLabel-asterisk",
+ "disabled": "Mui-disabled",
+ "error": "Mui-error",
+ "focused": "Mui-focused",
+ "required": "Mui-required",
+ }
+ }
+ data-shrink={true}
+ htmlFor="policyVersion"
+ id="policyVersion-label"
+ >
+ <ForwardRef(FormLabel)
+ className="MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-marginDense MuiInputLabel-outlined"
+ classes={
+ Object {
+ "asterisk": "MuiFormLabel-asterisk MuiInputLabel-asterisk",
+ "colorSecondary": "MuiFormLabel-colorSecondary",
+ "disabled": "Mui-disabled Mui-disabled",
+ "error": "Mui-error Mui-error",
+ "filled": "MuiFormLabel-filled",
+ "focused": "Mui-focused Mui-focused",
+ "required": "Mui-required Mui-required",
+ "root": "MuiFormLabel-root",
+ }
+ }
+ data-shrink={true}
+ htmlFor="policyVersion"
+ id="policyVersion-label"
+ >
+ <label
+ className="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-marginDense MuiInputLabel-outlined MuiFormLabel-filled Mui-required Mui-required"
+ data-shrink={true}
+ htmlFor="policyVersion"
+ id="policyVersion-label"
+ >
+ Required
+ <span
+ aria-hidden={true}
+ className="MuiFormLabel-asterisk MuiInputLabel-asterisk"
+ >
+  
+ *
+ </span>
+ </label>
+ </ForwardRef(FormLabel)>
+ </WithStyles(ForwardRef(FormLabel))>
+ </ForwardRef(InputLabel)>
+ </WithStyles(ForwardRef(InputLabel))>
+ <WithStyles(ForwardRef(OutlinedInput))
+ autoFocus={false}
+ defaultValue="1.0.0"
+ fullWidth={false}
+ id="policyVersion"
+ label={
+ <React.Fragment>
+ Required
+  *
+ </React.Fragment>
+ }
+ multiline={false}
+ onChange={[Function]}
+ >
+ <ForwardRef(OutlinedInput)
+ autoFocus={false}
+ classes={
+ Object {
+ "adornedEnd": "MuiOutlinedInput-adornedEnd",
+ "adornedStart": "MuiOutlinedInput-adornedStart",
+ "colorSecondary": "MuiOutlinedInput-colorSecondary",
+ "disabled": "Mui-disabled",
+ "error": "Mui-error",
+ "focused": "Mui-focused",
+ "input": "MuiOutlinedInput-input",
+ "inputAdornedEnd": "MuiOutlinedInput-inputAdornedEnd",
+ "inputAdornedStart": "MuiOutlinedInput-inputAdornedStart",
+ "inputMarginDense": "MuiOutlinedInput-inputMarginDense",
+ "inputMultiline": "MuiOutlinedInput-inputMultiline",
+ "marginDense": "MuiOutlinedInput-marginDense",
+ "multiline": "MuiOutlinedInput-multiline",
+ "notchedOutline": "MuiOutlinedInput-notchedOutline",
+ "root": "MuiOutlinedInput-root",
+ }
+ }
+ defaultValue="1.0.0"
+ fullWidth={false}
+ id="policyVersion"
+ label={
+ <React.Fragment>
+ Required
+  *
+ </React.Fragment>
+ }
+ multiline={false}
+ onChange={[Function]}
+ >
+ <WithStyles(ForwardRef(InputBase))
+ autoFocus={false}
+ classes={
+ Object {
+ "adornedEnd": "MuiOutlinedInput-adornedEnd",
+ "adornedStart": "MuiOutlinedInput-adornedStart",
+ "colorSecondary": "MuiOutlinedInput-colorSecondary",
+ "disabled": "Mui-disabled",
+ "error": "Mui-error",
+ "focused": "Mui-focused",
+ "input": "MuiOutlinedInput-input",
+ "inputAdornedEnd": "MuiOutlinedInput-inputAdornedEnd",
+ "inputAdornedStart": "MuiOutlinedInput-inputAdornedStart",
+ "inputMarginDense": "MuiOutlinedInput-inputMarginDense",
+ "inputMultiline": "MuiOutlinedInput-inputMultiline",
+ "marginDense": "MuiOutlinedInput-marginDense",
+ "multiline": "MuiOutlinedInput-multiline",
+ "notchedOutline": null,
+ "root": "MuiOutlinedInput-root",
+ }
+ }
+ defaultValue="1.0.0"
+ fullWidth={false}
+ id="policyVersion"
+ inputComponent="input"
+ multiline={false}
+ onChange={[Function]}
+ renderSuffix={[Function]}
+ type="text"
+ >
+ <ForwardRef(InputBase)
+ autoFocus={false}
+ classes={
+ Object {
+ "adornedEnd": "MuiInputBase-adornedEnd MuiOutlinedInput-adornedEnd",
+ "adornedStart": "MuiInputBase-adornedStart MuiOutlinedInput-adornedStart",
+ "colorSecondary": "MuiInputBase-colorSecondary MuiOutlinedInput-colorSecondary",
+ "disabled": "Mui-disabled Mui-disabled",
+ "error": "Mui-error Mui-error",
+ "focused": "Mui-focused Mui-focused",
+ "formControl": "MuiInputBase-formControl",
+ "fullWidth": "MuiInputBase-fullWidth",
+ "input": "MuiInputBase-input MuiOutlinedInput-input",
+ "inputAdornedEnd": "MuiInputBase-inputAdornedEnd MuiOutlinedInput-inputAdornedEnd",
+ "inputAdornedStart": "MuiInputBase-inputAdornedStart MuiOutlinedInput-inputAdornedStart",
+ "inputHiddenLabel": "MuiInputBase-inputHiddenLabel",
+ "inputMarginDense": "MuiInputBase-inputMarginDense MuiOutlinedInput-inputMarginDense",
+ "inputMultiline": "MuiInputBase-inputMultiline MuiOutlinedInput-inputMultiline",
+ "inputTypeSearch": "MuiInputBase-inputTypeSearch",
+ "marginDense": "MuiInputBase-marginDense MuiOutlinedInput-marginDense",
+ "multiline": "MuiInputBase-multiline MuiOutlinedInput-multiline",
+ "root": "MuiInputBase-root MuiOutlinedInput-root",
+ }
+ }
+ defaultValue="1.0.0"
+ fullWidth={false}
+ id="policyVersion"
+ inputComponent="input"
+ multiline={false}
+ onChange={[Function]}
+ renderSuffix={[Function]}
+ type="text"
+ >
+ <div
+ className="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-formControl MuiInputBase-marginDense MuiOutlinedInput-marginDense"
+ onClick={[Function]}
+ >
+ <input
+ aria-invalid={false}
+ autoFocus={false}
+ className="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputMarginDense MuiOutlinedInput-inputMarginDense"
+ defaultValue="1.0.0"
+ disabled={false}
+ id="policyVersion"
+ onAnimationStart={[Function]}
+ onBlur={[Function]}
+ onChange={[Function]}
+ onFocus={[Function]}
+ required={true}
+ type="text"
+ />
+ <WithStyles(ForwardRef(NotchedOutline))
+ className="MuiOutlinedInput-notchedOutline"
+ label={
+ <React.Fragment>
+ Required
+  *
+ </React.Fragment>
+ }
+ labelWidth={0}
+ notched={true}
+ >
+ <ForwardRef(NotchedOutline)
+ className="MuiOutlinedInput-notchedOutline"
+ classes={
+ Object {
+ "legend": "PrivateNotchedOutline-legend-2",
+ "legendLabelled": "PrivateNotchedOutline-legendLabelled-3",
+ "legendNotched": "PrivateNotchedOutline-legendNotched-4",
+ "root": "PrivateNotchedOutline-root-1",
+ }
+ }
+ label={
+ <React.Fragment>
+ Required
+  *
+ </React.Fragment>
+ }
+ labelWidth={0}
+ notched={true}
+ >
+ <fieldset
+ aria-hidden={true}
+ className="PrivateNotchedOutline-root-1 MuiOutlinedInput-notchedOutline"
+ >
+ <legend
+ className="PrivateNotchedOutline-legendLabelled-3 PrivateNotchedOutline-legendNotched-4"
+ >
+ <span>
+ Required
+  *
+ </span>
+ </legend>
+ </fieldset>
+ </ForwardRef(NotchedOutline)>
+ </WithStyles(ForwardRef(NotchedOutline))>
+ </div>
+ </ForwardRef(InputBase)>
+ </WithStyles(ForwardRef(InputBase))>
+ </ForwardRef(OutlinedInput)>
+ </WithStyles(ForwardRef(OutlinedInput))>
+ </div>
+ </ForwardRef(FormControl)>
+ </WithStyles(ForwardRef(FormControl))>
+ </ForwardRef(TextField)>
+ </WithStyles(ForwardRef(TextField))>
+ <Button
+ active={false}
+ disabled={false}
+ onClick={[Function]}
+ title="Create a new policy version from the defined parameters"
+ variant="secondary"
+ >
+ <button
+ className="btn btn-secondary"
+ disabled={false}
+ onClick={[Function]}
+ title="Create a new policy version from the defined parameters"
+ type="button"
+ >
+ Create New Version
+ </button>
+ </Button>
+ <styled.div
+ id="onap.policies.monitoring.tcagen2_1.0.0_org.onap.new_1.0.0"
+ title="Policy Properties"
+ >
+ <div
+ className="sc-gsTCUz dAYWPx"
+ id="onap.policies.monitoring.tcagen2_1.0.0_org.onap.new_1.0.0"
+ title="Policy Properties"
+ />
+ </styled.div>
+ </div>
+ </styled.div>
+</PolicyEditor>
+`;
diff --git a/runtime/ui-react/src/components/dialogs/Policy/__snapshots__/PolicyModal.test.js.snap b/runtime/ui-react/src/components/dialogs/Policy/__snapshots__/PolicyModal.test.js.snap
new file mode 100644
index 000000000..8b1261b1c
--- /dev/null
+++ b/runtime/ui-react/src/components/dialogs/Policy/__snapshots__/PolicyModal.test.js.snap
@@ -0,0 +1,159 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Verify PolicyModal Test the render method 1`] = `
+<Styled(Modal)
+ backdrop="static"
+ keyboard={false}
+ onHide={[Function]}
+ show={true}
+ size="xl"
+>
+ <ModalHeader
+ closeButton={true}
+ closeLabel="Close"
+ >
+ <ModalTitle>
+ Edit the policy
+ </ModalTitle>
+ </ModalHeader>
+ <Alert
+ closeLabel="Close alert"
+ dismissible={true}
+ onClose={[Function]}
+ show={false}
+ transition={
+ Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "defaultProps": Object {
+ "appear": false,
+ "in": false,
+ "mountOnEnter": false,
+ "timeout": 300,
+ "unmountOnExit": false,
+ },
+ "render": [Function],
+ }
+ }
+ variant="success"
+ >
+ <styled.div />
+ </Alert>
+ <Alert
+ closeLabel="Close alert"
+ dismissible={true}
+ onClose={[Function]}
+ show={false}
+ transition={
+ Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "defaultProps": Object {
+ "appear": false,
+ "in": false,
+ "mountOnEnter": false,
+ "timeout": 300,
+ "unmountOnExit": false,
+ },
+ "render": [Function],
+ }
+ }
+ variant="danger"
+ >
+ <styled.div />
+ </Alert>
+ <ModalBody>
+ <div
+ id="editor"
+ />
+ <FormGroup
+ as={
+ Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "defaultProps": Object {
+ "noGutters": false,
+ },
+ "render": [Function],
+ }
+ }
+ controlId="formPlaintextEmail"
+ >
+ <FormLabel
+ column={true}
+ sm="2"
+ srOnly={false}
+ >
+ Pdp Group Info
+ </FormLabel>
+ <Col
+ sm="3"
+ >
+ <StateManager
+ defaultInputValue=""
+ defaultMenuIsOpen={false}
+ defaultValue={null}
+ onChange={[Function]}
+ options={
+ Array [
+ Object {
+ "label": "monitoring",
+ "value": "monitoring",
+ },
+ ]
+ }
+ value={
+ Object {
+ "label": undefined,
+ "value": undefined,
+ }
+ }
+ />
+ </Col>
+ <Col
+ sm="3"
+ >
+ <StateManager
+ defaultInputValue=""
+ defaultMenuIsOpen={false}
+ defaultValue={null}
+ onChange={[Function]}
+ options={Array []}
+ value={
+ Object {
+ "label": undefined,
+ "value": undefined,
+ }
+ }
+ />
+ </Col>
+ </FormGroup>
+ </ModalBody>
+ <ModalFooter>
+ <Button
+ active={false}
+ disabled={false}
+ key="close"
+ onClick={[Function]}
+ variant="secondary"
+ >
+ Close
+ </Button>
+ <Button
+ active={false}
+ disabled={false}
+ key="save"
+ onClick={[Function]}
+ variant="primary"
+ >
+ Save Changes
+ </Button>
+ <Button
+ active={false}
+ disabled={false}
+ key="refresh"
+ onClick={[Function]}
+ variant="primary"
+ >
+ Refresh
+ </Button>
+ </ModalFooter>
+</Styled(Modal)>
+`;
diff --git a/runtime/ui-react/src/components/dialogs/Policy/__snapshots__/ToscaViewer.test.js.snap b/runtime/ui-react/src/components/dialogs/Policy/__snapshots__/ToscaViewer.test.js.snap
new file mode 100644
index 000000000..61fb4850d
--- /dev/null
+++ b/runtime/ui-react/src/components/dialogs/Policy/__snapshots__/ToscaViewer.test.js.snap
@@ -0,0 +1,30 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Verify ToscaViewer Test the render method 1`] = `
+<styled.div>
+ <pre>
+ tosca_definitions_version: tosca_simple_yaml_1_1_0
+policy_types:
+ onap.policies.controlloop.Guard:
+ properties: {
+ }
+ name: onap.policies.controlloop.Guard
+ version: 1.0.0
+ derived_from: tosca.policies.Root
+ metadata: {
+ }
+ description: Guard Policies for Control Loop Operational Policies
+name: ToscaServiceTemplateSimple
+version: 1.0.0
+
+ </pre>
+ <Button
+ active={false}
+ disabled={false}
+ title="Create a new policy version from the defined parameters"
+ variant="secondary"
+ >
+ Create New Version
+ </Button>
+</styled.div>
+`;
diff --git a/runtime/ui-react/src/components/dialogs/Policy/toscaData.test.json b/runtime/ui-react/src/components/dialogs/Policy/toscaData.test.json
new file mode 100644
index 000000000..3b001b384
--- /dev/null
+++ b/runtime/ui-react/src/components/dialogs/Policy/toscaData.test.json
@@ -0,0 +1,179 @@
+{
+ "title": "onap.policies.monitoring.tcagen2",
+ "type": "object",
+ "required": [
+ "tca.policy"
+ ],
+ "properties": {
+ "tca.policy": {
+ "title": "onap.datatypes.monitoring.tca_policy",
+ "type": "object",
+ "required": [
+ "domain",
+ "metricsPerEventName"
+ ],
+ "properties": {
+ "domain": {
+ "type": "string",
+ "description": "Domain name to which TCA needs to be applied",
+ "default": "measurementsForVfScaling",
+ "const": "measurementsForVfScaling"
+ },
+ "metricsPerEventName": {
+ "type": "array",
+ "description": "Contains eventName and threshold details that need to be applied to given eventName",
+ "items": {
+ "title": "onap.datatypes.monitoring.metricsPerEventName",
+ "type": "object",
+ "required": [
+ "controlLoopSchemaType",
+ "eventName",
+ "policyName",
+ "policyScope",
+ "policyVersion",
+ "thresholds"
+ ],
+ "properties": {
+ "controlLoopSchemaType": {
+ "type": "string",
+ "description": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM",
+ "enum": [
+ "VM",
+ "VNF"
+ ]
+ },
+ "eventName": {
+ "type": "string",
+ "description": "Event name to which thresholds need to be applied"
+ },
+ "policyName": {
+ "type": "string",
+ "description": "TCA Policy Scope Name"
+ },
+ "policyScope": {
+ "type": "string",
+ "description": "TCA Policy Scope"
+ },
+ "policyVersion": {
+ "type": "string",
+ "description": "TCA Policy Scope Version"
+ },
+ "thresholds": {
+ "type": "array",
+ "description": "Thresholds associated with eventName",
+ "items": {
+ "title": "onap.datatypes.monitoring.thresholds",
+ "type": "object",
+ "required": [
+ "closedLoopControlName",
+ "closedLoopEventStatus",
+ "direction",
+ "fieldPath",
+ "severity",
+ "thresholdValue",
+ "version"
+ ],
+ "properties": {
+ "closedLoopControlName": {
+ "type": "string",
+ "description": "Closed Loop Control Name associated with the threshold"
+ },
+ "closedLoopEventStatus": {
+ "type": "string",
+ "description": "Closed Loop Event Status of the threshold",
+ "enum": [
+ "ONSET",
+ "ABATED"
+ ]
+ },
+ "direction": {
+ "type": "string",
+ "description": "Direction of the threshold",
+ "enum": [
+ "LESS",
+ "LESS_OR_EQUAL",
+ "GREATER",
+ "GREATER_OR_EQUAL",
+ "EQUAL"
+ ]
+ },
+ "fieldPath": {
+ "type": "string",
+ "description": "Json field Path as per CEF message which needs to be analyzed for TCA",
+ "enum": [
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage",
+ "$.event.measurementsForVfScalingFields.meanRequestLatency",
+ "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered",
+ "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached",
+ "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured",
+ "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree",
+ "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value"
+ ]
+ },
+ "severity": {
+ "type": "string",
+ "description": "Threshold Event Severity",
+ "enum": [
+ "CRITICAL",
+ "MAJOR",
+ "MINOR",
+ "WARNING",
+ "NORMAL"
+ ]
+ },
+ "thresholdValue": {
+ "type": "integer",
+ "description": "Threshold value for the field Path inside CEF message"
+ },
+ "version": {
+ "type": "string",
+ "description": "Version number associated with the threshold"
+ }
+ }
+ },
+ "format": "tabs-top"
+ }
+ }
+ },
+ "format": "tabs-top"
+ }
+ }
+ }
+ }
+}
diff --git a/runtime/ui-react/src/components/dialogs/Policy/toscaData.test.yaml b/runtime/ui-react/src/components/dialogs/Policy/toscaData.test.yaml
new file mode 100644
index 000000000..15a3cec35
--- /dev/null
+++ b/runtime/ui-react/src/components/dialogs/Policy/toscaData.test.yaml
@@ -0,0 +1,13 @@
+tosca_definitions_version: tosca_simple_yaml_1_1_0
+policy_types:
+ onap.policies.controlloop.Guard:
+ properties: {
+ }
+ name: onap.policies.controlloop.Guard
+ version: 1.0.0
+ derived_from: tosca.policies.Root
+ metadata: {
+ }
+ description: Guard Policies for Control Loop Operational Policies
+name: ToscaServiceTemplateSimple
+version: 1.0.0
diff --git a/ui-react/src/components/dialogs/RefreshStatus.js b/runtime/ui-react/src/components/dialogs/RefreshStatus.js
index bb0939152..bb0939152 100644
--- a/ui-react/src/components/dialogs/RefreshStatus.js
+++ b/runtime/ui-react/src/components/dialogs/RefreshStatus.js
diff --git a/ui-react/src/components/dialogs/RefreshStatus.test.js b/runtime/ui-react/src/components/dialogs/RefreshStatus.test.js
index e08c50d2e..e08c50d2e 100644
--- a/ui-react/src/components/dialogs/RefreshStatus.test.js
+++ b/runtime/ui-react/src/components/dialogs/RefreshStatus.test.js
diff --git a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js b/runtime/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js
index eb6e70f3d..4796b8d73 100644
--- a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js
+++ b/runtime/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js b/runtime/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js
index 7680ec4b9..7680ec4b9 100644
--- a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js
+++ b/runtime/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js
diff --git a/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap b/runtime/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap
index 73f659606..73f659606 100644
--- a/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap
+++ b/runtime/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap
diff --git a/ui-react/src/components/dialogs/UserInfoModal.js b/runtime/ui-react/src/components/dialogs/UserInfoModal.js
index 4b779dece..96eabb4c2 100644
--- a/ui-react/src/components/dialogs/UserInfoModal.js
+++ b/runtime/ui-react/src/components/dialogs/UserInfoModal.js
@@ -58,7 +58,7 @@ export default class UserInfoModal extends React.Component {
renderPermissions() {
if (this.state.userInfo["allPermissions"]) {
var listOfPermissions = this.state.userInfo["allPermissions"].map(function(perm) {
- return <Form.Control plaintext readOnly defaultValue={perm} />;
+ return <Form.Control key={perm} plaintext readOnly defaultValue={perm} />;
})
return listOfPermissions;
} else {
diff --git a/ui-react/src/components/dialogs/UserInfoModal.test.js b/runtime/ui-react/src/components/dialogs/UserInfoModal.test.js
index f5ed0ae10..f5ed0ae10 100644
--- a/ui-react/src/components/dialogs/UserInfoModal.test.js
+++ b/runtime/ui-react/src/components/dialogs/UserInfoModal.test.js
diff --git a/ui-react/src/components/dialogs/__snapshots__/UserInfoModal.test.js.snap b/runtime/ui-react/src/components/dialogs/__snapshots__/UserInfoModal.test.js.snap
index 7c725bc42..548a2d938 100644
--- a/ui-react/src/components/dialogs/__snapshots__/UserInfoModal.test.js.snap
+++ b/runtime/ui-react/src/components/dialogs/__snapshots__/UserInfoModal.test.js.snap
@@ -91,11 +91,13 @@ exports[`Verify UserInfoModal Test the render method full permission 1`] = `
<Col>
<FormControl
defaultValue="permission1"
+ key="permission1"
plaintext={true}
readOnly={true}
/>
<FormControl
defaultValue="permission2"
+ key="permission2"
plaintext={true}
readOnly={true}
/>
diff --git a/ui-react/src/components/loop_viewer/logs/LoopLogs.js b/runtime/ui-react/src/components/loop_viewer/logs/LoopLogs.js
index b3f052626..e3d9f601f 100644
--- a/ui-react/src/components/loop_viewer/logs/LoopLogs.js
+++ b/runtime/ui-react/src/components/loop_viewer/logs/LoopLogs.js
@@ -66,10 +66,9 @@ export default class LoopLogs extends React.Component {
}
renderLogs() {
- if (this.state.loopCache.getLoopLogsArray() != null) {
- return (
- this.state.loopCache.getLoopLogsArray().map(row => <TableRow logRow={row} />)
- )
+ let logsArray = this.state.loopCache.getLoopLogsArray();
+ if (logsArray != null) {
+ return (logsArray.map(row => <TableRow key={row.id} logRow={row} />));
}
}
diff --git a/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js b/runtime/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js
index 3b7fd413a..3b7fd413a 100644
--- a/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js
+++ b/runtime/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js
diff --git a/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap b/runtime/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap
index 75b817bab..996c67457 100644
--- a/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap
+++ b/runtime/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap
@@ -45,6 +45,7 @@ exports[`Verify LoopLogs Test the render method 1`] = `
</thead>
<tbody>
<TableRow
+ key="1"
logRow={
Object {
"id": 1,
diff --git a/ui-react/src/components/loop_viewer/status/LoopStatus.js b/runtime/ui-react/src/components/loop_viewer/status/LoopStatus.js
index d960c31e6..4b35b48e1 100644
--- a/ui-react/src/components/loop_viewer/status/LoopStatus.js
+++ b/runtime/ui-react/src/components/loop_viewer/status/LoopStatus.js
@@ -57,12 +57,13 @@ export default class LoopStatus extends React.Component {
renderStatus() {
- if (this.state.loopCache.getComponentStates() != null) {
- return Object.keys(this.state.loopCache.getComponentStates()).map((key) => {
+ let componentStates = this.state.loopCache.getComponentStates();
+ if (componentStates != null) {
+ return Object.keys(componentStates).map((key) => {
console.debug("Adding status for: ",key);
var res={}
res[key]=this.state.loopCache.getComponentStates()[key];
- return (<TableRow statusRow={{'componentName':key,'stateName':this.state.loopCache.getComponentStates()[key].componentState.stateName,'description':this.state.loopCache.getComponentStates()[key].componentState.description}} />)
+ return (<TableRow key={key} statusRow={{'componentName':key,'stateName':this.state.loopCache.getComponentStates()[key].componentState.stateName,'description':this.state.loopCache.getComponentStates()[key].componentState.description}} />)
})
}
diff --git a/ui-react/src/components/loop_viewer/status/LoopStatus.test.js b/runtime/ui-react/src/components/loop_viewer/status/LoopStatus.test.js
index 8d0448796..8d0448796 100644
--- a/ui-react/src/components/loop_viewer/status/LoopStatus.test.js
+++ b/runtime/ui-react/src/components/loop_viewer/status/LoopStatus.test.js
diff --git a/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap b/runtime/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap
index 73da5fff1..24d879de9 100644
--- a/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap
+++ b/runtime/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap
@@ -40,6 +40,7 @@ exports[`Verify LoopStatus Test the render method 1`] = `
</thead>
<tbody>
<TableRow
+ key="POLICY"
statusRow={
Object {
"componentName": "POLICY",
@@ -49,6 +50,7 @@ exports[`Verify LoopStatus Test the render method 1`] = `
}
/>
<TableRow
+ key="DCAE"
statusRow={
Object {
"componentName": "DCAE",
diff --git a/ui-react/src/components/loop_viewer/svg/SvgGenerator.js b/runtime/ui-react/src/components/loop_viewer/svg/SvgGenerator.js
index f5f5047ba..6d3cd7a21 100644
--- a/ui-react/src/components/loop_viewer/svg/SvgGenerator.js
+++ b/runtime/ui-react/src/components/loop_viewer/svg/SvgGenerator.js
@@ -59,16 +59,16 @@ class SvgGenerator extends React.Component {
}
shouldComponentUpdate(nextProps, nextState) {
- return this.state.loopCache !== nextState.loopCache;
+ return this.state.loopCache !== nextProps.loopCache;
}
- componentWillReceiveProps(newProps) {
- if (this.state.loopCache !== newProps.loopCache) {
- this.setState({
- loopCache: newProps.loopCache,
- });
- }
- }
+ componentDidUpdate(prevProps) {
+ if (prevProps.loopCache !== this.props.loopCache) {
+ this.setState({
+ loopCache: this.props.loopCache,
+ });
+ }
+ }
handleSvgClick(event) {
console.debug("svg click event received");
@@ -233,10 +233,10 @@ class SvgGenerator extends React.Component {
return (
<DivStyled onClick={this.handleSvgClick} >
- <svg height={svgHeight} width={svgWidth} viewBox="0,0,{svgWidth},{svgHeight}" preserveAspectRatio="none">
- <svg x="-50" y="25">
- {allTheElements}
- </svg>
+ <svg key="main" height={svgHeight} width={svgWidth} viewBox="0,0,{svgWidth},{svgHeight}" preserveAspectRatio="none">
+ <svg key="content" x="-50" y="25">
+ {allTheElements}
+ </svg>
</svg>
</DivStyled>
);
diff --git a/ui-react/src/components/menu/MenuBar.js b/runtime/ui-react/src/components/menu/MenuBar.js
index 995db9e16..995db9e16 100644
--- a/ui-react/src/components/menu/MenuBar.js
+++ b/runtime/ui-react/src/components/menu/MenuBar.js
diff --git a/ui-react/src/components/menu/MenuBar.test.js b/runtime/ui-react/src/components/menu/MenuBar.test.js
index 3e96dbf38..3e96dbf38 100644
--- a/ui-react/src/components/menu/MenuBar.test.js
+++ b/runtime/ui-react/src/components/menu/MenuBar.test.js
diff --git a/ui-react/src/components/menu/__snapshots__/MenuBar.test.js.snap b/runtime/ui-react/src/components/menu/__snapshots__/MenuBar.test.js.snap
index ba19097e5..ba19097e5 100644
--- a/ui-react/src/components/menu/__snapshots__/MenuBar.test.js.snap
+++ b/runtime/ui-react/src/components/menu/__snapshots__/MenuBar.test.js.snap
diff --git a/ui-react/src/index.js b/runtime/ui-react/src/index.js
index dd83096ea..dd83096ea 100644
--- a/ui-react/src/index.js
+++ b/runtime/ui-react/src/index.js
diff --git a/ui-react/src/logo.png b/runtime/ui-react/src/logo.png
index c6f6857a5..c6f6857a5 100644
--- a/ui-react/src/logo.png
+++ b/runtime/ui-react/src/logo.png
Binary files differ
diff --git a/ui-react/src/setupTests.js b/runtime/ui-react/src/setupTests.js
index f5535835c..30ce019ea 100644
--- a/ui-react/src/setupTests.js
+++ b/runtime/ui-react/src/setupTests.js
@@ -22,7 +22,7 @@
*/
import { configure } from 'enzyme';
-import Adapter from 'enzyme-adapter-react-17-updated';
+import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
configure({ adapter: new Adapter() });
-global.fetch = require('jest-fetch-mock'); \ No newline at end of file
+global.fetch = require('jest-fetch-mock');
diff --git a/ui-react/src/theme/globalStyle.js b/runtime/ui-react/src/theme/globalStyle.js
index 1e316d20b..1e316d20b 100644
--- a/ui-react/src/theme/globalStyle.js
+++ b/runtime/ui-react/src/theme/globalStyle.js
diff --git a/ui-react/src/utils/CsvToJson.js b/runtime/ui-react/src/utils/CsvToJson.js
index 5ec19c9e2..5ec19c9e2 100644
--- a/ui-react/src/utils/CsvToJson.js
+++ b/runtime/ui-react/src/utils/CsvToJson.js
diff --git a/ui-react/src/utils/CsvToJson.test.js b/runtime/ui-react/src/utils/CsvToJson.test.js
index 88fa7a472..88fa7a472 100644
--- a/ui-react/src/utils/CsvToJson.test.js
+++ b/runtime/ui-react/src/utils/CsvToJson.test.js
diff --git a/ui-react/src/utils/OnapConstants.js b/runtime/ui-react/src/utils/OnapConstants.js
index 8460340d1..8460340d1 100644
--- a/ui-react/src/utils/OnapConstants.js
+++ b/runtime/ui-react/src/utils/OnapConstants.js
diff --git a/ui-react/src/utils/OnapUtils.js b/runtime/ui-react/src/utils/OnapUtils.js
index 316a0d65f..316a0d65f 100644
--- a/ui-react/src/utils/OnapUtils.js
+++ b/runtime/ui-react/src/utils/OnapUtils.js
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java b/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java
deleted file mode 100644
index 9431f40e8..000000000
--- a/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- */
-
-package org.onap.policy.clamp.clds.config;
-
-import java.io.IOException;
-import java.net.URL;
-import java.security.KeyManagementException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.CertificateException;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManagerFactory;
-import org.apache.camel.CamelContext;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.http4.HttpClientConfigurer;
-import org.apache.camel.component.http4.HttpComponent;
-import org.apache.camel.model.rest.RestBindingMode;
-import org.apache.http.config.Registry;
-import org.apache.http.config.RegistryBuilder;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.conn.socket.ConnectionSocketFactory;
-import org.apache.http.conn.socket.PlainConnectionSocketFactory;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
-import org.onap.policy.clamp.clds.util.ClampVersioning;
-import org.onap.policy.clamp.clds.util.ResourceFileUtils;
-import org.onap.policy.clamp.util.PassDecoder;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.env.Environment;
-import org.springframework.stereotype.Component;
-
-@Component
-public class CamelConfiguration extends RouteBuilder {
-
- @Autowired
- CamelContext camelContext;
-
- @Autowired
- private Environment env;
-
- private void configureDefaultSslProperties() throws IOException {
- if (env.getProperty("server.ssl.trust-store") != null) {
- URL storeResource = Thread.currentThread().getContextClassLoader()
- .getResource(env.getProperty("server.ssl.trust-store").replaceFirst("classpath:", ""));
- System.setProperty("javax.net.ssl.trustStore", storeResource.getPath());
- String keyFile = env.getProperty("clamp.config.keyFile");
- String trustStorePass = PassDecoder.decode(env.getProperty("server.ssl.trust-store-password"),
- keyFile);
- System.setProperty("javax.net.ssl.trustStorePassword", trustStorePass);
- System.setProperty("javax.net.ssl.trustStoreType", "jks");
- System.setProperty("ssl.TrustManagerFactory.algorithm", "PKIX");
- storeResource = Thread.currentThread().getContextClassLoader()
- .getResource(env.getProperty("server.ssl.key-store").replaceFirst("classpath:", ""));
- System.setProperty("javax.net.ssl.keyStore", storeResource.getPath());
-
- String keyStorePass = PassDecoder.decode(env.getProperty("server.ssl.key-store-password"),
- keyFile);
- System.setProperty("javax.net.ssl.keyStorePassword", keyStorePass);
- System.setProperty("javax.net.ssl.keyStoreType", env.getProperty("server.ssl.key-store-type"));
- }
- }
-
- private void registerTrustStore()
- throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException, CertificateException, IOException {
- if (env.getProperty("server.ssl.trust-store") != null) {
- KeyStore truststore = KeyStore.getInstance("JKS");
- String keyFile = env.getProperty("clamp.config.keyFile");
- String password = PassDecoder.decode(env.getProperty("server.ssl.trust-store-password"), keyFile);
- truststore.load(
- ResourceFileUtils.getResourceAsStream(env.getProperty("server.ssl.trust-store")),
- password.toCharArray());
-
- TrustManagerFactory trustFactory = TrustManagerFactory.getInstance("PKIX");
- trustFactory.init(truststore);
- SSLContext sslcontext = SSLContext.getInstance("TLS");
- sslcontext.init(null, trustFactory.getTrustManagers(), null);
- SSLSocketFactory factory = new SSLSocketFactory(sslcontext, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
- SchemeRegistry registry = new SchemeRegistry();
- final Scheme scheme = new Scheme("https4", 443, factory);
- registry.register(scheme);
- ConnectionSocketFactory plainsf = PlainConnectionSocketFactory.getSocketFactory();
- HttpComponent http4 = camelContext.getComponent("https4", HttpComponent.class);
- http4.setHttpClientConfigurer(new HttpClientConfigurer() {
-
- @Override
- public void configureHttpClient(HttpClientBuilder builder) {
- builder.setSSLSocketFactory(factory);
- Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
- .register("https", factory).register("http", plainsf).build();
- builder.setConnectionManager(new BasicHttpClientConnectionManager(registry));
- }
- });
- }
- }
-
- @Override
- public void configure()
- throws KeyManagementException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException {
- restConfiguration().component("servlet").bindingMode(RestBindingMode.json).jsonDataFormat("clamp-gson")
- .dataFormatProperty("prettyPrint", "true")// .enableCORS(true)
- // turn on swagger api-doc
- .apiContextPath("api-doc").apiVendorExtension(true).apiProperty("api.title", "Clamp Rest API")
- .apiProperty("api.version", ClampVersioning.getCldsVersionFromProps())
- .apiProperty("base.path", "/restservices/clds/");
-
- // camelContext.setTracing(true);
-
- configureDefaultSslProperties();
- registerTrustStore();
- }
-}
diff --git a/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaYamlToJsonConvertor.java b/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaYamlToJsonConvertor.java
deleted file mode 100644
index 4f718d5d7..000000000
--- a/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaYamlToJsonConvertor.java
+++ /dev/null
@@ -1,781 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018, 2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.tosca;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Optional;
-import java.util.stream.Collectors;
-import org.json.JSONArray;
-import org.json.JSONObject;
-import org.onap.policy.clamp.clds.config.ClampProperties;
-import org.onap.policy.clamp.tosca.Dictionary;
-import org.onap.policy.clamp.tosca.DictionaryElement;
-import org.onap.policy.clamp.tosca.DictionaryService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.yaml.snakeyaml.Yaml;
-
-/**
- * Tosca Model Yaml parser and convertor to JSON Schema consumable for JSON
- * Editor.
- *
- */
-@Component
-@Deprecated
-public class ToscaYamlToJsonConvertor {
-
- @Autowired
- private DictionaryService dictionaryService;
-
- @Autowired
- private ClampProperties refProp;
-
- private int simpleTypeOrder = 1000;
- private int complexTypeOrder = 10000;
- private int complexSimpleTypeOrder = 1;
-
- private int incrementSimpleTypeOrder() {
- return simpleTypeOrder++;
- }
-
- private int incrementComplexTypeOrder() {
- return complexTypeOrder = complexTypeOrder + 10000;
- }
-
- private int incrementComplexSimpleTypeOrder() {
- complexSimpleTypeOrder++;
- return complexTypeOrder + complexSimpleTypeOrder;
- }
-
- /**
- * Parses Tosca YAML string and Converts to JsonObject.
- *
- * @param yamlString YAML string
- * @return JsonObject
- */
- public JsonObject validateAndConvertToJson(String yamlString) {
-
- Yaml yaml = new Yaml();
- LinkedHashMap<String, Object> loadedYaml = yaml.load(yamlString);
- if (loadedYaml == null) {
- return null;
- }
-
- JSONObject jsonObject = new JSONObject(loadedYaml);
- return new Gson().fromJson(jsonObject.toString(), JsonObject.class);
- }
-
- /**
- * return the values by looking up the key in the Toscsa JSON object.
- *
- * @param obj Tosca Json Object
- * @param key the parameter key to look up
- * @return the value for the provided key
- */
- public String getValueFromMetadata(JsonObject obj, String key) {
- JsonElement jsonElement = obj.get(ToscaSchemaConstants.NODE_TYPES);
- if (jsonElement.isJsonObject()) {
- Iterator<Entry<String, JsonElement>> itr =
- jsonElement.getAsJsonObject().entrySet().iterator();
- while (itr.hasNext()) {
- Entry<String, JsonElement> entry = itr.next();
- if (entry.getValue() != null && entry.getValue().isJsonObject()
- && entry.getValue().getAsJsonObject().has(ToscaSchemaConstants.METADATA)) {
- JsonObject metadatas = entry.getValue().getAsJsonObject()
- .get(ToscaSchemaConstants.METADATA).getAsJsonObject();
- if (metadatas.has(key)) {
- return metadatas.get(key).getAsString();
- }
- }
- }
- }
- return null;
- }
-
- /**
- * Parses Tosca YAML string.
- *
- * @param yamlString YAML string
- * @param modelTypeToUse The model type that must be used to obtain the Json
- * Schema
- * @return JSON string
- */
- public String parseToscaYaml(String yamlString, String modelTypeToUse) {
-
- Yaml yaml = new Yaml();
- LinkedHashMap<String, Object> loadedYaml = yaml.load(yamlString);
- if (loadedYaml == null) {
- return "";
- }
- LinkedHashMap<String, Object> nodeTypes = new LinkedHashMap<>();
- LinkedHashMap<String, Object> dataNodes = new LinkedHashMap<>();
- JSONObject jsonParentObject = new JSONObject();
- JSONObject jsonTempObject = new JSONObject();
- parseNodeAndDataType(loadedYaml, nodeTypes, dataNodes);
- populateJsonEditorObject(loadedYaml, nodeTypes, dataNodes, jsonParentObject, jsonTempObject,
- modelTypeToUse);
-
- String headerTemplate = getValueFromMetadata(validateAndConvertToJson(yamlString),
- ToscaSchemaConstants.METADATA_HEADER_TEMPLATE);
- if (headerTemplate != null) {
- jsonParentObject.put(JsonEditorSchemaConstants.HEADER_TEMPLATE,
- JsonEditorSchemaConstants.HEADER_TEMPLATE_VALUE);
- }
- if (jsonTempObject.length() > 0) {
- jsonParentObject = jsonTempObject;
- }
- JSONObject jsonEditorObject = new JSONObject();
- jsonEditorObject.put(JsonEditorSchemaConstants.SCHEMA, jsonParentObject);
- return jsonEditorObject.toString();
- }
-
- // Parse node_type and data_type
- @SuppressWarnings("unchecked")
- private void parseNodeAndDataType(LinkedHashMap<String, Object> map,
- LinkedHashMap<String, Object> nodeTypes, LinkedHashMap<String, Object> dataNodes) {
- map.entrySet().stream().forEach(n -> {
- if (n.getKey().contains(ToscaSchemaConstants.NODE_TYPES)
- && n.getValue() instanceof Map) {
- parseNodeAndDataType((LinkedHashMap<String, Object>) n.getValue(), nodeTypes,
- dataNodes);
- } else if (n.getKey().contains(ToscaSchemaConstants.DATA_TYPES)
- && n.getValue() instanceof Map) {
- parseNodeAndDataType((LinkedHashMap<String, Object>) n.getValue(), nodeTypes,
- dataNodes);
- } else if (n.getKey().contains(ToscaSchemaConstants.POLICY_NODE)) {
- nodeTypes.put(n.getKey(), n.getValue());
- } else if (n.getKey().contains(ToscaSchemaConstants.POLICY_DATA)) {
- dataNodes.put(n.getKey(), n.getValue());
- }
- });
- }
-
- @SuppressWarnings("unchecked")
- private void populateJsonEditorObject(LinkedHashMap<String, Object> map,
- LinkedHashMap<String, Object> nodeTypes, LinkedHashMap<String, Object> dataNodes,
- JSONObject jsonParentObject, JSONObject jsonTempObject, String modelTypeToUse) {
-
- Map<String, JSONObject> jsonEntrySchema = new HashMap<>();
- jsonParentObject.put(JsonEditorSchemaConstants.TYPE, JsonEditorSchemaConstants.TYPE_OBJECT);
- if (nodeTypes.get(modelTypeToUse) instanceof Map) {
- ((LinkedHashMap<String, Object>) nodeTypes.get(modelTypeToUse)).entrySet()
- .forEach(ntElement -> {
- if (ntElement.getKey().equalsIgnoreCase(ToscaSchemaConstants.PROPERTIES)) {
- JSONArray rootNodeArray = new JSONArray();
- if (ntElement.getValue() instanceof Map) {
- ((LinkedHashMap<String, Object>) ntElement.getValue()).entrySet()
- .forEach((ntPropertiesElement) -> {
- boolean isListNode = false;
- parseDescription(
- (LinkedHashMap<String, Object>) ntPropertiesElement
- .getValue(),
- jsonParentObject);
- LinkedHashMap<String, Object> parentPropertiesMap =
- (LinkedHashMap<String, Object>) ntPropertiesElement
- .getValue();
- if (parentPropertiesMap.containsKey(ToscaSchemaConstants.TYPE)
- && ((String) parentPropertiesMap
- .get(ToscaSchemaConstants.TYPE))
- .contains(ToscaSchemaConstants.TYPE_MAP)
- && parentPropertiesMap
- .containsKey(ToscaSchemaConstants.ENTRY_SCHEMA)) {
- parentPropertiesMap =
- (LinkedHashMap<String, Object>) parentPropertiesMap
- .get(ToscaSchemaConstants.ENTRY_SCHEMA);
- isListNode = true;
- }
- if (parentPropertiesMap.containsKey(ToscaSchemaConstants.TYPE)
- && ((String) parentPropertiesMap
- .get(ToscaSchemaConstants.TYPE))
- .contains(ToscaSchemaConstants.POLICY_DATA)) {
- ((LinkedHashMap<String, Object>) dataNodes.get(
- parentPropertiesMap.get(ToscaSchemaConstants.TYPE)))
- .entrySet().stream().forEach(pmap -> {
- if (pmap.getKey().equalsIgnoreCase(
- ToscaSchemaConstants.PROPERTIES)) {
- parseToscaProperties(
- ToscaSchemaConstants.POLICY_NODE,
- (LinkedHashMap<String, Object>) pmap
- .getValue(),
- jsonParentObject, rootNodeArray,
- jsonEntrySchema, dataNodes,
- incrementSimpleTypeOrder());
- }
- });
- }
- if (isListNode) {
- jsonTempObject.put(JsonEditorSchemaConstants.TYPE,
- JsonEditorSchemaConstants.TYPE_ARRAY);
- parseDescription(
- (LinkedHashMap<String, Object>) ntPropertiesElement
- .getValue(),
- jsonTempObject);
- jsonTempObject.put(JsonEditorSchemaConstants.ITEMS,
- jsonParentObject);
- jsonTempObject.put(JsonEditorSchemaConstants.FORMAT,
- JsonEditorSchemaConstants.CUSTOM_KEY_FORMAT_TABS);
- jsonTempObject.put(JsonEditorSchemaConstants.UNIQUE_ITEMS,
- JsonEditorSchemaConstants.TRUE);
- }
- });
- }
- }
- });
- }
- }
-
- @SuppressWarnings("unchecked")
- private void parseToscaProperties(String parentKey, LinkedHashMap<String, Object> propertiesMap,
- JSONObject jsonDataNode, JSONArray array, Map<String, JSONObject> jsonEntrySchema,
- LinkedHashMap<String, Object> dataNodes, final int order) {
- JSONObject jsonPropertyNode = new JSONObject();
- propertiesMap.entrySet().stream().forEach(p -> {
- // Populate JSON Array for "required" key
-
- if (p.getValue() instanceof Map) {
- LinkedHashMap<String, Object> nodeMap =
- (LinkedHashMap<String, Object>) p.getValue();
- if (nodeMap.containsKey(ToscaSchemaConstants.REQUIRED)
- && ((boolean) nodeMap.get(ToscaSchemaConstants.REQUIRED))) {
- array.put(p.getKey());
- }
- // if(nodeMap.containsKey(ToscaSchemaConstants.CONSTRAINTS))
- parseToscaChildNodeMap(p.getKey(), nodeMap, jsonPropertyNode, jsonEntrySchema,
- dataNodes, array, incrementSimpleTypeOrder());
- }
- });
- jsonDataNode.put(JsonEditorSchemaConstants.REQUIRED, array);
- jsonDataNode.put(JsonEditorSchemaConstants.PROPERTIES, jsonPropertyNode);
- }
-
- @SuppressWarnings("unchecked")
- private void parseToscaPropertiesForType(String parentKey,
- LinkedHashMap<String, Object> propertiesMap, JSONObject jsonDataNode, JSONArray array,
- Map<String, JSONObject> jsonEntrySchema, LinkedHashMap<String, Object> dataNodes,
- boolean isType, int order) {
- JSONObject jsonPropertyNode = new JSONObject();
-
- propertiesMap.entrySet().stream().forEach(p -> {
- // array.put(p.getKey());
- boolean overWriteArray = false;
- if (p.getValue() instanceof Map) {
- LinkedHashMap<String, Object> nodeMap =
- (LinkedHashMap<String, Object>) p.getValue();
- if (!(parentKey.contains(ToscaSchemaConstants.ENTRY_SCHEMA)
- || parentKey.contains(ToscaSchemaConstants.POLICY_NODE))
- && nodeMap.containsKey(ToscaSchemaConstants.TYPE)
- && (((String) nodeMap.get(ToscaSchemaConstants.TYPE))
- .contains(ToscaSchemaConstants.POLICY_DATA))) {
- overWriteArray = true;
- }
- if (nodeMap.containsKey(ToscaSchemaConstants.REQUIRED)
- && ((boolean) nodeMap.get(ToscaSchemaConstants.REQUIRED))) {
- array.put(p.getKey());
- }
- parseToscaChildNodeMap(p.getKey(), nodeMap, jsonPropertyNode, jsonEntrySchema,
- dataNodes, array, order);
- }
- });
- jsonDataNode.put(JsonEditorSchemaConstants.REQUIRED, array);
- jsonDataNode.put(JsonEditorSchemaConstants.PROPERTIES, jsonPropertyNode);
- }
-
- private void parseToscaChildNodeMap(String childObjectKey,
- LinkedHashMap<String, Object> childNodeMap, JSONObject jsonPropertyNode,
- Map<String, JSONObject> jsonEntrySchema, LinkedHashMap<String, Object> dataNodes,
- JSONArray array, int order) {
- JSONObject childObject = new JSONObject();
- // JSONArray childArray = new JSONArray();
- parseDescription(childNodeMap, childObject);
- parseTypes(childObjectKey, childNodeMap, childObject, jsonEntrySchema, dataNodes, array,
- order);
- parseConstraints(childNodeMap, childObject);
- parseMetadataPossibleValues(childNodeMap, childObject);
- parseEntrySchema(childNodeMap, childObject, jsonPropertyNode, jsonEntrySchema, dataNodes);
-
- jsonPropertyNode.put(childObjectKey, childObject);
- order++;
-
- }
-
- private void parseEntrySchema(LinkedHashMap<String, Object> childNodeMap,
- JSONObject childObject, JSONObject jsonPropertyNode,
- Map<String, JSONObject> jsonEntrySchema, LinkedHashMap<String, Object> dataNodes) {
- if (childNodeMap.get(ToscaSchemaConstants.ENTRY_SCHEMA) != null) {
- if (childNodeMap.get(ToscaSchemaConstants.ENTRY_SCHEMA) instanceof Map) {
- LinkedHashMap<String, Object> entrySchemaMap =
- (LinkedHashMap<String, Object>) childNodeMap
- .get(ToscaSchemaConstants.ENTRY_SCHEMA);
- entrySchemaMap.entrySet().stream().forEach(entry -> {
- if (entry.getKey().equalsIgnoreCase(ToscaSchemaConstants.TYPE)
- && entry.getValue() != null) {
- String entrySchemaType = (String) entry.getValue();
- if (entrySchemaType.contains(ToscaSchemaConstants.POLICY_DATA)) {
- JSONArray array = new JSONArray();
- if (jsonEntrySchema.get(entrySchemaType) != null) {
- // Already traversed
- JSONObject entrySchemaObject = jsonEntrySchema.get(entrySchemaType);
- attachEntrySchemaJsonObject(childObject, entrySchemaObject,
- JsonEditorSchemaConstants.TYPE_OBJECT);
- } else if (dataNodes.containsKey(entrySchemaType)) {
-
- JSONObject entrySchemaObject = new JSONObject();
- // Need to traverse
- ((LinkedHashMap<String, Object>) dataNodes.get(entrySchemaType))
- .entrySet().stream().forEach(pmap -> {
- if (pmap.getKey()
- .equalsIgnoreCase(ToscaSchemaConstants.PROPERTIES)) {
- parseToscaProperties(ToscaSchemaConstants.ENTRY_SCHEMA,
- (LinkedHashMap<String, Object>) pmap.getValue(),
- entrySchemaObject, array, jsonEntrySchema,
- dataNodes, incrementComplexTypeOrder());
- jsonEntrySchema.put(entrySchemaType, entrySchemaObject);
- dataNodes.remove(entrySchemaType);
- attachEntrySchemaJsonObject(childObject,
- entrySchemaObject,
- JsonEditorSchemaConstants.TYPE_OBJECT);
- }
-
- });
- }
- } else if (entrySchemaType
- .equalsIgnoreCase(ToscaSchemaConstants.TYPE_STRING)
- || entrySchemaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_INTEGER)
- || entrySchemaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_FLOAT)) {
- JSONObject entrySchemaObject = new JSONObject();
- parseConstraints(entrySchemaMap, entrySchemaObject);
- parseMetadataPossibleValues(entrySchemaMap, entrySchemaObject);
- String jsontype = JsonEditorSchemaConstants.TYPE_STRING;
- if (entrySchemaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_INTEGER)
- || entrySchemaType
- .equalsIgnoreCase(ToscaSchemaConstants.TYPE_FLOAT)) {
- jsontype = JsonEditorSchemaConstants.TYPE_INTEGER;
- }
- if (childNodeMap.get(ToscaSchemaConstants.TYPE) != null) {
- // Only known value of type is String for now
- if (childNodeMap.get(ToscaSchemaConstants.TYPE) instanceof String) {
- String typeValue =
- (String) childNodeMap.get(ToscaSchemaConstants.TYPE);
- if (typeValue
- .equalsIgnoreCase(ToscaSchemaConstants.TYPE_LIST)) {
- // Custom key for JSON Editor and UI rendering
- childObject.put(JsonEditorSchemaConstants.CUSTOM_KEY_FORMAT,
- JsonEditorSchemaConstants.FORMAT_SELECT);
- // childObject.put(JsonEditorSchemaConstants.UNIQUE_ITEMS,
- // JsonEditorSchemaConstants.TRUE);
- }
- }
- }
- attachEntrySchemaJsonObject(childObject, entrySchemaObject, jsontype);
- }
- }
- });
- }
- }
- }
-
- private void attachEntrySchemaJsonObject(JSONObject childObject, JSONObject entrySchemaObject,
- String dataType) {
-
- entrySchemaObject.put(JsonEditorSchemaConstants.TYPE, dataType);
- childObject.put(JsonEditorSchemaConstants.ITEMS, entrySchemaObject);
- }
-
- @SuppressWarnings("unchecked")
- private void attachTypeJsonObject(JSONObject childObject, JSONObject typeObject) {
- Iterator<String> keys = typeObject.keys();
- while (keys.hasNext()) {
- String key = keys.next();
- childObject.put(key, typeObject.get(key));
- }
- }
-
- /*
- * private String parseKey(String toscaKey, String lookupString) { return
- * toscaKey.substring(toscaKey.indexOf(lookupString) + lookupString.length(),
- * toscaKey.length()); }
- */
-
- private void parseDescription(LinkedHashMap<String, Object> childNodeMap,
- JSONObject childObject) {
- if (childNodeMap.get(ToscaSchemaConstants.DESCRIPTION) != null) {
- childObject.put(JsonEditorSchemaConstants.TITLE,
- childNodeMap.get(ToscaSchemaConstants.DESCRIPTION));
- }
- }
-
- private void parseTypes(String childObjectKey, LinkedHashMap<String, Object> childNodeMap,
- JSONObject childObject, Map<String, JSONObject> jsonEntrySchema,
- LinkedHashMap<String, Object> dataNodes, JSONArray array, int order) {
- if (childNodeMap.get(ToscaSchemaConstants.TYPE) != null) {
- // Only known value of type is String for now
- if (childNodeMap.get(ToscaSchemaConstants.TYPE) instanceof String) {
- childObject.put(JsonEditorSchemaConstants.PROPERTY_ORDER, order);
- String typeValue = (String) childNodeMap.get(ToscaSchemaConstants.TYPE);
- if (typeValue.equalsIgnoreCase(ToscaSchemaConstants.TYPE_INTEGER)) {
- childObject.put(JsonEditorSchemaConstants.TYPE,
- JsonEditorSchemaConstants.TYPE_INTEGER);
-
- } else if (typeValue.equalsIgnoreCase(ToscaSchemaConstants.TYPE_FLOAT)) {
- childObject.put(JsonEditorSchemaConstants.TYPE,
- JsonEditorSchemaConstants.TYPE_INTEGER);
- } else if (typeValue.equalsIgnoreCase(ToscaSchemaConstants.TYPE_LIST)) {
- childObject.put(JsonEditorSchemaConstants.TYPE,
- JsonEditorSchemaConstants.TYPE_ARRAY);
- // Custom key for JSON Editor and UI rendering
- childObject.put(JsonEditorSchemaConstants.CUSTOM_KEY_FORMAT,
- JsonEditorSchemaConstants.CUSTOM_KEY_FORMAT_TABS_TOP);
- childObject.put(JsonEditorSchemaConstants.UNIQUE_ITEMS,
- JsonEditorSchemaConstants.TRUE);
- } else if (typeValue.equalsIgnoreCase(ToscaSchemaConstants.TYPE_MAP)) {
- childObject.put(JsonEditorSchemaConstants.TYPE,
- JsonEditorSchemaConstants.TYPE_OBJECT);
- } else if (typeValue.contains(ToscaSchemaConstants.POLICY_DATA)) {
- JSONArray childArray = new JSONArray();
-
- if (jsonEntrySchema.get(typeValue) != null) {
- // Already traversed
- JSONObject entrySchemaObject = jsonEntrySchema.get(typeValue);
- attachTypeJsonObject(childObject, entrySchemaObject);
- } else if (dataNodes.containsKey(typeValue)) {
- JSONObject entrySchemaObject = new JSONObject();
- // Need to traverse
- JSONArray jsonArray = new JSONArray();
- ((LinkedHashMap<String, Object>) dataNodes.get(typeValue)).entrySet()
- .stream().forEach(pmap -> {
- if (pmap.getKey()
- .equalsIgnoreCase(ToscaSchemaConstants.PROPERTIES)) {
- parseToscaPropertiesForType(childObjectKey,
- (LinkedHashMap<String, Object>) pmap.getValue(),
- entrySchemaObject, childArray, jsonEntrySchema, dataNodes,
- true, incrementComplexSimpleTypeOrder());
- jsonEntrySchema.put(typeValue, entrySchemaObject);
- dataNodes.remove(typeValue);
- attachTypeJsonObject(childObject, entrySchemaObject);
- }
- });
- }
- } else {
- childObject.put(JsonEditorSchemaConstants.TYPE,
- JsonEditorSchemaConstants.TYPE_STRING);
- }
- }
- if (childNodeMap.get(ToscaSchemaConstants.DEFAULT) != null) {
- childObject.put(JsonEditorSchemaConstants.DEFAULT,
- childNodeMap.get(ToscaSchemaConstants.DEFAULT));
- }
- }
- }
-
- private void parseConstraints(LinkedHashMap<String, Object> childNodeMap,
- JSONObject childObject) {
- if (childNodeMap.containsKey(ToscaSchemaConstants.CONSTRAINTS)
- && childNodeMap.get(ToscaSchemaConstants.CONSTRAINTS) != null) {
- List<LinkedHashMap<String, Object>> constraintsList =
- (List<LinkedHashMap<String, Object>>) childNodeMap
- .get(ToscaSchemaConstants.CONSTRAINTS);
- constraintsList.stream().forEach(c -> {
- if (c instanceof Map) {
- c.entrySet().stream().forEach(constraint -> {
- if (constraint.getKey().equalsIgnoreCase(ToscaSchemaConstants.MIN_LENGTH)
- || constraint.getKey()
- .equalsIgnoreCase(ToscaSchemaConstants.GREATER_OR_EQUAL)) {
- // For String min_lenghth is minimum length whereas for number, it will
- // be
- // minimum or greater than to the defined value
- if (childNodeMap.containsKey(ToscaSchemaConstants.TYPE)
- && (childNodeMap.get(ToscaSchemaConstants.TYPE) instanceof String)
- && ((String) childNodeMap.get(ToscaSchemaConstants.TYPE))
- .equalsIgnoreCase(ToscaSchemaConstants.TYPE_STRING)) {
- childObject.put(JsonEditorSchemaConstants.MIN_LENGTH,
- constraint.getValue());
- } else {
- childObject.put(JsonEditorSchemaConstants.MINIMUM,
- constraint.getValue());
- }
- } else if (constraint.getKey()
- .equalsIgnoreCase(ToscaSchemaConstants.MAX_LENGTH)
- || constraint.getKey()
- .equalsIgnoreCase(ToscaSchemaConstants.LESS_OR_EQUAL)) {
- // For String max_lenghth is maximum length whereas for number, it will
- // be
- // maximum or less than the defined value
- if (childNodeMap.containsKey(ToscaSchemaConstants.TYPE)
- && (childNodeMap.get(ToscaSchemaConstants.TYPE) instanceof String)
- && ((String) childNodeMap.get(ToscaSchemaConstants.TYPE))
- .equalsIgnoreCase(ToscaSchemaConstants.TYPE_STRING)) {
- childObject.put(JsonEditorSchemaConstants.MAX_LENGTH,
- constraint.getValue());
- } else {
- childObject.put(JsonEditorSchemaConstants.MAXIMUM,
- constraint.getValue());
- }
- } else if (constraint.getKey()
- .equalsIgnoreCase(ToscaSchemaConstants.LESS_THAN)) {
- childObject.put(JsonEditorSchemaConstants.EXCLUSIVE_MAXIMUM,
- constraint.getValue());
- } else if (constraint.getKey()
- .equalsIgnoreCase(ToscaSchemaConstants.GREATER_THAN)) {
- childObject.put(JsonEditorSchemaConstants.EXCLUSIVE_MINIMUM,
- constraint.getValue());
- } else if (constraint.getKey()
- .equalsIgnoreCase(ToscaSchemaConstants.IN_RANGE)) {
- if (constraint.getValue() instanceof ArrayList<?>) {
- if (childNodeMap.containsKey(ToscaSchemaConstants.TYPE)
- && (childNodeMap
- .get(ToscaSchemaConstants.TYPE) instanceof String)
- && ((String) childNodeMap.get(ToscaSchemaConstants.TYPE))
- .equalsIgnoreCase(ToscaSchemaConstants.TYPE_STRING)) {
- childObject.put(JsonEditorSchemaConstants.MIN_LENGTH,
- ((ArrayList) constraint.getValue()).get(0));
- childObject.put(JsonEditorSchemaConstants.MAX_LENGTH,
- ((ArrayList) constraint.getValue()).get(1));
- } else {
- childObject.put(JsonEditorSchemaConstants.MINIMUM,
- ((ArrayList) constraint.getValue()).get(0));
- childObject.put(JsonEditorSchemaConstants.MAXIMUM,
- ((ArrayList) constraint.getValue()).get(1));
- }
-
- }
- } else if (constraint.getKey()
- .equalsIgnoreCase(ToscaSchemaConstants.VALID_VALUES)) {
- JSONArray validValuesArray = new JSONArray();
-
- if (constraint.getValue() instanceof ArrayList<?>) {
- boolean processDictionary =
- ((ArrayList<?>) constraint.getValue()).stream().anyMatch(
- value -> (value instanceof String && ((String) value)
- .contains(ToscaSchemaConstants.DICTIONARY)));
- if (!processDictionary) {
- ((ArrayList<?>) constraint.getValue()).stream()
- .forEach(value -> {
- validValuesArray.put(value);
- });
- childObject.put(JsonEditorSchemaConstants.ENUM,
- validValuesArray);
- } else {
- ((ArrayList<?>) constraint.getValue()).stream()
- .forEach(value -> {
- if ((value instanceof String && ((String) value)
- .contains(ToscaSchemaConstants.DICTIONARY))) {
- processDictionaryElements(childObject,
- (String) value);
- }
-
- });
-
- }
- }
-
- }
- });
- }
- });
- }
- }
-
- private void parseMetadataPossibleValues(LinkedHashMap<String, Object> childNodeMap,
- JSONObject childObject) {
- if (childNodeMap.containsKey(ToscaSchemaConstants.METADATA)
- && childNodeMap.get(ToscaSchemaConstants.METADATA) != null) {
- LinkedHashMap<String, Object> metadataMap =
- (LinkedHashMap<String, Object>) childNodeMap.get(ToscaSchemaConstants.METADATA);
- if (metadataMap instanceof Map) {
- metadataMap.entrySet().stream().forEach(constraint -> {
- if (constraint.getKey()
- .equalsIgnoreCase(ToscaSchemaConstants.METADATA_CLAMP_POSSIBLE_VALUES)) {
- JSONArray validValuesArray = new JSONArray();
-
- if (constraint.getValue() instanceof ArrayList<?>) {
- boolean processDictionary = ((ArrayList<?>) constraint.getValue())
- .stream().anyMatch(value -> (value instanceof String
- && ((String) value).contains(ToscaSchemaConstants.DICTIONARY)));
- if (processDictionary) {
- ((ArrayList<?>) constraint.getValue()).stream().forEach(value -> {
- if ((value instanceof String && ((String) value)
- .contains(ToscaSchemaConstants.DICTIONARY))) {
- processDictionaryElements(childObject, (String) value);
- }
-
- });
-
- }
- }
-
- }
- });
- }
- }
- }
-
- private void processDictionaryElements(JSONObject childObject, String dictionaryReference) {
- if (dictionaryReference.contains("#")) {
- String[] dictionaryKeyArray = dictionaryReference
- .substring(dictionaryReference.indexOf(ToscaSchemaConstants.DICTIONARY) + 11,
- dictionaryReference.length())
- .split("#");
- // We support only one # as of now.
- List<DictionaryElement> cldsDictionaryElements = null;
- List<DictionaryElement> subDictionaryElements = null;
- if (dictionaryKeyArray != null && dictionaryKeyArray.length == 2) {
- cldsDictionaryElements = dictionaryService.getDictionary(dictionaryKeyArray[0])
- .getDictionaryElements().stream().collect(Collectors.toList());
- subDictionaryElements = dictionaryService.getDictionary(dictionaryKeyArray[1])
- .getDictionaryElements().stream().collect(Collectors.toList());
-
- if (cldsDictionaryElements != null) {
- List<String> subCldsDictionaryNames = subDictionaryElements.stream()
- .map(DictionaryElement::getShortName).collect(Collectors.toList());
- JSONArray jsonArray = new JSONArray();
-
- Optional.ofNullable(cldsDictionaryElements).get().stream().forEach(c -> {
- JSONObject jsonObject = new JSONObject();
- if (c.getSubDictionary() != null) {
- Dictionary subDictionary =
- dictionaryService.getDictionary(c.getSubDictionary());
- if (subDictionary != null
- && !subDictionary.getDictionaryElements().isEmpty()) {
-
- jsonObject.put(JsonEditorSchemaConstants.CUSTOM_KEY_FORMAT_INPUT,
- JsonEditorSchemaConstants.FORMAT_SELECT);
-
- List<String> shortNames = new ArrayList<>();
- subDictionary.getDictionaryElements().stream().forEach(c1 -> {
- shortNames.add(c1.getShortName());
- });
- jsonObject.put(JsonEditorSchemaConstants.VALUES, shortNames);
- }
- }
- jsonObject.put(JsonEditorSchemaConstants.TYPE, getJsonType(c.getType()));
-
- if (c.getType() != null
- && (c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_STRING)
- || c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_DATE_TIME)
- || c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_MAP))) {
- jsonObject.put(JsonEditorSchemaConstants.MIN_LENGTH, 1);
-
- if (c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_DATE_TIME)) {
- jsonObject.put(JsonEditorSchemaConstants.PLUGIN,
- JsonEditorSchemaConstants.DATE_TIME_PICKER);
- jsonObject.put(JsonEditorSchemaConstants.INPUT_EVENT,
- JsonEditorSchemaConstants.DP_CHANGE);
- JSONObject formatJsonObject = new JSONObject();
- formatJsonObject.put(JsonEditorSchemaConstants.FORMAT,
- JsonEditorSchemaConstants.DATE_TIME_FORMAT);
- jsonObject.put(JsonEditorSchemaConstants.VALIDATION,
- formatJsonObject);
- }
- }
-
- jsonObject.put(JsonEditorSchemaConstants.ID, c.getName());
- jsonObject.put(JsonEditorSchemaConstants.LABEL, c.getShortName());
- jsonObject.put(JsonEditorSchemaConstants.OPERATORS, subCldsDictionaryNames);
- jsonArray.put(jsonObject);
- });;
- JSONObject filterObject = new JSONObject();
- filterObject.put(JsonEditorSchemaConstants.FILTERS, jsonArray);
-
- childObject.put(JsonEditorSchemaConstants.TYPE,
- JsonEditorSchemaConstants.TYPE_QBLDR);
- // TO invoke validation on such parameters
- childObject.put(JsonEditorSchemaConstants.MIN_LENGTH, 1);
- childObject.put(JsonEditorSchemaConstants.QSSCHEMA, filterObject);
-
- }
- }
- } else {
- String dictionaryKey = dictionaryReference.substring(
- dictionaryReference.indexOf(ToscaSchemaConstants.DICTIONARY) + 11,
- dictionaryReference.length());
-
- if (dictionaryKey != null) {
- if (dictionaryKey.contains(ToscaSchemaConstants.TYPE_USER_DEFINED)) {
- childObject.put(JsonEditorSchemaConstants.ENUM, new ArrayList<>());
- // Add Enum titles for generated translated values during
- // JSON instance generation
- JSONObject enumTitles = new JSONObject();
- enumTitles.put(JsonEditorSchemaConstants.ENUM_TITLES, new ArrayList<>());
- childObject.put(JsonEditorSchemaConstants.OPTIONS, enumTitles);
- } else {
- List<DictionaryElement> cldsDictionaryElements =
- dictionaryService.getDictionary(dictionaryKey).getDictionaryElements()
- .stream().collect(Collectors.toList());
- if (cldsDictionaryElements != null) {
- List<String> cldsDictionaryNames = new ArrayList<>();
- List<String> cldsDictionaryFullNames = new ArrayList<>();
- cldsDictionaryElements.stream().forEach(c -> {
- // Json type will be translated before Policy creation
- if (c.getType() != null && !c.getType().equalsIgnoreCase("json")) {
- cldsDictionaryFullNames.add(c.getName());
- }
- cldsDictionaryNames.add(c.getShortName());
- });
-
- if (!cldsDictionaryFullNames.isEmpty()) {
- childObject.put(JsonEditorSchemaConstants.ENUM,
- cldsDictionaryFullNames);
- // Add Enum titles for generated translated values during JSON instance
- // generation
- JSONObject enumTitles = new JSONObject();
- enumTitles.put(JsonEditorSchemaConstants.ENUM_TITLES,
- cldsDictionaryNames);
- childObject.put(JsonEditorSchemaConstants.OPTIONS, enumTitles);
- } else {
- childObject.put(JsonEditorSchemaConstants.ENUM, cldsDictionaryNames);
- }
-
- }
- }
- }
- }
- }
-
- private String getJsonType(String toscaType) {
- String jsonType = null;
- if (toscaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_INTEGER)
- || toscaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_NUMBER)) {
- jsonType = JsonEditorSchemaConstants.TYPE_INTEGER;
- } else if (toscaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_DATE_TIME)) {
- jsonType = JsonEditorSchemaConstants.TYPE_DATE_TIME;
- } else if (toscaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_LIST)) {
- jsonType = JsonEditorSchemaConstants.TYPE_ARRAY;
- } else if (toscaType.equalsIgnoreCase(ToscaSchemaConstants.TYPE_MAP)) {
- jsonType = JsonEditorSchemaConstants.TYPE_MAP;
- } else {
- jsonType = JsonEditorSchemaConstants.TYPE_STRING;
- }
- return jsonType;
- }
-
-}
diff --git a/src/main/java/org/onap/policy/clamp/clds/util/CryptoUtils.java b/src/main/java/org/onap/policy/clamp/clds/util/CryptoUtils.java
deleted file mode 100644
index 01dd48763..000000000
--- a/src/main/java/org/onap/policy/clamp/clds/util/CryptoUtils.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.util;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import com.google.common.base.Charsets;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.security.GeneralSecurityException;
-import java.security.SecureRandom;
-import java.util.Properties;
-import javax.crypto.Cipher;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
-import org.apache.commons.codec.DecoderException;
-import org.apache.commons.codec.binary.Hex;
-import org.apache.commons.lang3.ArrayUtils;
-
-/**
- * CryptoUtils for encrypting/decrypting string based on a Key defined in
- * application.properties (Spring config file).
- */
-public final class CryptoUtils {
-
- /**
- * Used to log CryptoUtils class.
- */
- private static final EELFLogger logger = EELFManager.getInstance().getLogger(CryptoUtils.class);
- // Openssl commands:
- // Encrypt: echo -n "123456" | openssl aes-128-cbc -e -K <Private Hex key>
- // -iv <16 Bytes iv (HEX), be careful it's 32 Hex Chars> | xxd -u -g100
- // Final result is to put in properties file is: IV + Outcome of openssl
- // command
- // ************************************************************
- // Decrypt: echo -n 'Encrypted string' | xxd -r -ps | openssl aes-128-cbc -d
- // -K
- // <Private Hex Key> -iv <16 Bytes IV extracted from Encrypted String, be
- // careful it's 32 Hex Chars>
- /**
- * Definition of encryption algorithm.
- */
- private static final String ALGORITHM = "AES";
-
- /**
- * AES Encryption Key environment variable for external configuration.
- */
- private static final String AES_ENCRYPTION_KEY = "AES_ENCRYPTION_KEY";
-
- /**
- * Detailed definition of encryption algorithm.
- */
- private static final String ALGORITHM_DETAILS = ALGORITHM + "/CBC/PKCS5PADDING";
- private static final int IV_BLOCK_SIZE_IN_BITS = 128;
- /**
- * An Initial Vector of 16 Bytes, so 32 Hexadecimal Chars.
- */
- private static final int IV_BLOCK_SIZE_IN_BYTES = IV_BLOCK_SIZE_IN_BITS / 8;
- /**
- * Key to read in the key.properties file.
- */
- private static final String KEY_PARAM = "org.onap.policy.clamp.encryption.aes.key";
- private static final String PROPERTIES_FILE_NAME = "clds/key.properties";
- /**
- * The SecretKeySpec created from the Base 64 String key.
- */
- private static final SecretKeySpec SECRET_KEY_SPEC = readSecretKeySpec(PROPERTIES_FILE_NAME);
-
- /**
- * Private constructor to avoid creating instances of util class.
- */
- private CryptoUtils() {
- }
-
- /**
- * Encrypt a value based on the Clamp Encryption Key.
- *
- * @param value The value to encrypt
- * @return The encrypted string
- * @throws GeneralSecurityException In case of issue with the encryption
- * @throws UnsupportedEncodingException In case of issue with the charset
- * conversion
- */
- public static String encrypt(String value) throws GeneralSecurityException {
- Cipher cipher = Cipher.getInstance(ALGORITHM_DETAILS, "SunJCE");
- byte[] iv = new byte[IV_BLOCK_SIZE_IN_BYTES];
- SecureRandom.getInstance("SHA1PRNG").nextBytes(iv);
- IvParameterSpec ivspec = new IvParameterSpec(iv);
- cipher.init(Cipher.ENCRYPT_MODE, SECRET_KEY_SPEC, ivspec);
- return Hex.encodeHexString(ArrayUtils.addAll(iv, cipher.doFinal(value.getBytes(Charsets.UTF_8))));
- }
-
- /**
- * Decrypt a value based on the Clamp Encryption Key.
- *
- * @param message The encrypted string that must be decrypted using the Clamp
- * Encryption Key
- * @return The String decrypted
- * @throws GeneralSecurityException In case of issue with the encryption
- * @throws DecoderException In case of issue to decode the HexString
- */
- public static String decrypt(String message) throws GeneralSecurityException, DecoderException {
- byte[] encryptedMessage = Hex.decodeHex(message.toCharArray());
- Cipher cipher = Cipher.getInstance(ALGORITHM_DETAILS, "SunJCE");
- IvParameterSpec ivspec = new IvParameterSpec(ArrayUtils.subarray(encryptedMessage, 0, IV_BLOCK_SIZE_IN_BYTES));
- byte[] realData = ArrayUtils.subarray(encryptedMessage, IV_BLOCK_SIZE_IN_BYTES, encryptedMessage.length);
- cipher.init(Cipher.DECRYPT_MODE, SECRET_KEY_SPEC, ivspec);
- byte[] decrypted = cipher.doFinal(realData);
- return new String(decrypted);
- }
-
- /**
- * Method used to generate the SecretKeySpec from a Base64 String.
- *
- * @param keyString The key as a string in Base 64
- * @return The SecretKeySpec created
- * @throws DecoderException In case of issues with the decoding of Base64
- */
- private static SecretKeySpec getSecretKeySpec(String keyString) throws DecoderException {
- byte[] key = Hex.decodeHex(keyString.toCharArray());
- return new SecretKeySpec(key, ALGORITHM);
- }
-
- /**
- * Reads SecretKeySpec from file specified by propertiesFileName.
- *
- * @param propertiesFileName File name with properties
- * @return SecretKeySpec secret key spec read from propertiesFileName
- */
- private static SecretKeySpec readSecretKeySpec(String propertiesFileName) {
- Properties props = new Properties();
- try {
- // Workaround fix to make encryption key configurable
- // System environment variable takes precedence for over clds/key.properties
- String encryptionKey = System.getenv(AES_ENCRYPTION_KEY);
- if (encryptionKey != null && encryptionKey.trim().length() > 0) {
- return getSecretKeySpec(encryptionKey);
- } else {
- props.load(ResourceFileUtils.getResourceAsStream(propertiesFileName));
- return getSecretKeySpec(props.getProperty(KEY_PARAM));
- }
- } catch (IOException | DecoderException e) {
- logger.error("Exception occurred during the key reading", e);
- return null;
- }
- }
-}
diff --git a/src/main/resources/boot-message.txt b/src/main/resources/boot-message.txt
deleted file mode 100644
index b0d68e04c..000000000
--- a/src/main/resources/boot-message.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-
- ___ ____ ____ ____ __ __ ___ ____ ___ _ __ __ _ __ __
- / \ | \ / T| \ | T T / \ | \ / \ | T | T T| T | T T
-Y Y| _ YY o || o ) | l |Y Y| _ YY Y| | | | || | | | |
-| O || | || || _/ | _ || O || | || O || l___ | | || l___ | | |
-| || | || _ || | | | || || | || || T| : || T| : |
-l !| | || | || | | | |l !| | |l !| |l || |l |
- \___/ l__j__jl__j__jl__j l__j__j \___/ l__j__j \___/ l_____j \__,_jl_____j \__,_j
-
- ____ ___ _ ____ __ __ __ __ _ ____ ___ ___ ____
-| \ / \ | T l j / ]| T T / ]| T / T| T T| \
-| o )Y Y| | | T / / | | | _____ / / | | Y o || _ _ || o )
-| _/ | O || l___ | | / / | ~ || | / / | l___ | || \_/ || _/
-| | | || T | |/ \_ l___, |l_____j/ \_ | T| _ || | || |
-| | l !| | j l\ || ! \ || || | || | || |
-l__j \___/ l_____j|____j\____jl____/ \____jl_____jl__j__jl___j___jl__j
-
-
-
-
- :: Starting :: \ No newline at end of file
diff --git a/src/main/resources/clds/key.properties b/src/main/resources/clds/key.properties
deleted file mode 100644
index dda2b87d0..000000000
--- a/src/main/resources/clds/key.properties
+++ /dev/null
@@ -1 +0,0 @@
-org.onap.policy.clamp.encryption.aes.key=aa3871669d893c7fb8abbcda31b88b4f \ No newline at end of file
diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/ToscaYamlToJsonConvertorTestItCase.java b/src/test/java/org/onap/policy/clamp/clds/tosca/ToscaYamlToJsonConvertorTestItCase.java
deleted file mode 100644
index 6ff82b6d7..000000000
--- a/src/test/java/org/onap/policy/clamp/clds/tosca/ToscaYamlToJsonConvertorTestItCase.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights
- * reserved.
- * Modifications Copyright (C) 2019 Huawei Technologies Co., Ltd.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.tosca;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import com.google.gson.JsonObject;
-import java.io.IOException;
-import javax.transaction.Transactional;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.onap.policy.clamp.clds.Application;
-import org.onap.policy.clamp.clds.util.ResourceFileUtils;
-import org.onap.policy.clamp.tosca.Dictionary;
-import org.onap.policy.clamp.tosca.DictionaryElement;
-import org.onap.policy.clamp.tosca.DictionaryService;
-import org.skyscreamer.jsonassert.JSONAssert;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@SpringBootTest(classes = Application.class)
-public class ToscaYamlToJsonConvertorTestItCase {
-
- @Autowired
- private DictionaryService dictionaryService;
-
- @Autowired
- private ToscaYamlToJsonConvertor toscaYamlToJsonConvertor;
-
- /**
- * This Test validates TOSCA yaml to JSON Schema conversion based on JSON Editor
- * Schema.
- *
- * @throws IOException In case of issue when opening the tosca yaml file and
- * converted json file
- */
- @Test
- public final void testParseToscaYaml() throws IOException {
- String toscaModelYaml = ResourceFileUtils.getResourceAsString("tosca/tosca_example.yaml");
- ToscaYamlToJsonConvertor convertor = new ToscaYamlToJsonConvertor();
-
- String parsedJsonSchema =
- convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.cdap.tca.hi.lo.app");
- assertNotNull(parsedJsonSchema);
- JSONAssert.assertEquals(
- ResourceFileUtils.getResourceAsString("tosca/policy-yaml-to-json.json"),
- parsedJsonSchema, true);
- }
-
- /**
- * This Test validates TOSCA yaml with constraints to JSON Schema conversion
- * based on JSON Editor Schema.
- *
- * @throws IOException In case of issue when opening the tosca yaml file and
- * converted json file
- */
- @Test
- public final void testParseToscaYamlWithConstraints() throws IOException {
- String toscaModelYaml =
- ResourceFileUtils.getResourceAsString("tosca/tosca-with-constraints.yaml");
- ToscaYamlToJsonConvertor convertor = new ToscaYamlToJsonConvertor();
-
- String parsedJsonSchema =
- convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.example.app");
- assertNotNull(parsedJsonSchema);
- JSONAssert.assertEquals(
- ResourceFileUtils.getResourceAsString("tosca/policy-yaml-to-json-with-constraints.json"),
- parsedJsonSchema, true);
- }
-
- /**
- * This Test validates TOSCA yaml with different datatypes to JSON Schema
- * conversion based on JSON Editor Schema.
- *
- * @throws IOException In case of issue when opening the tosca yaml file and
- * converted json file
- */
- @Test
- public final void testParseToscaYamlWithTypes() throws IOException {
- String toscaModelYaml =
- ResourceFileUtils.getResourceAsString("tosca/tosca-with-datatypes.yaml");
- ToscaYamlToJsonConvertor convertor = new ToscaYamlToJsonConvertor();
-
- String parsedJsonSchema =
- convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.example.app");
- assertNotNull(parsedJsonSchema);
- JSONAssert.assertEquals(
- ResourceFileUtils.getResourceAsString("tosca/policy-yaml-to-json-with-datatypes.json"),
- parsedJsonSchema, true);
- }
-
- /**
- * This Test validates Tosca yaml with metadata tag that contains policy_model_type and acronym
- * parameters which defines the Tosca Policy name and its short name.
- *
- * @throws IOException In case of issue when opening the tosca yaml file and
- * converted json file
- */
- @Test
- @Transactional
- public final void testMetadataClampPossibleValues() throws IOException {
- setupDictionary();
- String toscaModelYaml =
- ResourceFileUtils.getResourceAsString("tosca/tosca_metadata_clamp_possible_values.yaml");
-
- JsonObject jsonObject = toscaYamlToJsonConvertor.validateAndConvertToJson(toscaModelYaml);
- assertNotNull(jsonObject);
- String policyModelType = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
- ToscaSchemaConstants.METADATA_POLICY_MODEL_TYPE);
- String acronym = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
- ToscaSchemaConstants.METADATA_ACRONYM);
- String parsedJsonSchema =
- toscaYamlToJsonConvertor.parseToscaYaml(toscaModelYaml, policyModelType);
-
- assertNotNull(parsedJsonSchema);
- assertEquals("onap.policies.monitoring.cdap.tca.hi.lo.app", policyModelType);
- assertEquals("tca", acronym);
- JSONAssert.assertEquals(
- ResourceFileUtils
- .getResourceAsString("tosca/tosca_metadata_clamp_possible_values_json_schema.json"),
- parsedJsonSchema, true);
-
- }
-
- private void setupDictionary() {
-
- // Set up dictionary elements
- Dictionary dictionaryTest = new Dictionary();
- dictionaryTest.setName("Context");
- dictionaryTest.setSecondLevelDictionary(0);
-
- DictionaryElement element = new DictionaryElement();
- element.setName("PROD");
- element.setShortName("PROD");
- element.setType("string");
- element.setDescription("Production");
- dictionaryTest.addDictionaryElements(element);
-
- dictionaryService.saveOrUpdateDictionary(dictionaryTest);
-
- Dictionary dictionaryTest1 = new Dictionary();
- dictionaryTest1.setName("EventDictionary");
- dictionaryTest1.setSecondLevelDictionary(0);
-
- DictionaryElement element1 = new DictionaryElement();
- element1.setName("alarmCondition");
- element1.setShortName("alarmCondition");
- element1.setType("string");
- element1.setDescription("Alarm Condition");
- dictionaryTest1.addDictionaryElements(element1);
-
- dictionaryTest1 = dictionaryService.saveOrUpdateDictionary(dictionaryTest1);
-
- DictionaryElement element3 = new DictionaryElement();
- element3.setName("timeEpoch");
- element3.setShortName("timeEpoch");
- element3.setType("datetime");
- element3.setDescription("Time Epoch");
- dictionaryTest1.addDictionaryElements(element3);
-
- dictionaryService.saveOrUpdateDictionary(dictionaryTest1);
-
- Dictionary dictionaryTest2 = new Dictionary();
- dictionaryTest2.setName("Operators");
- dictionaryTest2.setSecondLevelDictionary(0);
-
- DictionaryElement element2 = new DictionaryElement();
- element2.setName("equals");
- element2.setShortName("equals");
- element2.setType("string|datetime");
- element2.setDescription("equals");
- dictionaryTest2.addDictionaryElements(element2);
- dictionaryService.saveOrUpdateDictionary(dictionaryTest2);
- }
-
-}
diff --git a/src/test/java/org/onap/policy/clamp/clds/util/CryptoUtilsTest.java b/src/test/java/org/onap/policy/clamp/clds/util/CryptoUtilsTest.java
deleted file mode 100644
index 6239fef80..000000000
--- a/src/test/java/org/onap/policy/clamp/clds/util/CryptoUtilsTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.util;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.ArgumentMatchers.eq;
-
-import java.security.InvalidKeyException;
-import javax.crypto.KeyGenerator;
-import javax.crypto.SecretKey;
-import org.apache.commons.codec.binary.Hex;
-import org.apache.commons.lang3.ArrayUtils;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-@RunWith(PowerMockRunner.class)
-@PowerMockIgnore({ "javax.crypto.*", "com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*" })
-public class CryptoUtilsTest {
-
- private final String data = "This is a test string";
-
- @Test
- @PrepareForTest({ CryptoUtils.class })
- public final void testEncryption() throws Exception {
- String encodedString = CryptoUtils.encrypt(data);
- assertNotNull(encodedString);
- assertEquals(data, CryptoUtils.decrypt(encodedString));
- }
-
- @Test
- @PrepareForTest({ CryptoUtils.class })
- public final void testEncryptedStringIsDifferent() throws Exception {
- String encodedString1 = CryptoUtils.encrypt(data);
- String encodedString2 = CryptoUtils.encrypt(data);
- byte[] encryptedMessage1 = Hex.decodeHex(encodedString1.toCharArray());
- byte[] encryptedMessage2 = Hex.decodeHex(encodedString2.toCharArray());
- assertNotNull(encryptedMessage1);
- assertNotNull(encryptedMessage2);
- assertNotEquals(encryptedMessage1, encryptedMessage2);
- byte[] subData1 = ArrayUtils.subarray(encryptedMessage1, 16, encryptedMessage1.length);
- byte[] subData2 = ArrayUtils.subarray(encryptedMessage2, 16, encryptedMessage2.length);
- assertNotEquals(subData1, subData2);
- }
-
- @Test
- @PrepareForTest({ CryptoUtils.class })
- public final void testEncryptionBaseOnRandomKey() throws Exception {
- SecretKey secretKey = KeyGenerator.getInstance("AES").generateKey();
- final String encryptionKey = String.valueOf(Hex.encodeHex(secretKey.getEncoded()));
- setAesEncryptionKeyEnv(encryptionKey);
-
- String encodedString = CryptoUtils.encrypt(data);
- String decodedString = CryptoUtils.decrypt(encodedString);
- assertEquals(data, decodedString);
- }
-
- @Test(expected = InvalidKeyException.class)
- @PrepareForTest({ CryptoUtils.class })
- public final void testEncryptionBadKey() throws Exception {
- final String badEncryptionKey = "93210sd";
- setAesEncryptionKeyEnv(badEncryptionKey);
-
- CryptoUtils.encrypt(data);
- }
-
- private static void setAesEncryptionKeyEnv(String value) {
- PowerMockito.mockStatic(System.class);
- PowerMockito.when(System.getenv(eq("AES_ENCRYPTION_KEY"))).thenReturn(value);
- }
-}
diff --git a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java b/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java
deleted file mode 100644
index e6717418a..000000000
--- a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.policy.pdpgroup;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.Arrays;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.onap.policy.clamp.loop.template.PolicyModel;
-import org.onap.policy.models.pdp.concepts.PdpGroup;
-import org.onap.policy.models.pdp.concepts.PdpGroups;
-import org.onap.policy.models.pdp.concepts.PdpSubGroup;
-import org.onap.policy.models.pdp.enums.PdpState;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-
-/**
- * This test class validates the PdpGroupAnalyzer class.
- */
-public class PdpGroupAnalyzerTest {
-
- private static PdpGroups pdpGroups;
-
- /**
- * This method preloads the pdpGroups for the tests.
- */
- @BeforeClass
- public static void setupPdpGroup() {
- // Create Pdp Groups
- // Those that do not work first
- PdpSubGroup pdpSubgroupBad = new PdpSubGroup();
- pdpSubgroupBad.setPdpType("subGroupBad");
- pdpSubgroupBad.setSupportedPolicyTypes(Arrays.asList(new ToscaConceptIdentifier("org.onap.test", "2.0.0"),
- new ToscaConceptIdentifier("org.onap.test.*", "1.0.0"),
- new ToscaConceptIdentifier("org.onip.testos", "1.0.0"),
- new ToscaConceptIdentifier("org.onap.testos3", "2.0.0"),
- new ToscaConceptIdentifier("org.onap.tes", "1.0.0"),
- new ToscaConceptIdentifier("org.onap", "1.0.0")
- ));
- pdpSubgroupBad.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap", "1.0.0")));
- pdpSubgroupBad.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")));
- pdpSubgroupBad.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")));
- pdpSubgroupBad.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap.testos.new", "1.0.0")));
- pdpSubgroupBad.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap.*", "1.0.0")));
-
- PdpSubGroup pdpSubgroup1 = new PdpSubGroup();
- pdpSubgroup1.setPdpType("subGroup1");
- pdpSubgroup1.setSupportedPolicyTypes(
- Arrays.asList(new ToscaConceptIdentifier("org.onap.*", "1.0.0")));
-
- PdpSubGroup pdpSubgroup2 = new PdpSubGroup();
- pdpSubgroup2.setPdpType("subGroup2");
- pdpSubgroup2.setSupportedPolicyTypes(Arrays.asList(new ToscaConceptIdentifier("org.onap.test", "1.0.0")));
- pdpSubgroup2.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap.testos", "1.0.0")));
-
- PdpSubGroup pdpSubgroup3 = new PdpSubGroup();
- pdpSubgroup3.setPdpType("subGroup3");
- pdpSubgroup3.setSupportedPolicyTypes(Arrays.asList(new ToscaConceptIdentifier("org.onap.test*", "1.0.0")));
- pdpSubgroup3.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")));
-
- // Should match pdpSubgroup1
- PdpGroup pdpGroup1 = new PdpGroup();
- pdpGroup1.setName("pdpGroup1");
- pdpGroup1.setPdpGroupState(PdpState.ACTIVE);
- pdpGroup1.setPdpSubgroups(Arrays.asList(pdpSubgroup1, pdpSubgroupBad));
-
- // Should match pdpSubgroup1, pdpSubgroup2, pdpSubgroup3
- // Should match also for the policy (pdpSubgroup2)
- PdpGroup pdpGroup2 = new PdpGroup();
- pdpGroup2.setName("pdpGroup2");
- pdpGroup2.setPdpGroupState(PdpState.ACTIVE);
- pdpGroup2.setPdpSubgroups(Arrays.asList(pdpSubgroup1, pdpSubgroup2, pdpSubgroup3, pdpSubgroupBad));
-
- /// Should not match
- PdpGroup pdpGroup3 = new PdpGroup();
- pdpGroup3.setName("pdpGroup3");
- pdpGroup3.setPdpGroupState(PdpState.ACTIVE);
- pdpGroup3.setPdpSubgroups(Arrays.asList(pdpSubgroupBad));
-
- // Should not match
- PdpGroup pdpGroup4 = new PdpGroup();
- pdpGroup4.setName("pdpGroup4");
- pdpGroup4.setPdpGroupState(PdpState.PASSIVE);
- pdpGroup4.setPdpSubgroups(Arrays.asList(pdpSubgroup1));
-
- pdpGroups = new PdpGroups();
- pdpGroups.setGroups(Arrays.asList(pdpGroup1, pdpGroup2, pdpGroup3, pdpGroup4));
- }
-
- @Test
- public void testUpdatePdpGroupOfPolicyModels() {
- // Create policyModel
- PolicyModel policyModel = new PolicyModel();
- policyModel.setCreatedBy("user");
- policyModel.setPolicyAcronym("TEST");
- policyModel.setPolicyModelTosca("yaml");
- policyModel.setPolicyModelType("org.onap.test");
- policyModel.setUpdatedBy("user");
- policyModel.setVersion("1.0.0");
- PdpGroupsAnalyzer.updatePdpGroupOfPolicyModels(Arrays.asList(policyModel), pdpGroups);
-
- assertThat(policyModel.getPolicyPdpGroup().toString()).isEqualTo(
- "{\"supportedPdpGroups\":[{\"pdpGroup1\":[\"subGroup1\"]},"
- + "{\"pdpGroup2\":[\"subGroup1\",\"subGroup2\",\"subGroup3\"]}]}");
- }
-
- @Test
- public void testGetPdpGroupDeploymentsOfOnePolicy() {
- assertThat(
- PdpGroupsAnalyzer.getPdpGroupDeploymentOfOnePolicy(pdpGroups, "org.onap.testos", "1.0.0").toString())
- .isEqualTo("{\"pdpGroupInfo\":{\"pdpGroup\":\"pdpGroup2\",\"pdpSubGroup\":\"subGroup2\"}}");
- }
-
- @Test
- public void testGetPdpGroupDeploymentsOfOnePolicyNull() {
- assertThat(
- PdpGroupsAnalyzer.getPdpGroupDeploymentOfOnePolicy(pdpGroups, "org.onap.DoNotExist", "1.0.0"))
- .isNull();
- }
-}
diff --git a/src/test/resources/clds/sdc-controllers-config.json b/src/test/resources/clds/sdc-controllers-config.json
deleted file mode 100644
index ce56fef27..000000000
--- a/src/test/resources/clds/sdc-controllers-config.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "sdc-connections":{
- "sdc-controller1":{
- "user": "User1",
- "consumerGroup": "consumerGroup1",
- "consumerId": "consumerId1",
- "environmentName": "environmentName1",
- "sdcAddress": "localhost:${docker.http-cache.port.host}",
- "password": "bb3871669d893c7fb8aaacda31b77b4f537E67A081C2726889548ED7BC4C2DE6",
- "pollingInterval":10,
- "pollingTimeout":30,
- "messageBusAddresses":["localhost"]
- },
- "sdc-controller2":{
- "user": "User2",
- "consumerGroup": "consumerGroup2",
- "consumerId": "consumerId2",
- "environmentName": "environmentName2",
- "sdcAddress": "localhost:${docker.http-cache.port.host}",
- "password": "bb3871669d893c7fb8aaacda31b77b4f537E67A081C2726889548ED7BC4C2DE6",
- "pollingInterval":10,
- "pollingTimeout":30,
- "messageBusAddresses":["localhost"]
-
- }
- }
-}
diff --git a/src/test/resources/tosca/policy-yaml-to-json-with-constraints.json b/src/test/resources/tosca/policy-yaml-to-json-with-constraints.json
deleted file mode 100644
index fe9b84d13..000000000
--- a/src/test/resources/tosca/policy-yaml-to-json-with-constraints.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "schema": {
- "uniqueItems": "true",
- "format": "tabs",
- "type": "array",
- "title": "Properties with constraints",
- "items": {
- "type": "object",
- "title": "Properties with constraints",
- "required": [
- "cpus",
- "memSize"
- ],
- "properties": {
- "appPassword": {
- "propertyOrder": 1004,
- "minLength": 6,
- "title": "application password",
- "type": "string",
- "maxLength": 10
- },
- "cost": {
- "exclusiveMaximum": 100.5,
- "propertyOrder": 1005,
- "type": "integer",
- "exclusiveMinimum": 50.5
- },
- "keylength": {
- "propertyOrder": 1007,
- "type": "integer",
- "enum": [
- 128,
- 256
- ]
- },
- "cpus": {
- "propertyOrder": 1001,
- "default": 1,
- "minLength": 1,
- "type": "string",
- "maxLength": 4
- },
- "ports": {
- "propertyOrder": 1002,
- "maximum": 9010,
- "type": "integer",
- "minimum": 9000
- },
- "memSize": {
- "propertyOrder": 1003,
- "maximum": 10,
- "title": "memory size",
- "type": "integer",
- "minimum": 2
- },
- "algorithm": {
- "propertyOrder": 1006,
- "type": "string"
- }
- }
- }
- }
-}
diff --git a/src/test/resources/tosca/policy-yaml-to-json-with-datatypes.json b/src/test/resources/tosca/policy-yaml-to-json-with-datatypes.json
deleted file mode 100644
index ef9c2c03a..000000000
--- a/src/test/resources/tosca/policy-yaml-to-json-with-datatypes.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "schema": {
- "uniqueItems": "true",
- "format": "tabs",
- "type": "array",
- "title": "Properties with different types",
- "items": {
- "type": "object",
- "title": "Properties with different types",
- "required": [
- "memSize"
- ],
- "properties": {
- "cpus": {
- "propertyOrder": 1001,
- "uniqueItems": "true",
- "format": "tabs-top",
- "type": "array",
- "items": {
- "type": "object",
- "required": [],
- "properties": {
- "closedLoopControlName": {
- "propertyOrder": 1002,
- "type": "string"
- }
- }
- }
- },
- "domain": {
- "propertyOrder": 1009,
- "type": "object",
- "required": [],
- "properties": {
- "closedLoopControlName": {
- "propertyOrder": 1002,
- "type": "string"
- }
- }
- },
- "thresholdValue": {
- "propertyOrder": 1007,
- "uniqueItems": "true",
- "format": "select",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "ports": {
- "propertyOrder": 1003,
- "type": "object",
- "items": {
- "type": "string"
- }
- },
- "closedLoopEventStatus": {
- "propertyOrder": 1004,
- "type": "object",
- "items": {
- "type": "integer"
- }
- },
- "version": {
- "propertyOrder": 1008,
- "uniqueItems": "true",
- "format": "tabs-top",
- "type": "array",
- "items": {
- "type": "object",
- "required": [],
- "properties": {
- "closedLoopControlName": {
- "propertyOrder": 1002,
- "type": "string"
- }
- }
- }
- },
- "memSize": {
- "propertyOrder": 1006,
- "required": [],
- "properties": {
- "name": {
- "propertyOrder": 20002,
- "required": [
- "severity"
- ],
- "properties": {
- "severity": {
- "propertyOrder": 20003,
- "type": "string"
- }
- }
- }
- }
- },
- "direction": {
- "propertyOrder": 1005,
- "type": "object",
- "items": {
- "type": "integer"
- }
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/src/test/resources/tosca/policy-yaml-to-json.json b/src/test/resources/tosca/policy-yaml-to-json.json
deleted file mode 100644
index b83d3f24f..000000000
--- a/src/test/resources/tosca/policy-yaml-to-json.json
+++ /dev/null
@@ -1,192 +0,0 @@
-{
- "schema": {
- "uniqueItems": "true",
- "format": "tabs",
- "type": "array",
- "title": "TCA Policy JSON",
- "items": {
- "type": "object",
- "title": "TCA Policy JSON",
- "required": [
- "domain",
- "metricsPerEventName"
- ],
- "properties": {
- "domain": {
- "propertyOrder": 1001,
- "default": "measurementsForVfScaling",
- "title": "Domain name to which TCA needs to be applied",
- "type": "string"
- },
- "metricsPerEventName": {
- "propertyOrder": 1002,
- "uniqueItems": "true",
- "format": "tabs-top",
- "title": "Contains eventName and threshold details that need to be applied to given eventName",
- "type": "array",
- "items": {
- "type": "object",
- "required": [
- "controlLoopSchemaType",
- "eventName",
- "policyName",
- "policyScope",
- "policyVersion",
- "thresholds"
- ],
- "properties": {
- "policyVersion": {
- "propertyOrder": 1007,
- "title": "TCA Policy Scope Version",
- "type": "string"
- },
- "thresholds": {
- "propertyOrder": 1008,
- "uniqueItems": "true",
- "format": "tabs-top",
- "title": "Thresholds associated with eventName",
- "type": "array",
- "items": {
- "type": "object",
- "required": [
- "closedLoopControlName",
- "closedLoopEventStatus",
- "direction",
- "fieldPath",
- "severity",
- "thresholdValue",
- "version"
- ],
- "properties": {
- "severity": {
- "propertyOrder": 1013,
- "title": "Threshold Event Severity",
- "type": "string",
- "enum": [
- "CRITICAL",
- "MAJOR",
- "MINOR",
- "WARNING",
- "NORMAL"
- ]
- },
- "fieldPath": {
- "propertyOrder": 1012,
- "title": "Json field Path as per CEF message which needs to be analyzed for TCA",
- "type": "string",
- "enum": [
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage",
- "$.event.measurementsForVfScalingFields.meanRequestLatency",
- "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered",
- "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached",
- "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured",
- "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree",
- "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed",
- "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value"
- ]
- },
- "thresholdValue": {
- "propertyOrder": 1014,
- "title": "Threshold value for the field Path inside CEF message",
- "type": "integer"
- },
- "closedLoopEventStatus": {
- "propertyOrder": 1010,
- "title": "Closed Loop Event Status of the threshold",
- "type": "string",
- "enum": [
- "ONSET",
- "ABATED"
- ]
- },
- "closedLoopControlName": {
- "propertyOrder": 1009,
- "title": "Closed Loop Control Name associated with the threshold",
- "type": "string"
- },
- "version": {
- "propertyOrder": 1015,
- "title": "Version number associated with the threshold",
- "type": "string"
- },
- "direction": {
- "propertyOrder": 1011,
- "title": "Direction of the threshold",
- "type": "string",
- "enum": [
- "LESS",
- "LESS_OR_EQUAL",
- "GREATER",
- "GREATER_OR_EQUAL",
- "EQUAL"
- ]
- }
- }
- }
- },
- "policyName": {
- "propertyOrder": 1005,
- "title": "TCA Policy Scope Name",
- "type": "string"
- },
- "controlLoopSchemaType": {
- "propertyOrder": 1003,
- "title": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM",
- "type": "string",
- "enum": [
- "VM",
- "VNF"
- ]
- },
- "policyScope": {
- "propertyOrder": 1006,
- "title": "TCA Policy Scope",
- "type": "string"
- },
- "eventName": {
- "propertyOrder": 1004,
- "title": "Event name to which thresholds need to be applied",
- "type": "string"
- }
- }
- }
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/src/test/resources/tosca/tosca-with-constraints.yaml b/src/test/resources/tosca/tosca-with-constraints.yaml
deleted file mode 100644
index 959bc483b..000000000
--- a/src/test/resources/tosca/tosca-with-constraints.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-policy_types:
- onap.policies.Monitoring:
- derived_from: tosca.policies.Root
- description: a base policy type for all policies that governs monitoring provisioning
- onap.policies.monitoring.example.app:
- derived_from: onap.policies.Monitoring
- version: 1.0.0
- properties:
- example_policy:
- type: map
- description: Properties with constraints
- entry_schema:
- type: onap.datatypes.monitoring.example_policy
-data_types:
- onap.datatypes.monitoring.example_policy:
- derived_from: tosca.datatypes.Root
- properties:
- cpus:
- type: string
- required: true
- default: 1
- constraints:
- - in_range: [ 1, 4 ]
- ports:
- type: integer
- constraints:
- - in_range: [ 9000, 9010 ]
- memSize:
- type: integer
- required: true
- description: memory size
- constraints:
- - greater_or_equal: 2
- - less_or_equal: 10
- appPassword:
- type: string
- description: application password
- constraints:
- - min_length: 6
- - max_length: 10
- cost:
- type: float
- constraints:
- - less_than: 100.50
- - greater_than: 50.50
- algorithm:
- type: string
- constraints:
- - equal: aes
- keylength:
- type: integer
- constraints:
- - valid_values: [ 128, 256 ]
diff --git a/src/test/resources/tosca/tosca-with-datatypes.yaml b/src/test/resources/tosca/tosca-with-datatypes.yaml
deleted file mode 100644
index 61d5dbcc8..000000000
--- a/src/test/resources/tosca/tosca-with-datatypes.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-policy_types:
- onap.policies.Monitoring:
- derived_from: tosca.policies.Root
- description: a base policy type for all policies that governs monitoring provisioning
- onap.policies.monitoring.example.app:
- derived_from: onap.policies.Monitoring
- version: 1.0.0
- properties:
- example_policy:
- type: map
- description: Properties with different types
- entry_schema:
- type: onap.datatypes.monitoring.example_policy
-data_types:
- onap.datatypes.monitoring.example2:
- derived_from: tosca.datatypes.Root
- properties:
- closedLoopControlName:
- type: string
- onap.datatypes.monitoring.example3:
- derived_from: tosca.datatypes.Root
- properties:
- name:
- type: onap.datatypes.monitoring.example4
- onap.datatypes.monitoring.example4:
- derived_from: tosca.datatypes.Root
- properties:
- severity:
- type: string
- required: true
- onap.datatypes.monitoring.example_policy:
- derived_from: tosca.datatypes.Root
- properties:
- cpus:
- type: list
- entry_schema:
- type: onap.datatypes.monitoring.example2
- ports:
- type: map
- entry_schema:
- type: string
- closedLoopEventStatus:
- type: map
- entry_schema:
- type: integer
- direction:
- type: map
- entry_schema:
- type: float
- memSize:
- type: onap.datatypes.monitoring.example3
- required: true
- thresholdValue:
- type: list
- entry_schema:
- type: string
- version:
- type: list
- entry_schema:
- type: onap.datatypes.monitoring.example2
- domain:
- type: onap.datatypes.monitoring.example2 \ No newline at end of file
diff --git a/src/test/resources/tosca/tosca_metadata_clamp_possible_values.yaml b/src/test/resources/tosca/tosca_metadata_clamp_possible_values.yaml
deleted file mode 100644
index 4d3c3dff2..000000000
--- a/src/test/resources/tosca/tosca_metadata_clamp_possible_values.yaml
+++ /dev/null
@@ -1,184 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-policy_types:
- onap.policies.Monitoring:
- derived_from: tosca.policies.Root
- description: a base policy type for all policies that governs monitoring provisioning
- onap.policies.monitoring.cdap.tca.hi.lo.app:
- derived_from: onap.policies.Monitoring
- version: 1.0.0
- properties:
- tca_policy:
- type: map
- description: TCA Policy JSON
- entry_schema:
- type: onap.datatypes.monitoring.tca_policy
- metadata:
- policy_model_type: onap.policies.monitoring.cdap.tca.hi.lo.app
- acronym: tca
-
-data_types:
- onap.datatypes.monitoring.metricsPerEventName:
- derived_from: tosca.datatypes.Root
- properties:
- controlLoopSchemaType:
- type: string
- required: true
- description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM
- constraints:
- - valid_values:
- - VM
- - VNF
- eventName:
- type: string
- required: true
- description: Event name to which thresholds need to be applied
- policyName:
- type: string
- required: true
- description: TCA Policy Scope Name
- policyScope:
- type: string
- required: true
- description: TCA Policy Scope
- policyVersion:
- type: string
- required: true
- description: TCA Policy Scope Version
- thresholds:
- type: list
- required: true
- description: Thresholds associated with eventName
- entry_schema:
- type: onap.datatypes.monitoring.thresholds
- context:
- type: string
- required: true
- description: TCA Policy Dummy Context
- metadata:
- clamp_possible_values: ["Dictionary:Context"]
-
- signature:
- type: onap.datatypes.monitoring.Dummy_Signature
- description: Signature
- required: true
-
- onap.datatypes.monitoring.Dummy_Signature:
- derived_from: tosca.datatypes.Root
- properties:
- filter_clause:
- type: string
- description: Filter Clause
- required: true
- metadata:
- clamp_possible_values: ["Dictionary:EventDictionary#Operators"]
-
- onap.datatypes.monitoring.tca_policy:
- derived_from: tosca.datatypes.Root
- properties:
- domain:
- type: string
- required: true
- description: Domain name to which TCA needs to be applied
- default: measurementsForVfScaling
- constraints:
- - equal: measurementsForVfScaling
- metricsPerEventName:
- type: list
- required: true
- description: Contains eventName and threshold details that need to be applied to given eventName
- entry_schema:
- type: onap.datatypes.monitoring.metricsPerEventName
- onap.datatypes.monitoring.thresholds:
- derived_from: tosca.datatypes.Root
- properties:
- closedLoopControlName:
- type: string
- required: true
- description: Closed Loop Control Name associated with the threshold
- closedLoopEventStatus:
- type: string
- required: true
- description: Closed Loop Event Status of the threshold
- constraints:
- - valid_values:
- - ONSET
- - ABATED
- direction:
- type: string
- required: true
- description: Direction of the threshold
- constraints:
- - valid_values:
- - LESS
- - LESS_OR_EQUAL
- - GREATER
- - GREATER_OR_EQUAL
- - EQUAL
- fieldPath:
- type: string
- required: true
- description: Json field Path as per CEF message which needs to be analyzed for TCA
- constraints:
- - valid_values:
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated
- - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated
- - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle
- - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt
- - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice
- - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq
- - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal
- - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem
- - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait
- - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage
- - $.event.measurementsForVfScalingFields.meanRequestLatency
- - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered
- - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached
- - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured
- - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree
- - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed
- - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value
- severity:
- type: string
- required: true
- description: Threshold Event Severity
- constraints:
- - valid_values:
- - CRITICAL
- - MAJOR
- - MINOR
- - WARNING
- - NORMAL
- thresholdValue:
- type: integer
- required: true
- description: Threshold value for the field Path inside CEF message
- version:
- type: string
- required: true
- description: Version number associated with the threshold
diff --git a/src/test/resources/tosca/tosca_metadata_clamp_possible_values_json_schema.json b/src/test/resources/tosca/tosca_metadata_clamp_possible_values_json_schema.json
deleted file mode 100644
index 418ee71be..000000000
--- a/src/test/resources/tosca/tosca_metadata_clamp_possible_values_json_schema.json
+++ /dev/null
@@ -1,249 +0,0 @@
-{
- "schema":{
- "uniqueItems":"true",
- "format":"tabs",
- "type":"array",
- "title":"TCA Policy JSON",
- "items":{
- "type":"object",
- "title":"TCA Policy JSON",
- "required":[
- "domain",
- "metricsPerEventName"
- ],
- "properties":{
- "domain":{
- "propertyOrder":1001,
- "default":"measurementsForVfScaling",
- "title":"Domain name to which TCA needs to be applied",
- "type":"string"
- },
- "metricsPerEventName":{
- "propertyOrder":1002,
- "uniqueItems":"true",
- "format":"tabs-top",
- "title":"Contains eventName and threshold details that need to be applied to given eventName",
- "type":"array",
- "items":{
- "type":"object",
- "required":[
- "controlLoopSchemaType",
- "eventName",
- "policyName",
- "policyScope",
- "policyVersion",
- "thresholds",
- "context",
- "signature"
- ],
- "properties":{
- "policyVersion":{
- "propertyOrder":1007,
- "title":"TCA Policy Scope Version",
- "type":"string"
- },
- "thresholds":{
- "propertyOrder":1008,
- "uniqueItems":"true",
- "format":"tabs-top",
- "title":"Thresholds associated with eventName",
- "type":"array",
- "items":{
- "type":"object",
- "required":[
- "closedLoopControlName",
- "closedLoopEventStatus",
- "direction",
- "fieldPath",
- "severity",
- "thresholdValue",
- "version"
- ],
- "properties":{
- "severity":{
- "propertyOrder":1013,
- "title":"Threshold Event Severity",
- "type":"string",
- "enum":[
- "CRITICAL",
- "MAJOR",
- "MINOR",
- "WARNING",
- "NORMAL"
- ]
- },
- "fieldPath":{
- "propertyOrder":1012,
- "title":"Json field Path as per CEF message which needs to be analyzed for TCA",
- "type":"string",
- "enum":[
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait",
- "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage",
- "$.event.measurementsForVfScalingFields.meanRequestLatency",
- "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered",
- "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached",
- "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured",
- "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree",
- "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed",
- "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value"
- ]
- },
- "thresholdValue":{
- "propertyOrder":1014,
- "title":"Threshold value for the field Path inside CEF message",
- "type":"integer"
- },
- "closedLoopEventStatus":{
- "propertyOrder":1010,
- "title":"Closed Loop Event Status of the threshold",
- "type":"string",
- "enum":[
- "ONSET",
- "ABATED"
- ]
- },
- "closedLoopControlName":{
- "propertyOrder":1009,
- "title":"Closed Loop Control Name associated with the threshold",
- "type":"string"
- },
- "version":{
- "propertyOrder":1015,
- "title":"Version number associated with the threshold",
- "type":"string"
- },
- "direction":{
- "propertyOrder":1011,
- "title":"Direction of the threshold",
- "type":"string",
- "enum":[
- "LESS",
- "LESS_OR_EQUAL",
- "GREATER",
- "GREATER_OR_EQUAL",
- "EQUAL"
- ]
- }
- }
- }
- },
- "policyName":{
- "propertyOrder":1005,
- "title":"TCA Policy Scope Name",
- "type":"string"
- },
- "signature":{
- "propertyOrder":1017,
- "title":"Signature",
- "required":[
- "filter_clause"
- ],
- "properties":{
- "filter_clause":{
- "propertyOrder":30002,
- "qschema":{
- "filters":[
- {
- "operators":[
- "equals"
- ],
- "minLength":1,
- "id":"alarmCondition",
- "label":"alarmCondition",
- "type":"string"
- },
- {
- "plugin":"datetimepicker",
- "operators":[
- "equals"
- ],
- "minLength":1,
- "id":"timeEpoch",
- "label":"timeEpoch",
- "type":"datetime",
- "input_event":"dp.change",
- "validation":{
- "format":"YYYY/MM/DD HH:mm:ss"
- }
- }
- ]
- },
- "minLength":1,
- "title":"Filter Clause",
- "type":"qbldr"
- }
- }
- },
- "controlLoopSchemaType":{
- "propertyOrder":1003,
- "title":"Specifies Control Loop Schema Type for the event Name e.g. VNF, VM",
- "type":"string",
- "enum":[
- "VM",
- "VNF"
- ]
- },
- "policyScope":{
- "propertyOrder":1006,
- "title":"TCA Policy Scope",
- "type":"string"
- },
- "context":{
- "propertyOrder":1016,
- "options":{
- "enum_titles":[
- "PROD"
- ]
- },
- "title":"TCA Policy Dummy Context",
- "type":"string",
- "enum":[
- "PROD"
- ]
- },
- "eventName":{
- "propertyOrder":1004,
- "title":"Event name to which thresholds need to be applied",
- "type":"string"
- }
- }
- }
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/ui-react/src/components/dialogs/Policy/ViewAllPolicies.js b/ui-react/src/components/dialogs/Policy/ViewAllPolicies.js
deleted file mode 100644
index d699f781c..000000000
--- a/ui-react/src/components/dialogs/Policy/ViewAllPolicies.js
+++ /dev/null
@@ -1,422 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP POLICY-CLAMP
- * ================================================================================
- * Copyright (C) 2021 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-import React, { forwardRef } from 'react'
-import Button from 'react-bootstrap/Button';
-import Modal from 'react-bootstrap/Modal';
-import styled from 'styled-components';
-import AddBox from '@material-ui/icons/AddBox';
-import ArrowDownward from '@material-ui/icons/ArrowDownward';
-import Check from '@material-ui/icons/Check';
-import ChevronLeft from '@material-ui/icons/ChevronLeft';
-import ChevronRight from '@material-ui/icons/ChevronRight';
-import Clear from '@material-ui/icons/Clear';
-import DeleteRoundedIcon from '@material-ui/icons/DeleteRounded';
-import Edit from '@material-ui/icons/Edit';
-import FilterList from '@material-ui/icons/FilterList';
-import FirstPage from '@material-ui/icons/FirstPage';
-import LastPage from '@material-ui/icons/LastPage';
-import Remove from '@material-ui/icons/Remove';
-import SaveAlt from '@material-ui/icons/SaveAlt';
-import Search from '@material-ui/icons/Search';
-import ViewColumn from '@material-ui/icons/ViewColumn';
-import DehazeIcon from '@material-ui/icons/Dehaze';
-import ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';
-import AddIcon from '@material-ui/icons/Add';
-import FormControlLabel from '@material-ui/core/FormControlLabel';
-import Switch from '@material-ui/core/Switch';
-import MaterialTable from "material-table";
-import PolicyService from '../../../api/PolicyService';
-import PolicyToscaService from '../../../api/PolicyToscaService';
-import Select from 'react-select';
-import Alert from 'react-bootstrap/Alert';
-import Tabs from 'react-bootstrap/Tabs';
-import Tab from 'react-bootstrap/Tab';
-import PolicyEditor from './PolicyEditor';
-import ToscaViewer from './ToscaViewer';
-
-const DivWhiteSpaceStyled = styled.div`
- white-space: pre;
-`
-
-const ModalStyled = styled(Modal)`
- @media (min-width: 1000px) {
- .modal-xl {
- max-width: 96%;
- }
- }
- background-color: transparent;
-`
-const DetailedRow = styled.div`
- margin: 0 auto;
- background-color: ${props => props.theme.policyEditorBackgroundColor};
- font-size: ${props => props.theme.policyEditorFontSize};
- width: 97%;
- margin-left: auto;
- margin-right: 0;
-`
-
-
-const standardCellStyle = { backgroundColor: '#039be5', color: '#FFF', border: '1px solid black' };
-const cellPdpGroupStyle = { backgroundColor: '#039be5', color: '#FFF', border: '1px solid black'};
-const headerStyle = { backgroundColor: '#ddd', border: '2px solid black' };
-const rowHeaderStyle = {backgroundColor:'#ddd', fontSize: '15pt', text: 'bold', border: '1px solid black'};
-
-export default class ViewAllPolicies extends React.Component {
- state = {
- show: true,
- content: 'Please select a policy to display it',
- selectedRowId: -1,
- policiesListData: [],
- toscaModelsListData: [],
- jsonEditorForPolicy: new Map(),
- prefixGrouping: false,
- showSuccessAlert: false,
- showFailAlert: false,
- policyColumnsDefinition: [
- {
- title: "Policy Name", field: "name",
- cellStyle: standardCellStyle,
- headerStyle: headerStyle
- },
- {
- title: "Policy Version", field: "version",
- cellStyle: standardCellStyle,
- headerStyle: headerStyle
- },
- {
- title: "Policy Type", field: "type",
- cellStyle: standardCellStyle,
- headerStyle: headerStyle
- },
- {
- title: "Policy Type Version", field: "type_version",
- cellStyle: standardCellStyle,
- headerStyle: headerStyle
- },
- {
- title: "Deployed in PDP", field: "pdpGroupInfo.pdpGroup",
- cellStyle: cellPdpGroupStyle,
- headerStyle: headerStyle,
- render: rowData => this.renderPdpGroupDropBox(rowData),
- grouping: false
- },
- {
- title: "PDP Group", field: "pdpGroupInfo.pdpGroup",
- cellStyle: cellPdpGroupStyle,
- headerStyle: headerStyle
- },
- {
- title: "PDP SubGroup", field: "pdpGroupInfo.pdpSubGroup",
- cellStyle: cellPdpGroupStyle,
- headerStyle: headerStyle
- }
- ],
- toscaColumnsDefinition: [
- {
- title: "Policy Model Type", field: "policyModelType",
- cellStyle: standardCellStyle,
- headerStyle: headerStyle
- },
- {
- title: "Policy Acronym", field: "policyAcronym",
- cellStyle: standardCellStyle,
- headerStyle: headerStyle
- },
- {
- title: "Version", field: "version",
- cellStyle: standardCellStyle,
- headerStyle: headerStyle
- },
- {
- title: "Uploaded By", field: "updatedBy",
- cellStyle: standardCellStyle,
- headerStyle: headerStyle
- },
- {
- title: "Uploaded Date", field: "updatedDate", editable: 'never',
- cellStyle: standardCellStyle,
- headerStyle: headerStyle
- }
- ],
- tableIcons: {
- Add: forwardRef((props, ref) => <AddBox {...props} ref={ref} />),
- Check: forwardRef((props, ref) => <Check {...props} ref={ref} />),
- Clear: forwardRef((props, ref) => <Clear {...props} ref={ref} />),
- Delete: forwardRef((props, ref) => <DeleteRoundedIcon {...props} ref={ref} />),
- DetailPanel: forwardRef((props, ref) => <ChevronRight {...props} ref={ref} />),
- Edit: forwardRef((props, ref) => <Edit {...props} ref={ref} />),
- Export: forwardRef((props, ref) => <SaveAlt {...props} ref={ref} />),
- Filter: forwardRef((props, ref) => <FilterList {...props} ref={ref} />),
- FirstPage: forwardRef((props, ref) => <FirstPage {...props} ref={ref} />),
- LastPage: forwardRef((props, ref) => <LastPage {...props} ref={ref} />),
- NextPage: forwardRef((props, ref) => <ChevronRight {...props} ref={ref} />),
- PreviousPage: forwardRef((props, ref) => <ChevronLeft {...props} ref={ref} />),
- ResetSearch: forwardRef((props, ref) => <Clear {...props} ref={ref} />),
- Search: forwardRef((props, ref) => <Search {...props} ref={ref} />),
- SortArrow: forwardRef((props, ref) => <ArrowDownward {...props} ref={ref} />),
- ThirdStateCheck: forwardRef((props, ref) => <Remove {...props} ref={ref} />),
- ViewColumn: forwardRef((props, ref) => <ViewColumn {...props} ref={ref} />)
- }
- };
-
- constructor(props, context) {
- super(props, context);
- this.handleClose = this.handleClose.bind(this);
- this.renderPdpGroupDropBox = this.renderPdpGroupDropBox.bind(this);
- this.handlePdpGroupChange = this.handlePdpGroupChange.bind(this);
- this.handlePrefixGrouping = this.handlePrefixGrouping.bind(this);
- this.handleDeletePolicy = this.handleDeletePolicy.bind(this);
- this.disableAlert = this.disableAlert.bind(this);
- this.getAllPolicies = this.getAllPolicies.bind(this);
- this.getAllToscaModels = this.getAllToscaModels.bind(this);
- this.getAllPolicies();
- this.getAllToscaModels();
- }
-
- getAllToscaModels() {
- PolicyToscaService.getToscaPolicyModels().then(toscaModelsList => {
- this.setState({ toscaModelsListData: toscaModelsList });
- });
- }
-
- handlePdpGroupChange(e) {
- let pdpSplit = e.value.split("/");
- let selectedPdpGroup = pdpSplit[0];
- let selectedSubPdpGroup = pdpSplit[1];
- if (typeof selectedSubPdpGroup !== "undefined") {
- let temp = this.state.policiesListData;
- temp[this.state.selectedRowId]["pdpGroupInfo"] = {"pdpGroup":selectedPdpGroup,"pdpSubGroup":selectedSubPdpGroup};
- this.setState({policiesListData: temp});
- } else {
- delete this.state.policiesListData[this.state.selectedRowId]["pdpGroupInfo"];
- }
- }
-
- renderPdpGroupDropBox(dataRow) {
- let optionItems = [{label: "NOT DEPLOYED", value: "NOT DEPLOYED"}];
- let selectedItem = {label: "NOT DEPLOYED", value: "NOT DEPLOYED"};
- if (typeof dataRow.supportedPdpGroups !== "undefined") {
- for (const pdpGroup of dataRow["supportedPdpGroups"]) {
- for (const pdpSubGroup of Object.values(pdpGroup)[0]) {
- optionItems.push({ label: Object.keys(pdpGroup)[0]+"/"+pdpSubGroup,
- value: Object.keys(pdpGroup)[0]+"/"+pdpSubGroup });
- }
- }
- }
- if (typeof dataRow.pdpGroupInfo !== "undefined") {
- selectedItem = {label: dataRow["pdpGroupInfo"]["pdpGroup"]+"/"+dataRow["pdpGroupInfo"]["pdpSubGroup"],
- value: dataRow["pdpGroupInfo"]["pdpGroup"]+"/"+dataRow["pdpGroupInfo"]["pdpSubGroup"]};
- }
- return (<div style={{width: '250px'}}><Select value={selectedItem} options={optionItems} onChange={this.handlePdpGroupChange}/></div>);
- }
-
- getAllPolicies() {
- PolicyService.getPoliciesList().then(allPolicies => {
- this.setState({ policiesListData: allPolicies["policies"] })
- });
- }
-
- handleClose() {
- this.setState({ show: false });
- this.props.history.push('/')
- }
-
- handlePrefixGrouping(event) {
- this.setState({prefixGrouping: event.target.checked});
- }
-
- handleDeletePolicy(event, rowData) {
- PolicyService.deletePolicy(rowData["type"], rowData["type_version"], rowData["name"],rowData["version"]).then(
- respPolicyDeletion => {
- if (typeof(respPolicyDeletion) === "undefined") {
- //it indicates a failure
- this.setState({
- showFailAlert: true,
- showMessage: 'Policy Deletion Failure'
- });
- } else {
- this.setState({
- showSuccessAlert: true,
- showMessage: 'Policy successfully Deleted'
- });
- }
- this.getAllPolicies();
- }
- )
- }
-
- disableAlert() {
- this.setState ({ showSuccessAlert: false, showFailAlert: false });
- }
-
- renderPoliciesTab() {
- return (
- <Tab eventKey="policies" title="Policies in Policy Framework">
- <Modal.Body>
- <FormControlLabel
- control={<Switch checked={this.state.prefixGrouping} onChange={this.handlePrefixGrouping} />}
- label="Group by prefix"
- />
- <MaterialTable
- title={"Policies"}
- data={this.state.policiesListData}
- columns={this.state.policyColumnsDefinition}
- icons={this.state.tableIcons}
- onRowClick={(event, rowData, togglePanel) => togglePanel()}
- options={{
- grouping: true,
- exportButton: true,
- headerStyle:rowHeaderStyle,
- rowStyle: rowData => ({
- backgroundColor: (this.state.selectedRowId !== -1 && this.state.selectedRowId === rowData.tableData.id) ? '#EEE' : '#FFF'
- }),
- actionsColumnIndex: -1
- }}
- detailPanel={[
- {
- icon: ArrowForwardIosIcon,
- tooltip: 'Show Configuration',
- render: rowData => {
- return (
- <DetailedRow>
- <PolicyEditor policyModelType={rowData["type"]} policyModelTypeVersion={rowData["type_version"]} policyName={rowData["name"]} policyVersion={rowData["version"]} policyProperties={rowData["properties"]} policyUpdateFunction={this.getAllPolicies} />
- </DetailedRow>
- )
- },
- },
- {
- icon: DehazeIcon,
- tooltip: 'Show Raw Data',
- render: rowData => {
- return (
- <DetailedRow>
- <pre>{JSON.stringify(rowData, null, 2)}</pre>
- </DetailedRow>
- )
- },
- },
- ]}
- actions={[
- {
- icon: forwardRef((props, ref) => <DeleteRoundedIcon {...props} ref={ref} />),
- tooltip: 'Delete Policy',
- onClick: (event, rowData) => this.handleDeletePolicy(event, rowData)
- }
- ]}
- />
- </Modal.Body>
- </Tab>
- );
- }
-
- renderToscaTab() {
- return (
- <Tab eventKey="tosca models" title="Tosca Models in Policy Framework">
- <Modal.Body>
- <FormControlLabel
- control={<Switch checked={this.state.prefixGrouping} onChange={this.handlePrefixGrouping} />}
- label="Group by prefix"
- />
- <MaterialTable
- title={"Tosca Models"}
- data={this.state.toscaModelsListData}
- columns={this.state.toscaColumnsDefinition}
- icons={this.state.tableIcons}
- onRowClick={(event, rowData, togglePanel) => togglePanel()}
- options={{
- grouping: true,
- exportButton: true,
- headerStyle:rowHeaderStyle,
- rowStyle: rowData => ({
- backgroundColor: (this.state.selectedRowId !== -1 && this.state.selectedRowId === rowData.tableData.id) ? '#EEE' : '#FFF'
- }),
- actionsColumnIndex: -1
- }}
- detailPanel={[
- {
- icon: ArrowForwardIosIcon,
- tooltip: 'Show Tosca',
- render: rowData => {
- return (
- <DetailedRow>
- <ToscaViewer toscaData={rowData} />
- </DetailedRow>
- )
- },
- },
- {
- icon: DehazeIcon,
- tooltip: 'Show Raw Data',
- render: rowData => {
- return (
- <DetailedRow>
- <pre>{JSON.stringify(rowData, null, 2)}</pre>
- </DetailedRow>
- )
- },
- },
- {
- icon: AddIcon,
- tooltip: 'Create a policy from this model',
- render: rowData => {
- return (
- <DetailedRow>
- <PolicyEditor policyModelType={rowData["policyModelType"]} policyModelTypeVersion={rowData["version"]} policyProperties={{}} policyUpdateFunction={this.getAllPolicies} />
- </DetailedRow>
- )
- },
- },
- ]}
- />
- </Modal.Body>
- </Tab>
- );
- }
-
- render() {
- return (
- <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose} backdrop="static" keyboard={false}>
- <Modal.Header closeButton>
- </Modal.Header>
- <Tabs id="controlled-tab-example" activeKey={this.state.key} onSelect={key => this.setState({ key, selectedRowData: {} })}>
- {this.renderPoliciesTab()}
- {this.renderToscaTab()}
- </Tabs>
- <Alert variant="success" show={this.state.showSuccessAlert} onClose={this.disableAlert} dismissible>
- <DivWhiteSpaceStyled>
- {this.state.showMessage}
- </DivWhiteSpaceStyled>
- </Alert>
- <Alert variant="danger" show={this.state.showFailAlert} onClose={this.disableAlert} dismissible>
- <DivWhiteSpaceStyled>
- {this.state.showMessage}
- </DivWhiteSpaceStyled>
- </Alert>
- <Modal.Footer>
- <Button variant="secondary" onClick={this.handleClose}>Close</Button>
- </Modal.Footer>
- </ModalStyled>
- );
- }
- } \ No newline at end of file
diff --git a/version.properties b/version.properties
index 5b81c712a..063474d7e 100644
--- a/version.properties
+++ b/version.properties
@@ -26,11 +26,11 @@
# because they are used in Jenkins, whose plug-in doesn't support
major=6
-minor=0
-patch=3
+minor=1
+patch=2
base_version=${major}.${minor}.${patch}
# Release must be completed with git revision # in Jenkins
release_version=${base_version}
-snapshot_version=${base_version}-SNAPSHOT \ No newline at end of file
+snapshot_version=${base_version}-SNAPSHOT