From f81f02d6f320924755a0abb0e4cf814709b7725b Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Thu, 11 Apr 2024 12:36:12 +0530 Subject: [PATCH 01/57] MOSIP-29078 Signed-off-by: Pankaj Godiyal --- .../ivv/orchestrator/PacketUtility.java | 4 +- .../main/resources/config/Kernel.properties | 37 ++++++------ ...perties => Kernel_qa-platform1.properties} | 37 ++++++------ .../dataprovider/DateOfBirthProvider.java | 59 ++++++++++++++----- .../util/DataProviderConstants.java | 10 ++-- 5 files changed, 90 insertions(+), 57 deletions(-) rename mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/{Kernel_dev-staging.properties => Kernel_qa-platform1.properties} (93%) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java index 0dcf076b0..6b6af388a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java @@ -791,7 +791,9 @@ public String createContexts(String negative, String key, HashMap ageRanges = new HashMap<>(); + + for (String pair : keyValuePairs) { + String[] parts = pair.split(":"); + String key = parts[0].replaceAll("'", "").trim(); + String[] range = parts[1].replaceAll("'", "").trim().split("-"); + int minAge = Integer.parseInt(range[0]); + int maxAge = Integer.parseInt(range[1]); + ageRanges.put(key, new int[] { minAge, maxAge }); } - else if (ageAttribute == ResidentAttribute.RA_Senior) { - VariableManager.setVariableValue(contextKey, "AGE_GROUP", "SENIOR_CITIZEN"); - return generateDob(DataProviderConstants.Age_Senior_Citizen_Min_Age, 100); + + int[] ageRange = null; + String ageGroup = ""; + + switch (ageAttribute) { + case RA_Adult: + ageGroup = "ADULT"; + ageRange = ageRanges.get("ADULT"); + break; + case RA_Minor: + ageGroup = "CHILD"; + ageRange = ageRanges.get("MINOR"); + break; + case RA_Senior: + ageGroup = "SENIOR_CITIZEN"; + ageRange = ageRanges.get("ADULT"); + break; + case RA_Infant: + ageGroup = "CHILD"; + ageRange = ageRanges.get("INFANT"); + break; + default: + break; } - else if (ageAttribute == ResidentAttribute.RA_Infant) { - VariableManager.setVariableValue(contextKey, "AGE_GROUP", "CHILD"); - return generateDob(0, 5); + + if (ageRange != null) { + VariableManager.setVariableValue(contextKey, "AGE_GROUP", ageGroup); + return generateDob(ageRange[0], ageRange[1]); } SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); return formatter.format(new Date()); diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/util/DataProviderConstants.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/util/DataProviderConstants.java index 393fdf788..80ea663e2 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/util/DataProviderConstants.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/util/DataProviderConstants.java @@ -10,10 +10,12 @@ public class DataProviderConstants { public static final int DEFAULT_ABIS_DELAY = 3; public static final Object INDIVIDUAL_TYPE = "residenceStatus"; - public static int Age_Adult_Min_Age = 18; - - public static int Age_Minor_Min_Age = 6; - public static int Age_Senior_Citizen_Min_Age = 60; + /* + * public static int Age_Adult_Min_Age = 18; + * + * public static int Age_Minor_Min_Age = 6; public static int + * Age_Senior_Citizen_Min_Age = 60; + */ //contacts formatting firstname.surname.{randomnumber}@mailinator.com public static String email_format = "%s.%s.%d@mailinator.com"; From e19d1124cf8030bda0d16a9bf7504c3e3c1ed966 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Thu, 11 Apr 2024 12:39:19 +0530 Subject: [PATCH 02/57] MOSIP-29078 Signed-off-by: Pankaj Godiyal --- .../src/main/resources/config/Kernel.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties index 1cfdbfcb4..daf3c6f4a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties @@ -286,7 +286,7 @@ scenariosToSkip=S-157 # -- Empty if we want to execute all the scenarios--- scenariosToExecute= #-- supported values yes or no -useExternalScenarioSheet=yes +useExternalScenarioSheet=no partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 master_default_schema=master @@ -297,3 +297,4 @@ resident_esignet=v1/esignet/actuator/health esignetMockBaseURL=esignet-insurance. slack-webhook-url= serverErrorsToMonitor=IDA-MLC-018 +regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env/ \ No newline at end of file From b904cc7e56a8c84d281bdd69fc8f5ae0df147f36 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Thu, 11 Apr 2024 12:42:30 +0530 Subject: [PATCH 03/57] Updated Kernel Signed-off-by: Pankaj Godiyal --- .../src/main/resources/config/Kernel_qa-platform1.properties | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_qa-platform1.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_qa-platform1.properties index e4431df12..9a4186e0f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_qa-platform1.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_qa-platform1.properties @@ -285,7 +285,7 @@ reportExpirationInDays=3 scenariosToSkip=S-157 #-- Add scenarios to include in the the execution list------ # -- Empty if we want to execute all the scenarios--- -scenariosToExecute= +scenariosToExecute=2,99,102 #-- supported values yes or no useExternalScenarioSheet=no @@ -297,4 +297,5 @@ actuatorMasterDataEndpoint=/v1/masterdata/actuator/env resident_esignet=v1/esignet/actuator/health esignetMockBaseURL=esignet-insurance. slack-webhook-url= -serverErrorsToMonitor=IDA-MLC-018 \ No newline at end of file +serverErrorsToMonitor=IDA-MLC-018 +regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env/ \ No newline at end of file From eb3cedd27da1c1dee755a406383c841f13555430 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Thu, 18 Apr 2024 18:04:53 +0530 Subject: [PATCH 04/57] MOSIP-32574 Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/e2e/methods/Machine.java | 4 +- .../dslrig/ivv/e2e/methods/ReadPreReq.java | 24 ++----- .../testrig/dslrig/ivv/e2e/methods/User.java | 4 +- .../testrig/dslrig/ivv/e2e/methods/Wait.java | 4 +- .../dslrig/ivv/e2e/methods/WritePreReq.java | 10 +-- .../dslrig/ivv/orchestrator/Orchestrator.java | 64 +++++++++++++------ ...roperties => Kernel_qa-country.properties} | 0 .../dataprovider/DateOfBirthProvider.java | 20 +++--- 8 files changed, 71 insertions(+), 59 deletions(-) rename mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/{Kernel_qa-release.properties => Kernel_qa-country.properties} (100%) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java index bfee92ffc..b0763708f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java @@ -60,7 +60,7 @@ public void run() throws RigInternalError { if (step.getOutVarName() != null) step.getScenario().getVariables().putAll(machineDetailsmap); - Reporter.log(machineDetailsmap.toString()); +// Reporter.log(machineDetailsmap.toString()); break; case "ACTIVE_FLAG": machineHelper.activateMachine(machineDetailsmap.get("machineid"),activecheck); @@ -70,7 +70,7 @@ public void run() throws RigInternalError { machineDetailsmap=machineHelper.updateMachine(machineDetailsmap,centerCount); if (step.getOutVarName() != null) step.getScenario().getVariables().putAll(machineDetailsmap); - Reporter.log(machineDetailsmap.toString()); +// Reporter.log(machineDetailsmap.toString()); break; case "DCOM": diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java index 26291f5a5..1ff505f2a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java @@ -28,11 +28,8 @@ public class ReadPreReq extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError { - HashMap map = new HashMap(); - Properties propertylist = new Properties(); String path = null; String appendedkey = null; - if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.warn("PreRequisite Arugemnt is Missing : Please pass the argument from DSL sheet"); } else if (step.getParameters().size() >= 1) { @@ -40,35 +37,22 @@ public void run() throws RigInternalError { } path = (TestRunner.getExternalResourcePath() + "/config/" + BaseTestCase.environment + "_prereqdata_" + appendedkey + ".properties"); - logger.info("ReadPreReq :" + path); try { - /*try (FileReader reader = new FileReader(path);) { - if (prereqDataSet.get(path) == null) { - - propertylist.load(reader); - - for (String propertykey : propertylist.stringPropertyNames()) { - String val = propertylist.getProperty(propertykey); - map.put(propertykey, val); - } - prereqDataSet.put(path, map); - }*/ if (step.getOutVarName() != null) { step.getScenario().getVariables().putAll(prereqDataSet.get(path)); } - if (ConfigManager.IsDebugEnabled()) - Reporter.log(prereqDataSet.get(path).toString()); - + /* + * if (ConfigManager.IsDebugEnabled()) + * Reporter.log(prereqDataSet.get(path).toString()); + */ } catch (Exception e) { this.hasError = true; logger.error(e.getMessage()); throw new RigInternalError("PreRequisite Data is not set properly"); - } - } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java index 2ec64623f..85eb3b8a0 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java @@ -97,7 +97,7 @@ public void run() throws RigInternalError { step.getScenario().getVariables().putAll(map); userHelper.deleteCenterMapping(user); - Reporter.log(map.toString()); +// Reporter.log(map.toString()); break; case "DELETE_ZONEMAPPING": userHelper.deleteZoneMapping(user, zone); @@ -119,7 +119,7 @@ public void run() throws RigInternalError { case "CREATE_ZONESEARCH": map = userHelper.createZoneSearch(user, map); step.getScenario().getVariables().putAll(map); - Reporter.log(map.toString()); +// Reporter.log(map.toString()); break; case "ADD_User": HashMap> attrmap = new HashMap>(); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java index 07013b0b7..eb4ac60a2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java @@ -32,9 +32,9 @@ public void run() throws RigInternalError { } try { - Reporter.log("Total waiting for: " + waitTime / 1000 + " Sec " + "Starting Waiting: " + getDateTime()); +// Reporter.log("Total waiting for: " + waitTime / 1000 + " Sec " + "Starting Waiting: " + getDateTime()); Thread.sleep(waitTime); - Reporter.log("Waiting Done: " + getDateTime()); +// Reporter.log("Waiting Done: " + getDateTime()); } catch (NumberFormatException e) { logger.error(e.getMessage()); } catch (InterruptedException e) { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java index f40eaba25..c321dfb02 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java @@ -30,7 +30,7 @@ public void run() throws RigInternalError { String value = null; String appendedkey = null; HashMap map = new HashMap(); - Reporter.log("==========STEP ====== WritePreReq "); +// Reporter.log("==========STEP ====== WritePreReq "); if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.warn("PreRequisite Arugemnt is Missing : Please pass the argument from DSL sheet"); } else if (step.getParameters().size() >= 1) { @@ -51,8 +51,7 @@ public void run() throws RigInternalError { for (Map.Entry entry : map.entrySet()) { if (entry.getValue() == null) { props.setProperty(entry.getKey(), ""); - } - else if (entry.getValue() != null) + } else if (entry.getValue() != null) props.setProperty(entry.getKey(), entry.getValue()); } // props.putAll(map); @@ -63,8 +62,9 @@ else if (entry.getValue() != null) propertiesMap.put((String) entry.getKey(), (String) entry.getValue()); } prereqDataSet.put(path, propertiesMap); - if (ConfigManager.IsDebugEnabled()) - Reporter.log(props.toString()); + /* + * if (ConfigManager.IsDebugEnabled()) Reporter.log(props.toString()); + */ } catch (Exception e) { this.hasError = true; logger.error(e.getMessage()); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java index e5fb86494..062b7f5cd 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java @@ -43,6 +43,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import io.mosip.testrig.apirig.authentication.fw.util.ReportUtil; import io.mosip.testrig.apirig.kernel.util.ConfigManager; import io.mosip.testrig.apirig.service.BaseTestCase; import io.mosip.testrig.apirig.testrunner.MosipTestRunner; @@ -75,6 +76,7 @@ public class Orchestrator { public static long suiteStartTime = System.currentTimeMillis(); public static long suiteMaxTimeInMillis = 7200000; // 2 hour in milliseconds static AtomicInteger counterLock = new AtomicInteger(0); // enable fairness policy + private HashMap packages = new HashMap() { { @@ -245,7 +247,8 @@ public void beforeMethod(Method method) { private synchronized void updateRunStatistics(Scenario scenario) throws ClassNotFoundException, IllegalAccessException, InstantiationException { // logger.info(Thread.currentThread().getName() + ": " + counterLock.getAndIncrement()); - logger.info("Updating statistics for scenario: "+ scenario.getId() + " -- updating the executed count to: " + counterLock.getAndIncrement()); + logger.info("Updating statistics for scenario: " + scenario.getId() + " -- updating the executed count to: " + + counterLock.getAndIncrement()); if (scenario.getId().equalsIgnoreCase("0")) { /// Check if all steps in Before are passed or not for (Scenario.Step step : scenario.getSteps()) { @@ -260,7 +263,7 @@ private synchronized void updateRunStatistics(Scenario scenario) beforeSuiteExeuted = true; logger.info("Before Suite executed"); } - + logger.info(" Thread ID: " + Thread.currentThread().getId() + " scenarios Executed : " + counterLock.get()); } @@ -270,20 +273,27 @@ private void run(int i, Scenario scenario, HashMap configs, Hash Properties properties) throws SQLException, InterruptedException, ClassNotFoundException, IllegalAccessException, InstantiationException { - OperatingSystemMXBean osBean = ManagementFactory.getPlatformMXBean( - OperatingSystemMXBean.class); + OperatingSystemMXBean osBean = ManagementFactory.getPlatformMXBean(OperatingSystemMXBean.class); - logger.info("getProcessCpuLoad What % CPU load this current JVM is taking, from 0.0-1.0" + osBean.getProcessCpuLoad()); + logger.info("getProcessCpuLoad What % CPU load this current JVM is taking, from 0.0-1.0" + + osBean.getProcessCpuLoad()); logger.info("getSystemCpuLoad What % load the overall system is at, from 0.0-1.0" + osBean.getSystemCpuLoad()); - logger.info("Returns the amount of virtual memory that is guaranteed to be available to the running process in bytes, or -1 if this operation is not supported:"+Long.toString(osBean.getCommittedVirtualMemorySize())); - logger.info("Returns the amount of free physical memory in bytes:"+Long.toString(osBean.getFreePhysicalMemorySize())); - logger.info("Returns the amount of free swap space in bytes:"+Long.toString(osBean.getFreeSwapSpaceSize())); - logger.info("Returns the recent cpu usage for the Java Virtual Machine process:"+Double.toString(osBean.getProcessCpuLoad())); - logger.info("Returns the CPU time used by the process on which the Java virtual machine is running in nanoseconds:"+Long.toString(osBean.getProcessCpuTime())); - logger.info("Returns the recent cpu usage for the whole system:"+Double.toString(osBean.getSystemCpuLoad()) ); - logger.info("Returns the total amount of physical memory in bytes:"+Long.toString(osBean.getTotalPhysicalMemorySize())); - logger.info("Returns the total amount of swap space in bytes:"+Long.toString(osBean.getTotalSwapSpaceSize())); - + logger.info( + "Returns the amount of virtual memory that is guaranteed to be available to the running process in bytes, or -1 if this operation is not supported:" + + Long.toString(osBean.getCommittedVirtualMemorySize())); + logger.info("Returns the amount of free physical memory in bytes:" + + Long.toString(osBean.getFreePhysicalMemorySize())); + logger.info("Returns the amount of free swap space in bytes:" + Long.toString(osBean.getFreeSwapSpaceSize())); + logger.info("Returns the recent cpu usage for the Java Virtual Machine process:" + + Double.toString(osBean.getProcessCpuLoad())); + logger.info( + "Returns the CPU time used by the process on which the Java virtual machine is running in nanoseconds:" + + Long.toString(osBean.getProcessCpuTime())); + logger.info("Returns the recent cpu usage for the whole system:" + Double.toString(osBean.getSystemCpuLoad())); + logger.info("Returns the total amount of physical memory in bytes:" + + Long.toString(osBean.getTotalPhysicalMemorySize())); + logger.info("Returns the total amount of swap space in bytes:" + Long.toString(osBean.getTotalSwapSpaceSize())); + if (!scenario.getId().equalsIgnoreCase("0")) { // AFTER_SUITE scenario execution kicked-off before all execution @@ -297,7 +307,7 @@ private void run(int i, Scenario scenario, HashMap configs, Hash logger.error("Exhausted the maximum suite execution time.Hence, terminating the execution"); break; } - + logger.info(" Thread ID: " + Thread.currentThread().getId() + " inside scenariosExecuted " + counterLock.get() + "- " + scenario.getId()); Thread.sleep(10000); // Sleep for 10 sec @@ -387,8 +397,17 @@ private void run(int i, Scenario scenario, HashMap configs, Hash st.setStep(step); st.setup(); st.validateStep(); - Reporter.log("\n\n\n\n==============" + "[Test Step: " + step.getName() + "] [Test Parameters: " - + step.getParameters() + "] " + "================ \n\n\n\n\n"); + String[] stepDetails = getStepDetails("e2e_" + step.getName()); + + StringBuilder sb = new StringBuilder(); + sb.append("
"); + + Reporter.log(sb.toString()); + st.run(); st.assertHttpStatus(); @@ -441,6 +460,9 @@ private void run(int i, Scenario scenario, HashMap configs, Hash Assert.assertTrue(false); return; } catch (RigInternalError e) { + if (scenario.getId().equals("0")) { + beforeSuiteFailed = true; + } extentTest.error(identifier + " - RigInternalError --> " + e.getMessage()); logger.error(e.getMessage()); Reporter.log(e.getMessage()); @@ -608,10 +630,10 @@ public static String JsonToCsvConverter(String jsonFilePath) { return ""; } if (ConfigManager.IsDebugEnabled()) { - String keyValues =""; + String keyValues = ""; // Iterate through the map and print its contents for (Map.Entry entry : stepsMap.entrySet()) { - keyValues += entry.getKey(); + keyValues += entry.getKey(); String[] values = entry.getValue(); for (int i = 0; i < values.length; i++) { keyValues += "," + values[i]; @@ -642,4 +664,8 @@ private static void addStepDetails(String stepInput, String description) { } } + private static String[] getStepDetails(String stepName) { + return stepsMap.get(stepName); + } + } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_qa-release.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_qa-country.properties similarity index 100% rename from mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_qa-release.properties rename to mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_qa-country.properties diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/DateOfBirthProvider.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/DateOfBirthProvider.java index 7d90ffe88..5936b0bcc 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/DateOfBirthProvider.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/DateOfBirthProvider.java @@ -20,14 +20,17 @@ public class DateOfBirthProvider { public static String generateDob(int minAge, int maxAge) { - byte bytes[] = new byte[20]; - rand.nextBytes(bytes); - int offset = rand.nextInt(maxAge - minAge) + minAge; - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.YEAR, -offset); - Date dob = calendar.getTime(); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); - return formatter.format(dob); + Random rand = new Random(); + int currentYear = Calendar.getInstance().get(Calendar.YEAR); + int earliestYear = Math.max(1870, currentYear - maxAge); // Ensure DOB is after 1869 + int latestYear = currentYear - minAge; + int offset = rand.nextInt(latestYear - earliestYear + 1) + earliestYear; + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.YEAR, offset); + calendar.set(Calendar.DAY_OF_YEAR, 1); + Date dob = calendar.getTime(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); + return formatter.format(dob); } @@ -76,5 +79,4 @@ public static String generate(ResidentAttribute ageAttribute, String contextKey) SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); return formatter.format(new Date()); } - } From d353184f93a6209c5448c4aef1254df7f7b19ab8 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Mon, 22 Apr 2024 12:32:28 +0530 Subject: [PATCH 05/57] MOSIP-32574 Signed-off-by: Pankaj Godiyal --- .../ivv/orchestrator/BaseTestCaseUtil.java | 4 +- .../ivv/orchestrator/EmailableReport.java | 54 +++++++++++++++---- .../dslrig/ivv/orchestrator/Orchestrator.java | 4 +- .../src/main/resources/testngFile/testng.xml | 2 +- 4 files changed, 50 insertions(+), 14 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java index 1017400bf..c1860a590 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java @@ -161,7 +161,7 @@ public static Response getRequest(String url, String opsToLog, Scenario.Step ste .accept(MediaType.APPLICATION_JSON).when().get(url).then().extract().response(); } GlobalMethods.ReportRequestAndResponse(null, getResponse.getHeaders().asList().toString(), url, null, - getResponse.getBody().asString()); + getResponse.getBody().asString(),true); return getResponse; } @@ -189,7 +189,7 @@ public Response postRequest(String url, String body, String opsToLog, Scenario.S Response apiResponse = RestClient.postRequest(url, body, MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON); GlobalMethods.ReportRequestAndResponse(null, apiResponse.getHeaders().asList().toString(), url, body, - apiResponse.getBody().asString()); + apiResponse.getBody().asString(),true); return apiResponse; } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java index 1f28080b8..2f1d40ae1 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java @@ -1,13 +1,17 @@ package io.mosip.testrig.dslrig.ivv.orchestrator; +import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.io.PrintWriter; import java.lang.reflect.Field; import java.text.NumberFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; @@ -148,8 +152,7 @@ private String getCommitId() { try (InputStream is = EmailableReport.class.getClassLoader().getResourceAsStream("git.properties")) { properties.load(is); - return "Commit Id is: " + properties.getProperty("git.commit.id.abbrev") + " & Branch Name is:" - + properties.getProperty("git.branch"); + return properties.getProperty("git.commit.id.abbrev"); } catch (IOException io) { logger.error(io.getMessage()); @@ -217,6 +220,22 @@ protected void writeDocumentEnd() { protected void writeSuiteSummary() { NumberFormat integerFormat = NumberFormat.getIntegerInstance(); NumberFormat decimalFormat = NumberFormat.getNumberInstance(); + LocalDate currentDate = LocalDate.now(); + String formattedDate =null; + String branch = null; + + // Format the current date as per your requirement + try { + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + formattedDate = currentDate.format(formatter); + Process process = Runtime.getRuntime().exec("git rev-parse --abbrev-ref HEAD"); + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + branch = reader.readLine(); + } + catch (Exception e) { + // TODO: handle exception + } totalPassedTests = 0; totalSkippedTests = 0; @@ -227,22 +246,39 @@ protected void writeSuiteSummary() { for (SuiteResult suiteResult : suiteResults) { writer.print(""); - writer.print(Utils.escapeHtml(suiteResult.getSuiteName() + "-" + getCommitId())); + writer.print(Utils.escapeHtml( + suiteResult.getSuiteName() + " ---- " + + "Report Date: " + formattedDate + " ---- " + + "Tested Environment: " + System.getProperty("env.user").substring(System.getProperty("env.user").lastIndexOf(".") + 1) + " ---- " + + "Testrig details: Branch Name - " + branch + ", Commit ID - " + getCommitId())); + writer.print(""); + + + writer.print(""); - writer.print("
");
-			writer.print(Utils.escapeHtml("Server Component Details " + AdminTestUtil.getServerComponentsDetails()));
-			writer.print("
"); + // Left column: "Server Component Details" with central alignment + writer.print("
");
+			writer.print(Utils.escapeHtml("Tested Component Details"));
+			writer.print("");
+
+			// Right column: Details from AdminTestUtil.getServerComponentsDetails() without bold formatting
+			writer.print("
");
+			writer.print(Utils.escapeHtml(AdminTestUtil.getServerComponentsDetails()));
+			writer.print("
"); + + writer.print(""); writer.print(GlobalConstants.TRTR); writer.print(""); -// writer.print("Test Suite"); + writer.print("Summary of Test Results"); + writer.print(""); + + writer.print(""); writer.print("# Passed"); writer.print("# Skipped"); writer.print("# Failed"); writer.print("Time (ms)"); - // writer.print("Included Groups"); - // writer.print("Excluded Groups"); writer.print(""); for (TestResult testResult : suiteResult.getTestResults()) { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java index 062b7f5cd..7b79c8ade 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java @@ -400,10 +400,10 @@ private void run(int i, Scenario scenario, HashMap configs, Hash String[] stepDetails = getStepDetails("e2e_" + step.getName()); StringBuilder sb = new StringBuilder(); - sb.append("
"); Reporter.log(sb.toString()); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/testngFile/testng.xml b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/testngFile/testng.xml index 9106e2185..91882b9e0 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/testngFile/testng.xml +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/testngFile/testng.xml @@ -1,7 +1,7 @@ - + From c42a4748d5bca40cfbbef04dfad176f1660a62a2 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Wed, 24 Apr 2024 11:37:26 +0530 Subject: [PATCH 06/57] MOSIP-32632 Signed-off-by: Pankaj Godiyal --- .../ivv-orchestrator/pom.xml | 394 ++++++++++-------- .../ivv/e2e/methods/ActivateDeactivate.java | 4 +- .../ivv/e2e/methods/ApproveRejectPacket.java | 4 +- .../ivv/e2e/methods/AssignPacketToUser.java | 4 +- .../ivv/e2e/methods/BioAuthentication.java | 10 +- .../e2e/methods/BioEsignetAuthentication.java | 10 +- .../ivv/e2e/methods/BookAppointment.java | 2 +- .../e2e/methods/BookSpecificSlotForPrid.java | 2 +- .../ivv/e2e/methods/BulkUploadPacket.java | 2 +- .../ivv/e2e/methods/CancelAppointment.java | 2 +- .../dslrig/ivv/e2e/methods/CancelBooking.java | 4 +- .../dslrig/ivv/e2e/methods/Center.java | 4 +- .../e2e/methods/CheckCredentialStatus.java | 8 +- .../ivv/e2e/methods/CheckForBDBAbsence.java | 10 +- .../ivv/e2e/methods/CheckForBDBPresence.java | 8 +- .../e2e/methods/CheckMultipleRidStatus.java | 11 +- .../ivv/e2e/methods/CheckPridStatus.java | 4 +- .../dslrig/ivv/e2e/methods/CheckRIDStage.java | 2 +- .../dslrig/ivv/e2e/methods/CheckStatus.java | 2 +- .../dslrig/ivv/e2e/methods/CheckTags.java | 14 +- .../ivv/e2e/methods/ClearDeviceCertCache.java | 4 +- .../e2e/methods/ClonePersonaAndUpdate.java | 2 +- .../ivv/e2e/methods/ConfigureMockAbis.java | 2 +- .../dslrig/ivv/e2e/methods/CorruptPacket.java | 2 +- .../ivv/e2e/methods/CredentialRequest.java | 8 +- .../ivv/e2e/methods/DeleteApplication.java | 2 +- .../dslrig/ivv/e2e/methods/DeleteHoliday.java | 2 +- .../ivv/e2e/methods/DeleteMockExpect.java | 2 +- .../ivv/e2e/methods/DemoAuthentication.java | 13 +- .../ivv/e2e/methods/DiscardAppointment.java | 3 +- .../ivv/e2e/methods/DiscardBooking.java | 4 +- .../dslrig/ivv/e2e/methods/DownloadCard.java | 7 +- .../dslrig/ivv/e2e/methods/EkycBio.java | 10 +- .../ivv/e2e/methods/EkycBioWithVid.java | 9 +- .../dslrig/ivv/e2e/methods/EkycDemo.java | 13 +- .../dslrig/ivv/e2e/methods/EkycOtp.java | 13 +- .../e2e/methods/EsignetAuthentication.java | 13 +- .../e2e/methods/GenerateAndUploadPacket.java | 2 +- ...GenerateAndUploadPacketSkippingPrereg.java | 2 +- ...dPacketSkippingPreregWithInvalidCbeff.java | 2 +- .../e2e/methods/GenerateAuthCertifcates.java | 8 +- .../dslrig/ivv/e2e/methods/GenerateVID.java | 12 +- .../e2e/methods/GenerateVIDWithoutOTP.java | 10 +- .../ivv/e2e/methods/GetAdditionalReqId.java | 2 +- .../ivv/e2e/methods/GetBioModalityHash.java | 4 +- .../ivv/e2e/methods/GetBlocklistedWord.java | 9 +- .../dslrig/ivv/e2e/methods/GetEmailByUIN.java | 12 +- .../ivv/e2e/methods/GetIdentityByRid.java | 15 +- .../ivv/e2e/methods/GetPacketTemplate.java | 2 +- .../dslrig/ivv/e2e/methods/GetPhoneByUIN.java | 12 +- .../dslrig/ivv/e2e/methods/GetPingHealth.java | 2 +- .../ivv/e2e/methods/GetResidentData.java | 2 +- .../dslrig/ivv/e2e/methods/GetUINByRid.java | 7 +- .../ivv/e2e/methods/HolidayDeclaration.java | 14 +- .../dslrig/ivv/e2e/methods/Machine.java | 2 +- .../ivv/e2e/methods/MasterdataDelete.java | 2 +- .../methods/MultiFactorAuthentication.java | 19 +- .../ivv/e2e/methods/MultiProductRemap.java | 6 +- .../ivv/e2e/methods/OAuthDetailsRequest.java | 11 +- .../dslrig/ivv/e2e/methods/OidcClient.java | 13 +- .../ivv/e2e/methods/OldGetResidentData.java | 9 +- .../OperatorOnboardAuthentication.java | 9 +- .../ivv/e2e/methods/OtpAuthentication.java | 13 +- .../dslrig/ivv/e2e/methods/Packetcreator.java | 2 +- .../dslrig/ivv/e2e/methods/Packetsync.java | 2 +- .../dslrig/ivv/e2e/methods/PostMockMv.java | 4 +- .../dslrig/ivv/e2e/methods/PreRegister.java | 2 +- .../ivv/e2e/methods/RandomDataAssign.java | 2 +- .../dslrig/ivv/e2e/methods/ReadPreReq.java | 4 +- .../ivv/e2e/methods/ReprocessPacket.java | 2 +- .../ivv/e2e/methods/ResetContextData.java | 2 +- .../ivv/e2e/methods/RidSyncRejected.java | 2 +- .../dslrig/ivv/e2e/methods/Ridsync.java | 2 +- .../dslrig/ivv/e2e/methods/SendOtp.java | 2 +- .../ServerResourceAllocateDeallocate.java | 2 +- .../dslrig/ivv/e2e/methods/SetContext.java | 4 +- .../testrig/dslrig/ivv/e2e/methods/Skip.java | 2 +- .../dslrig/ivv/e2e/methods/SwitchContext.java | 4 +- .../dslrig/ivv/e2e/methods/SyncData.java | 2 +- .../ivv/e2e/methods/UpdateApplication.java | 2 +- .../methods/UpdateBioExceptionInPersona.java | 2 +- .../e2e/methods/UpdateDemoOrBioDetails.java | 2 +- .../methods/UpdateMachineInPrereqData.java | 2 +- .../ivv/e2e/methods/UpdatePreRegStatus.java | 2 +- .../methods/UpdateResidentWithGuardian.java | 2 +- ...ateResidentWithGuardianSkippingPreReg.java | 2 +- .../e2e/methods/UpdateResidentWithRID.java | 2 +- .../e2e/methods/UpdateResidentWithUIN.java | 2 +- .../ivv/e2e/methods/UpdateUINDetail.java | 8 +- .../ivv/e2e/methods/UploadDocuments.java | 2 +- .../methods/UploadPacketWithInvalidHash.java | 2 +- .../testrig/dslrig/ivv/e2e/methods/User.java | 8 +- .../dslrig/ivv/e2e/methods/UserInfo.java | 13 +- .../dslrig/ivv/e2e/methods/ValidateOtp.java | 2 +- .../testrig/dslrig/ivv/e2e/methods/Wait.java | 5 +- .../methods/WaitTillReprocessorInterval.java | 3 +- .../ivv/e2e/methods/WritePersonaData.java | 14 +- .../dslrig/ivv/e2e/methods/WritePreReq.java | 4 +- .../dslrig/ivv/e2e/restcall/GetWithParam.java | 18 +- .../dslrig/ivv/e2e/restcall/SimplePost.java | 21 +- .../ActivateDeactivateHelper.java | 2 +- .../ivv/orchestrator/BaseTestCaseUtil.java | 20 +- .../dslrig/ivv/orchestrator/CenterHelper.java | 8 +- .../ivv/orchestrator/EmailableReport.java | 10 +- .../ivv/orchestrator/GlobalConstants.java | 2 +- .../ivv/orchestrator/MachineHelper.java | 9 +- .../dslrig/ivv/orchestrator/Orchestrator.java | 6 +- .../ivv/orchestrator/PacketUtility.java | 16 +- .../dslrig/ivv/orchestrator/S3Adapter.java | 2 +- .../ivv/orchestrator/SyncDataHelper.java | 4 +- .../dslrig/ivv/orchestrator/TestRunner.java | 14 +- .../ivv/orchestrator/ThreadCountChanger.java | 2 +- .../dslrig/ivv/orchestrator/UserHelper.java | 8 +- 113 files changed, 533 insertions(+), 539 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/pom.xml b/mosip-acceptance-tests/ivv-orchestrator/pom.xml index 2f2dd0b47..1df24566c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/pom.xml +++ b/mosip-acceptance-tests/ivv-orchestrator/pom.xml @@ -1,148 +1,196 @@ - 4.0.0 - - io.mosip.testrig.dslrig.ivv - dslrig-ivv-parent - 1.2.0.1-SNAPSHOT + 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"> + 4.0.0 + + io.mosip.testrig.dslrig.ivv + dslrig-ivv-parent + 1.2.0.1-SNAPSHOT - + - io.mosip.testrig.dslrig.ivv.orchestrator - dslrig-ivv-orchestrator - mosip-dsl-test - 1.2.0.1-SNAPSHOT - - testng.xml - 3.7.0.1746 - - - - - org.apache.maven.plugins - maven-antrun-plugin - 3.0.0 - - - make-jar-executable - package - - run - - - - - - - - - - - - maven-compiler-plugin - 3.8.0 - - 11 - 11 - -Dfile.encoding=UTF-8 - - + io.mosip.testrig.dslrig.ivv.orchestrator + dslrig-ivv-orchestrator + mosip-dsl-test + 1.2.0.1-SNAPSHOT + + testng.xml + 3.7.0.1746 + + + + + org.apache.maven.plugins + maven-antrun-plugin + 3.0.0 + + + make-jar-executable + package + + run + + + + + + + + + + + + maven-compiler-plugin + 3.8.0 + + 11 + 11 + -Dfile.encoding=UTF-8 + + - - org.apache.maven.plugins - maven-shade-plugin - 3.2.4 - - - - shade - - - dslrig-ivv-orchestrator-1.2.0.1-SNAPSHOT-jar-with-dependencies - - - - - - io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner - - - - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - - + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + + shade + + + dslrig-ivv-orchestrator-1.2.0.1-SNAPSHOT-jar-with-dependencies + + + + + + io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner + + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + - - - + + + - - - org.apache.commons - commons-lang3 - 3.11 - + + + org.apache.commons + commons-lang3 + 3.11 + + + + + io.mosip.testrig.dslrig.ivv.core + dslrig-ivv-core + 1.2.0.1-SNAPSHOT + + + io.mosip.testrig.dslrig.ivv.dg + dslrig-ivv-dg + 1.2.0.1-SNAPSHOT + + + com.aventstack + extentreports + 3.0.7 + compile + + + io.mosip.testrig.apirig.automationtests.commons + automationtests-commons + 1.2.0.1-SNAPSHOT - - - io.mosip.testrig.dslrig.ivv.core - dslrig-ivv-core - 1.2.0.1-SNAPSHOT - - - io.mosip.testrig.dslrig.ivv.dg - dslrig-ivv-dg - 1.2.0.1-SNAPSHOT - - - com.aventstack - extentreports - 3.0.7 - compile - - - io.mosip.testrig.apirig.automationtests - automationtests - 1.2.0.1-SNAPSHOT - - - com.sun.jersey - jersey-client - - - + + + com.sun.jersey + jersey-client + + + - - com.slack.api - slack-api-client - 1.6.1-RC1 - + + io.mosip.esignet + apitest-esignet + 1.2.0.1-SNAPSHOT + + + + io.mosip.authentication + apitest-auth + 1.2.0.1-SNAPSHOT + + + + io.mosip.idrepo + apitest-idrepo + 1.2.0.1-SNAPSHOT + + + + io.mosip.masterdata + apitest-masterdata + 1.2.0.1-SNAPSHOT + + + io.mosip.mimoto + apitest-mimoto + 1.2.0.1-SNAPSHOT + + + + io.mosip.testrig.apirig.apitests.partner + apitests-partner + 1.2.0.1-SNAPSHOT + + + io.mosip.testrig.apirig.automationtests.prereg + automationtests-prereg + 1.2.0.1-SNAPSHOT + + + io.mosip.testrig.apirig.automationtests.resident + automationtests-resident + 1.2.0.1-SNAPSHOT + + + + com.slack.api + slack-api-client + 1.6.1-RC1 + - - io.mosip.kernel - kernel-biometrics-api - 1.2.0.1-SNAPSHOT - + + io.mosip.kernel + kernel-biometrics-api + 1.2.0.1-SNAPSHOT + - - com.fasterxml.jackson.core - jackson-databind - 2.10.5 - + + com.fasterxml.jackson.core + jackson-databind + 2.10.5 + javax.cache @@ -155,44 +203,44 @@ jcache 1.0.0 - - com.fasterxml.jackson.core - jackson-core - 2.10.1 - - + + com.fasterxml.jackson.core + jackson-core + 2.10.1 + + - + - - - sonar - - . - src/main/java/**,src/main/resources/** - ${sonar.coverage.exclusions} - https://sonarcloud.io - - - false - - - - - org.sonarsource.scanner.maven - sonar-maven-plugin - ${maven.sonar.plugin.version} - - - verify - - sonar - - - - - - - - + + + sonar + + . + src/main/java/**,src/main/resources/** + ${sonar.coverage.exclusions} + https://sonarcloud.io + + + false + + + + + org.sonarsource.scanner.maven + sonar-maven-plugin + ${maven.sonar.plugin.version} + + + verify + + sonar + + + + + + + + \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ActivateDeactivate.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ActivateDeactivate.java index 4b689d96a..64ad6187c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ActivateDeactivate.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ActivateDeactivate.java @@ -8,8 +8,8 @@ import org.json.JSONObject; import org.testng.Reporter; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.kernel.util.KernelAuthentication; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.KernelAuthentication; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ApproveRejectPacket.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ApproveRejectPacket.java index aeee7e2b5..a69b57ca3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ApproveRejectPacket.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ApproveRejectPacket.java @@ -7,8 +7,8 @@ import org.json.JSONObject; import org.testng.Reporter; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testscripts.SimplePostForAutoGenId; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/AssignPacketToUser.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/AssignPacketToUser.java index 69e0769c7..f9135ee1c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/AssignPacketToUser.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/AssignPacketToUser.java @@ -7,8 +7,8 @@ import org.json.JSONObject; import org.testng.Reporter; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testscripts.SimplePost; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioAuthentication.java index 41719ef37..5e468d0aa 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioAuthentication.java @@ -9,12 +9,12 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.utils.ConfigManager; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.BioAuth; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioEsignetAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioEsignetAuthentication.java index a94ed6570..89864947f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioEsignetAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioEsignetAuthentication.java @@ -9,11 +9,11 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.EsignetBioAuth; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.FeatureNotSupportedError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookAppointment.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookAppointment.java index fcacf62df..89b889904 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookAppointment.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookAppointment.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookSpecificSlotForPrid.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookSpecificSlotForPrid.java index f95432844..8d4859029 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookSpecificSlotForPrid.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookSpecificSlotForPrid.java @@ -7,7 +7,7 @@ import org.apache.log4j.Logger; import org.json.JSONObject; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BulkUploadPacket.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BulkUploadPacket.java index 708d0234c..c97c9c57f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BulkUploadPacket.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BulkUploadPacket.java @@ -7,7 +7,7 @@ import org.apache.log4j.Logger; import org.json.JSONArray; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelAppointment.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelAppointment.java index d4b00ea63..3fc5db125 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelAppointment.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelAppointment.java @@ -5,7 +5,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelBooking.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelBooking.java index 494fafaab..dc2a67712 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelBooking.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelBooking.java @@ -10,8 +10,8 @@ import org.apache.log4j.Logger; import org.json.JSONObject; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Center.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Center.java index dc31863f1..6a9ef311a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Center.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Center.java @@ -5,8 +5,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.PatchWithPathParam; import io.mosip.testrig.apirig.testscripts.PutWithPathParam; import io.mosip.testrig.apirig.testscripts.SimplePost; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckCredentialStatus.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckCredentialStatus.java index c59cb0290..4f9060b4b 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckCredentialStatus.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckCredentialStatus.java @@ -4,10 +4,10 @@ import org.apache.log4j.Logger; import org.testng.Reporter; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testscripts.GetWithParam; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBAbsence.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBAbsence.java index 5f18aa24b..a9bad72e8 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBAbsence.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBAbsence.java @@ -13,15 +13,11 @@ import org.json.JSONArray; import org.json.JSONObject; -import com.sun.jna.StringArray; - import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testscripts.GetWithParam; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBPresence.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBPresence.java index 15e106991..5155439b8 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBPresence.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBPresence.java @@ -15,11 +15,9 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testscripts.GetWithParam; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckMultipleRidStatus.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckMultipleRidStatus.java index e5e9629a9..a0e7cfb3d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckMultipleRidStatus.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckMultipleRidStatus.java @@ -11,16 +11,15 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.testng.Reporter; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; import io.mosip.testrig.apirig.testscripts.SimplePost; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; -import io.mosip.testrig.dslrig.ivv.core.utils.Utils; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckPridStatus.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckPridStatus.java index d38ff16ee..edc205ae7 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckPridStatus.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckPridStatus.java @@ -9,8 +9,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckRIDStage.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckRIDStage.java index 0931d99a1..7ba11996c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckRIDStage.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckRIDStage.java @@ -5,7 +5,7 @@ import org.json.JSONArray; import org.json.JSONObject; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java index e36d5528c..5aee33d4a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java @@ -11,7 +11,7 @@ import org.apache.log4j.Logger; import org.testng.Reporter; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.dtos.Scenario; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckTags.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckTags.java index 67146bf16..7cee545b4 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckTags.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckTags.java @@ -3,19 +3,17 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; -import org.testng.SkipException; - import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.util.Map; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.kernel.util.KernelAuthentication; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.KernelAuthentication; import io.mosip.testrig.apirig.testscripts.SimplePost; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClearDeviceCertCache.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClearDeviceCertCache.java index 8794ff72d..7b804f382 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClearDeviceCertCache.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClearDeviceCertCache.java @@ -2,9 +2,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import org.json.JSONObject; - -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClonePersonaAndUpdate.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClonePersonaAndUpdate.java index 17579112e..3a22261c3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClonePersonaAndUpdate.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClonePersonaAndUpdate.java @@ -13,7 +13,7 @@ import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ConfigureMockAbis.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ConfigureMockAbis.java index c7cd97706..1fc101509 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ConfigureMockAbis.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ConfigureMockAbis.java @@ -11,7 +11,7 @@ import org.json.JSONArray; import org.json.JSONObject; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CorruptPacket.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CorruptPacket.java index 263bfc57b..b87bc3abd 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CorruptPacket.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CorruptPacket.java @@ -6,7 +6,7 @@ import org.apache.log4j.Logger; import org.json.JSONObject; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CredentialRequest.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CredentialRequest.java index c6285a960..2b3a5ec4a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CredentialRequest.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CredentialRequest.java @@ -5,10 +5,10 @@ import org.json.JSONObject; import org.testng.Reporter; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testscripts.PostWithBodyWithOtpGenerate; import io.mosip.testrig.apirig.testscripts.SimplePost; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteApplication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteApplication.java index 5114104f9..d6cb6de7f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteApplication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteApplication.java @@ -4,7 +4,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteHoliday.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteHoliday.java index 3fa99d17e..d398cc7ca 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteHoliday.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteHoliday.java @@ -2,7 +2,7 @@ import org.apache.log4j.Logger; import org.json.JSONObject; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteMockExpect.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteMockExpect.java index 784f32710..09a4fa9f2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteMockExpect.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteMockExpect.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java index 15cb202b4..b7f863718 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java @@ -11,13 +11,12 @@ import org.json.JSONArray; import org.json.JSONObject; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.DemoAuthSimplePostForAutoGenId; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardAppointment.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardAppointment.java index f97f3546a..b732e2a12 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardAppointment.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardAppointment.java @@ -6,8 +6,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; - -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testscripts.DeleteWithParam; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardBooking.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardBooking.java index e4972079e..5c264ebeb 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardBooking.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardBooking.java @@ -9,8 +9,8 @@ import org.apache.log4j.Logger; import org.json.JSONObject; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DownloadCard.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DownloadCard.java index 10add82cf..b8e85b99c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DownloadCard.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DownloadCard.java @@ -6,11 +6,10 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.testng.Reporter; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.utils.ConfigManager; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; import io.mosip.testrig.apirig.testscripts.GetWithParamForDownloadCard; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBio.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBio.java index a642c9f18..2d9a95e9e 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBio.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBio.java @@ -9,12 +9,12 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.BioAuth; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBioWithVid.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBioWithVid.java index 5a0de8fe4..457d2ca98 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBioWithVid.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBioWithVid.java @@ -10,11 +10,10 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestUtil; import io.mosip.testrig.apirig.testscripts.BioAuth; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycDemo.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycDemo.java index 9eab66d7f..846257dd5 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycDemo.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycDemo.java @@ -10,13 +10,12 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.DemoAuthSimplePostForAutoGenId; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycOtp.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycOtp.java index 503eb1c8b..6bb1c0271 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycOtp.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycOtp.java @@ -7,13 +7,12 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.OtpAuthNew; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.FeatureNotSupportedError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EsignetAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EsignetAuthentication.java index 3ba355f3a..637c94157 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EsignetAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EsignetAuthentication.java @@ -7,13 +7,12 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.SimplePost; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.FeatureNotSupportedError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacket.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacket.java index 6aa0a3e5d..43bdc6c56 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacket.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacket.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPrereg.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPrereg.java index cbf7ccc3a..82629446d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPrereg.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPrereg.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPreregWithInvalidCbeff.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPreregWithInvalidCbeff.java index a09ed1eda..b9e14f016 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPreregWithInvalidCbeff.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPreregWithInvalidCbeff.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAuthCertifcates.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAuthCertifcates.java index 6c21c54b7..8b7c5cfae 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAuthCertifcates.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAuthCertifcates.java @@ -3,10 +3,10 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.ida.certificate.CertificateGenerationUtil; -import io.mosip.testrig.apirig.ida.certificate.PartnerRegistration; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.CertificateGenerationUtil; +import io.mosip.testrig.apirig.utils.PartnerRegistration; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVID.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVID.java index 66a79a15d..46ee4f70f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVID.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVID.java @@ -1,6 +1,5 @@ package io.mosip.testrig.dslrig.ivv.e2e.methods; -import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -11,12 +10,11 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; import io.mosip.testrig.apirig.testscripts.PostWithBodyWithOtpGenerate; import io.mosip.testrig.apirig.testscripts.SimplePost; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVIDWithoutOTP.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVIDWithoutOTP.java index b6ae0cda4..0afeab2b0 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVIDWithoutOTP.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVIDWithoutOTP.java @@ -11,11 +11,11 @@ import org.apache.log4j.Logger; import org.json.JSONObject; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; import io.mosip.testrig.apirig.testscripts.SimplePostForAutoGenId; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetAdditionalReqId.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetAdditionalReqId.java index 27f6f9f8f..36c6b94c5 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetAdditionalReqId.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetAdditionalReqId.java @@ -7,7 +7,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.MockSMTPListener; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBioModalityHash.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBioModalityHash.java index 58957e22e..3b42ff8ba 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBioModalityHash.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBioModalityHash.java @@ -9,8 +9,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBlocklistedWord.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBlocklistedWord.java index bd7192d2d..86a80aa43 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBlocklistedWord.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBlocklistedWord.java @@ -6,11 +6,10 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; - -import io.mosip.testrig.apirig.global.utils.GlobalConstants; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.kernel.util.KernelAuthentication; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.KernelAuthentication; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetEmailByUIN.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetEmailByUIN.java index 5d00c9438..c76fda79f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetEmailByUIN.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetEmailByUIN.java @@ -6,12 +6,12 @@ import org.json.JSONObject; import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.authentication.fw.util.OutputValidationUtil; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; import io.mosip.testrig.apirig.testscripts.GetWithParam; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetIdentityByRid.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetIdentityByRid.java index ddd96b4bb..712c421b6 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetIdentityByRid.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetIdentityByRid.java @@ -8,15 +8,12 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; -import org.testng.Reporter; - -import io.mosip.testrig.apirig.authentication.fw.util.FileUtil; -import io.mosip.testrig.apirig.authentication.fw.util.ReportUtil; -import io.mosip.testrig.apirig.authentication.fw.util.RestClient; -import io.mosip.testrig.apirig.global.utils.GlobalMethods; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.kernel.util.KernelAuthentication; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.FileUtil; +import io.mosip.testrig.apirig.utils.RestClient; +import io.mosip.testrig.apirig.utils.GlobalMethods; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.KernelAuthentication; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPacketTemplate.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPacketTemplate.java index ecef650b2..caaa2cc40 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPacketTemplate.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPacketTemplate.java @@ -8,7 +8,7 @@ import org.json.JSONArray; import org.json.JSONObject; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPhoneByUIN.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPhoneByUIN.java index 6438bde4b..f20fd72fe 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPhoneByUIN.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPhoneByUIN.java @@ -6,12 +6,12 @@ import org.json.JSONObject; import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.authentication.fw.util.OutputValidationUtil; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; import io.mosip.testrig.apirig.testscripts.GetWithParam; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java index 7415486e7..9dc327e39 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java @@ -7,7 +7,7 @@ import org.json.JSONObject; import org.testng.SkipException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetResidentData.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetResidentData.java index 26059134d..b52b93cc7 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetResidentData.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetResidentData.java @@ -9,7 +9,7 @@ import org.json.JSONArray; import org.json.JSONObject; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetUINByRid.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetUINByRid.java index 6f66b627d..2599fab09 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetUINByRid.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetUINByRid.java @@ -5,11 +5,8 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; -import org.testng.Reporter; - -import io.mosip.testrig.apirig.authentication.fw.util.ReportUtil; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.kernel.util.KernelAuthentication; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.KernelAuthentication; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/HolidayDeclaration.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/HolidayDeclaration.java index 096b9b5b1..30b2d84b7 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/HolidayDeclaration.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/HolidayDeclaration.java @@ -5,21 +5,17 @@ import org.apache.log4j.Logger; import org.json.JSONObject; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.dbaccess.AuditDBManager; -import io.mosip.testrig.apirig.dbaccess.DBManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.PatchWithPathParam; import io.mosip.testrig.apirig.testscripts.SimplePost; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.CenterHelper; -import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; import io.restassured.response.Response; public class HolidayDeclaration extends BaseTestCaseUtil implements StepInterface { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java index b0763708f..f8f4bd777 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java @@ -6,7 +6,7 @@ import org.apache.log4j.Logger; import org.testng.Reporter; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MasterdataDelete.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MasterdataDelete.java index 0932d115b..b45ddfd31 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MasterdataDelete.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MasterdataDelete.java @@ -3,7 +3,7 @@ import org.apache.log4j.Logger; import org.hibernate.Session; import io.mosip.testrig.apirig.dbaccess.DBManager; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.MosipTestRunner; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java index 8d2439ee3..8e5b08467 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java @@ -10,18 +10,17 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.testng.Reporter; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; +import io.mosip.testrig.apirig.utils.AdminTestUtil; import io.mosip.testrig.apirig.testscripts.BioAuth; import io.mosip.testrig.apirig.testscripts.DemoAuthSimplePostForAutoGenId; import io.mosip.testrig.apirig.testscripts.MultiFactorAuthNew; -import io.mosip.testrig.apirig.testscripts.OtpAuth; +import io.mosip.testrig.apirig.testscripts.OtpAuthNew; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.dtos.Scenario; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; @@ -35,7 +34,7 @@ public class MultiFactorAuthentication extends BaseTestCaseUtil implements StepI private static final String MULTIFACTOR = "idaData/MultiFactorAuth/MultiFactorAuth.yml"; Properties deviceProp = null; Properties uinResidentDataPathFinalProps = new Properties(); - OtpAuth otpAuth = new OtpAuth(); + OtpAuthNew otpAuth = new OtpAuthNew(); MultiFactorAuthNew multiFactorAuth = new MultiFactorAuthNew(); BioAuth bioAuth = new BioAuth(); DemoAuthSimplePostForAutoGenId demoAuth = new DemoAuthSimplePostForAutoGenId(); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiProductRemap.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiProductRemap.java index e263df836..7782616db 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiProductRemap.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiProductRemap.java @@ -9,9 +9,9 @@ import org.json.JSONObject; import org.json.simple.JSONValue; import org.json.simple.parser.JSONParser; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.kernel.util.KernelAuthentication; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.KernelAuthentication; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OAuthDetailsRequest.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OAuthDetailsRequest.java index fcfc3a8f3..5d4bc3769 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OAuthDetailsRequest.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OAuthDetailsRequest.java @@ -11,12 +11,11 @@ import com.google.gson.Gson; import com.google.gson.JsonObject; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; import io.mosip.testrig.apirig.testscripts.SimplePostForAutoGenId; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.FeatureNotSupportedError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java index 0886fd708..853368983 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java @@ -2,17 +2,14 @@ import java.security.NoSuchAlgorithmException; -import javax.transaction.NotSupportedException; - import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; import io.mosip.testrig.apirig.testrunner.MosipTestRunner; import io.mosip.testrig.apirig.testscripts.PostWithOnlyPathParam; import io.mosip.testrig.apirig.testscripts.SimplePost; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OldGetResidentData.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OldGetResidentData.java index 00aa318db..34d33dd6a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OldGetResidentData.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OldGetResidentData.java @@ -9,11 +9,10 @@ import org.json.JSONArray; import org.json.JSONObject; import org.testng.Reporter; - -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.util.RestClient; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; +import io.mosip.testrig.apirig.utils.RestClient; import io.mosip.testrig.apirig.testscripts.SimplePost; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OperatorOnboardAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OperatorOnboardAuthentication.java index ecd7b1f18..ae57123f2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OperatorOnboardAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OperatorOnboardAuthentication.java @@ -8,11 +8,10 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestUtil; import io.mosip.testrig.apirig.testscripts.BioAuth; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OtpAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OtpAuthentication.java index 870195a95..537a3ddf7 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OtpAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OtpAuthentication.java @@ -7,13 +7,12 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.OtpAuthNew; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.FeatureNotSupportedError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetcreator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetcreator.java index 0ac8308b8..64d74b70d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetcreator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetcreator.java @@ -6,7 +6,7 @@ import org.apache.log4j.Logger; import org.json.JSONObject; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetsync.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetsync.java index 9919bd9d8..c3951360f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetsync.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetsync.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PostMockMv.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PostMockMv.java index 0588b53f3..3f4aed5dd 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PostMockMv.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PostMockMv.java @@ -6,8 +6,8 @@ import org.apache.log4j.Logger; import org.json.JSONObject; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PreRegister.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PreRegister.java index af3c1bacd..389a8e8ee 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PreRegister.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PreRegister.java @@ -4,7 +4,7 @@ import org.apache.log4j.Logger; import org.testng.Reporter; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RandomDataAssign.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RandomDataAssign.java index b7ef4b899..9d892e80b 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RandomDataAssign.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RandomDataAssign.java @@ -5,7 +5,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java index 1ff505f2a..3f2d56ce1 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java @@ -8,8 +8,8 @@ import org.apache.log4j.Logger; import org.testng.Reporter; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReprocessPacket.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReprocessPacket.java index 12c4558cd..00ac79f4a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReprocessPacket.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReprocessPacket.java @@ -5,7 +5,7 @@ import org.json.JSONArray; import org.json.JSONObject; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ResetContextData.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ResetContextData.java index fdb207587..a703f368c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ResetContextData.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ResetContextData.java @@ -2,7 +2,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; - import io.mosip.testrig.apirig.kernel.util.ConfigManager; + import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RidSyncRejected.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RidSyncRejected.java index cf7d7bdb5..614de3596 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RidSyncRejected.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RidSyncRejected.java @@ -9,7 +9,7 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Ridsync.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Ridsync.java index 327f35a45..58f16703b 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Ridsync.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Ridsync.java @@ -12,7 +12,7 @@ import org.json.JSONArray; import org.json.JSONObject; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SendOtp.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SendOtp.java index 99728aa29..30db55f9f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SendOtp.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SendOtp.java @@ -5,7 +5,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ServerResourceAllocateDeallocate.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ServerResourceAllocateDeallocate.java index 77a4b6c1c..1fa42c8fb 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ServerResourceAllocateDeallocate.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ServerResourceAllocateDeallocate.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java index e7db21910..a991f0f17 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java @@ -6,8 +6,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Skip.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Skip.java index 4819fff16..104d1d082 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Skip.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Skip.java @@ -4,7 +4,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java index 956b9ddf0..bea47c0b5 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java @@ -6,8 +6,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SyncData.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SyncData.java index d9d9689c6..dbf06bb51 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SyncData.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SyncData.java @@ -5,7 +5,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateApplication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateApplication.java index d0cd61c21..c2b985be1 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateApplication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateApplication.java @@ -4,7 +4,7 @@ import org.apache.log4j.Logger; import org.testng.Reporter; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateBioExceptionInPersona.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateBioExceptionInPersona.java index cb4b346b6..558a9edd5 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateBioExceptionInPersona.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateBioExceptionInPersona.java @@ -6,7 +6,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java index 628be9512..6d59a8b39 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java @@ -7,7 +7,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateMachineInPrereqData.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateMachineInPrereqData.java index ca433df69..8ca74acf2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateMachineInPrereqData.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateMachineInPrereqData.java @@ -5,7 +5,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdatePreRegStatus.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdatePreRegStatus.java index 049691d34..056112120 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdatePreRegStatus.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdatePreRegStatus.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardian.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardian.java index 8ea773853..bf021240f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardian.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardian.java @@ -6,7 +6,7 @@ import org.apache.log4j.Logger; import org.testng.Reporter; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardianSkippingPreReg.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardianSkippingPreReg.java index 331f37b9d..d54cff8a2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardianSkippingPreReg.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardianSkippingPreReg.java @@ -6,7 +6,7 @@ import org.apache.log4j.Logger; import org.testng.Reporter; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithRID.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithRID.java index 7e5ebd57b..aa7adf901 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithRID.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithRID.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithUIN.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithUIN.java index e50c4086e..377eb4f0b 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithUIN.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithUIN.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateUINDetail.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateUINDetail.java index 0bad3c0d4..da03d928b 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateUINDetail.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateUINDetail.java @@ -5,10 +5,10 @@ import org.json.JSONObject; import org.testng.Reporter; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testscripts.PostWithBodyWithOtpGenerate; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDocuments.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDocuments.java index 71698a449..a37714bfc 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDocuments.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDocuments.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadPacketWithInvalidHash.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadPacketWithInvalidHash.java index a08188421..0846bac1b 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadPacketWithInvalidHash.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadPacketWithInvalidHash.java @@ -3,7 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java index 85eb3b8a0..1fc6e880b 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java @@ -6,11 +6,9 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import org.testng.Reporter; - -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.kernel.util.KeycloakUserManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.KeycloakUserManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UserInfo.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UserInfo.java index 1b6cbdaf6..90568c66f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UserInfo.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UserInfo.java @@ -8,13 +8,12 @@ import org.json.JSONObject; import com.nimbusds.jose.jwk.RSAKey; - -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.GetWithParam; import io.mosip.testrig.apirig.testscripts.SimplePost; import io.mosip.testrig.apirig.testscripts.SimplePostForAutoGenIdForUrlEncoded; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ValidateOtp.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ValidateOtp.java index b3e7fb047..72fc9c184 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ValidateOtp.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ValidateOtp.java @@ -5,7 +5,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.MockSMTPListener; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java index eb4ac60a2..668227c70 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java @@ -2,13 +2,10 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import org.testng.Reporter; - -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; -import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; public class Wait extends BaseTestCaseUtil implements StepInterface { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WaitTillReprocessorInterval.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WaitTillReprocessorInterval.java index 98a967474..9230a0231 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WaitTillReprocessorInterval.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WaitTillReprocessorInterval.java @@ -3,8 +3,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.testng.Reporter; - -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePersonaData.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePersonaData.java index 2b69f81ed..6d1814aca 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePersonaData.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePersonaData.java @@ -7,14 +7,12 @@ import org.json.JSONObject; import org.apache.log4j.Level; import org.apache.log4j.Logger; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.authentication.fw.util.OutputValidationUtil; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.kernel.util.S3Adapter; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.S3Adapter; import io.mosip.testrig.apirig.testscripts.GetWithParam; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java index c321dfb02..6eee4d18a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java @@ -7,8 +7,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.testng.Reporter; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/restcall/GetWithParam.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/restcall/GetWithParam.java index 16ee8276e..55094bf20 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/restcall/GetWithParam.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/restcall/GetWithParam.java @@ -21,16 +21,14 @@ import org.testng.internal.BaseTestMethod; import org.testng.internal.TestResult; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.dto.OutputValidationDto; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.authentication.fw.util.OutputValidationUtil; -import io.mosip.testrig.apirig.authentication.fw.util.ReportUtil; -import io.mosip.testrig.apirig.global.utils.GlobalConstants; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testrunner.HealthChecker; import io.restassured.response.Response; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/restcall/SimplePost.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/restcall/SimplePost.java index f85f7f721..29a307832 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/restcall/SimplePost.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/restcall/SimplePost.java @@ -23,16 +23,17 @@ import org.testng.internal.BaseTestMethod; import org.testng.internal.TestResult; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.dto.OutputValidationDto; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.authentication.fw.util.OutputValidationUtil; -import io.mosip.testrig.apirig.authentication.fw.util.ReportUtil; -import io.mosip.testrig.apirig.global.utils.GlobalConstants; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; + +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; import io.mosip.testrig.apirig.testrunner.HealthChecker; import io.restassured.response.Response; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/ActivateDeactivateHelper.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/ActivateDeactivateHelper.java index 891851d57..eab926f0d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/ActivateDeactivateHelper.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/ActivateDeactivateHelper.java @@ -12,7 +12,7 @@ import org.json.JSONTokener; import org.testng.Reporter; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.restassured.response.Response; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java index 1017400bf..ab6f61ee5 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java @@ -21,22 +21,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.Reporter; - import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.RestClient; -import io.mosip.testrig.apirig.global.utils.GlobalConstants; -import io.mosip.testrig.apirig.global.utils.GlobalMethods; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.kernel.util.KernelAuthentication; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.RestClient; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.GlobalMethods; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.KernelAuthentication; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.BaseStep; import io.mosip.testrig.dslrig.ivv.core.dtos.Scenario; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/CenterHelper.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/CenterHelper.java index 11cfc973d..c083301fa 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/CenterHelper.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/CenterHelper.java @@ -5,10 +5,10 @@ import org.json.JSONArray; import org.json.JSONObject; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.GetWithParam; import io.mosip.testrig.apirig.testscripts.GetWithQueryParam; import io.mosip.testrig.apirig.testscripts.PatchWithPathParam; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java index 1f28080b8..8dfcc6f80 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java @@ -28,11 +28,11 @@ import org.testng.internal.Utils; import org.testng.xml.XmlSuite; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.global.utils.GlobalConstants; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.kernel.util.S3Adapter; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.S3Adapter; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.dtos.Scenario; /** diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/GlobalConstants.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/GlobalConstants.java index cb1908ec4..0c0db31b7 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/GlobalConstants.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/GlobalConstants.java @@ -1,6 +1,6 @@ package io.mosip.testrig.dslrig.ivv.orchestrator; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AdminTestUtil; public class GlobalConstants { public static final String PREREG = "prereg"; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/MachineHelper.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/MachineHelper.java index d47ec1518..0d6e2df16 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/MachineHelper.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/MachineHelper.java @@ -5,11 +5,10 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; - -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.PatchWithPathParam; import io.mosip.testrig.apirig.testscripts.PatchWithPathParamsAndBody; import io.mosip.testrig.apirig.testscripts.PatchWithQueryParam; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java index 062b7f5cd..3155a0df2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java @@ -43,9 +43,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import io.mosip.testrig.apirig.authentication.fw.util.ReportUtil; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testrunner.MosipTestRunner; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.dtos.ParserInputDTO; @@ -56,7 +55,6 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.core.utils.Utils; import io.mosip.testrig.dslrig.ivv.dg.DataGenerator; -import io.mosip.testrig.dslrig.ivv.e2e.methods.Center; import io.mosip.testrig.dslrig.ivv.parser.Parser; import com.sun.management.OperatingSystemMXBean; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java index 6b6af388a..83bdc9394 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java @@ -47,14 +47,14 @@ import com.nimbusds.jwt.JWTClaimsSet; import com.nimbusds.jwt.SignedJWT; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; -import io.mosip.testrig.apirig.global.utils.GlobalMethods; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.GlobalMethods; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.BioAuth; import io.mosip.testrig.apirig.testscripts.EsignetBioAuth; import io.mosip.testrig.dslrig.ivv.core.dtos.Scenario; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/S3Adapter.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/S3Adapter.java index d43139c85..3b725ca41 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/S3Adapter.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/S3Adapter.java @@ -18,7 +18,7 @@ import com.amazonaws.services.s3.model.PutObjectRequest; import io.mosip.kernel.core.util.StringUtils; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; public class S3Adapter { public static Logger logger = Logger.getLogger(S3Adapter.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/SyncDataHelper.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/SyncDataHelper.java index 002b06be6..1df79cc3d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/SyncDataHelper.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/SyncDataHelper.java @@ -7,8 +7,8 @@ import org.json.JSONObject; import org.testng.Assert; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.testscripts.GetWithQueryParam; import io.mosip.testrig.apirig.testscripts.PatchWithPathParam; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/TestRunner.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/TestRunner.java index 3b04c1e8e..071a71946 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/TestRunner.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/TestRunner.java @@ -13,13 +13,13 @@ import org.apache.log4j.Logger; import org.testng.TestNG; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; -import io.mosip.testrig.apirig.authentication.fw.util.OutputValidationUtil; -import io.mosip.testrig.apirig.ida.certificate.KeyCloakUserAndAPIKeyGeneration; -import io.mosip.testrig.apirig.ida.certificate.MispPartnerAndLicenseKeyGeneration; -import io.mosip.testrig.apirig.ida.certificate.PartnerRegistration; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.KeyCloakUserAndAPIKeyGeneration; +import io.mosip.testrig.apirig.utils.MispPartnerAndLicenseKeyGeneration; +import io.mosip.testrig.apirig.utils.PartnerRegistration; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testrunner.MockSMTPListener; public class TestRunner { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/ThreadCountChanger.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/ThreadCountChanger.java index 96d80e4d9..94d2c5983 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/ThreadCountChanger.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/ThreadCountChanger.java @@ -7,7 +7,7 @@ import org.testng.IAlterSuiteListener; import org.testng.xml.XmlSuite; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.apirig.utils.ConfigManager; public class ThreadCountChanger implements IAlterSuiteListener { static Logger logger = Logger.getLogger(ThreadCountChanger.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/UserHelper.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/UserHelper.java index 04aace2a9..0e7cf3dce 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/UserHelper.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/UserHelper.java @@ -7,10 +7,10 @@ import org.json.JSONArray; import org.json.JSONObject; -import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; -import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.apirig.service.BaseTestCase; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testscripts.DeleteWithParam; import io.mosip.testrig.apirig.testscripts.GetWithParam; import io.mosip.testrig.apirig.testscripts.PatchWithPathParam; From 597caa52fa082cc65adc4426cad3e70777ed0ce2 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Wed, 24 Apr 2024 15:14:23 +0530 Subject: [PATCH 07/57] Platform Bug Fixes Signed-off-by: Pankaj Godiyal --- .../ivv/orchestrator/EmailableReport.java | 17 ++- .../src/main/resources/config/scenarios.json | 120 +++++++----------- 2 files changed, 61 insertions(+), 76 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java index 2f1d40ae1..bb64a1add 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java @@ -3,6 +3,7 @@ import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; +import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; @@ -217,6 +218,20 @@ protected void writeDocumentEnd() { writer.print(""); } + public static String getCurrentBranch() { + File gitHeadFile = new File(".git/HEAD"); + try (BufferedReader reader = new BufferedReader(new FileReader(gitHeadFile))) { + String ref = reader.readLine(); + if (ref != null && ref.startsWith("ref:")) { + String branch = ref.substring("ref/heads/".length()); + return branch; + } + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + protected void writeSuiteSummary() { NumberFormat integerFormat = NumberFormat.getIntegerInstance(); NumberFormat decimalFormat = NumberFormat.getNumberInstance(); @@ -249,7 +264,7 @@ protected void writeSuiteSummary() { writer.print(Utils.escapeHtml( suiteResult.getSuiteName() + " ---- " + "Report Date: " + formattedDate + " ---- " + - "Tested Environment: " + System.getProperty("env.user").substring(System.getProperty("env.user").lastIndexOf(".") + 1) + " ---- " + + "Tested Environment: " + System.getProperty("env.endpoint").replaceAll(".*?\\.([^\\.]+)\\..*", "$1") + " ---- " + "Testrig details: Branch Name - " + branch + ", Commit ID - " + getCommitId())); writer.print(""); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json index 077059847..1c8c1a402 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json @@ -6814,7 +6814,7 @@ "Action": "e2e_CheckRIDStage($$rid2,MANUAL_ADJUDICATION,FAILED)" } }, - { + { "Scenario": "64", "Tag": "Negative_Test", "Persona": "ResidentMaleAdult", @@ -6875,10 +6875,10 @@ "Action": "$$uin=e2e_getUINByRid($$rid)" }, "Step-9": { - "Description": "<<>>", - "Input Parameters": "<<>>", - "Return Value": "<<>>", - "Action": "e2e_clonePersonaAndUpdate($$personaFilePath,firstName@@midName@@surName)" + "Description": "Updates Demo graphic details and biometric in the persona file", + "Input Parameters": "Data to update and persona file path. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_updateDemoOrBioDetails(0,0,name=AutomationName,$$personaFilePath)" }, "Step-10": { "Description": "Generates the hash for the given modalities", @@ -6926,7 +6926,7 @@ "Description": "Checks RID stage and stage status", "Input Parameters": "RID, stage and stage status", "Return Value": "NA", - "Action": "e2e_CheckRIDStage($$ridNew,BIOGRAPHIC_VERIFICATION,FAILED)" + "Action": "e2e_CheckRIDStage($$ridNew,MANUAL_ADJUDICATION,FAILED)" } }, { @@ -10032,7 +10032,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath,10/*BIOMETRIC_QUALITY_SCORE*/)" }, "Step-6": { "Description": "<<>>", @@ -10047,82 +10047,64 @@ "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" }, "Step-8": { - "Description": "Generates the hash for the given modalities", - "Input Parameters": "Modalitie and persona file path. Other details can be found in the parameter in-line comments", - "Return Value": "Hash value", - "Action": "$$modalityHashValue=e2e_getBioModalityHash(-1/*CHECK_PERSONA_PRESENCE*/,Right IndexFinger@@Left LittleFinger,$$personaFilePath)" - }, - "Step-9": { - "Description": "Sets expectatation on mock ABIS", - "Input Parameters": "Modalities hash value. Other details can be found in the parameter in-line comments", - "Return Value": "NA", - "Action": "e2e_configureMockAbis(-1/*CHECK_PERSONA_PRESENCE*/,Right IndexFinger,true/*DUPLICATE_FLAG*/,Right IndexFinger,$$personaFilePath,$$modalityHashValue,-1/*DEFAULT_MOCK_DELAY*/,@@Duplicate/*STATUS_CODE*/)" - }, - "Step-10": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "NA", "Action": "e2e_packetsync($$zipPacketPath)" }, + "Step-9": { + "Description": "Gets additional request ID for correction packet", + "Input Parameters": "Additional request ID key", + "Return Value": "Additional request ID", + "Action": "$$additionalReqId=e2e_getAdditionalReqId(additionalReqId_86)" + }, + "Step-10": { + "Description": "Generates persona data", + "Input Parameters": "Details are in parameter in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + }, "Step-11": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath1=e2e_getPacketTemplate(NEW,$$personaFilePath,15/*BIOMETRIC_QUALITY_SCORE*/)" + "Action": "$$templatePath1=e2e_getPacketTemplate(BIOMETRIC_CORRECTION,$$personaFilePath1)" }, "Step-12": { - "Description": "<<>>", - "Input Parameters": "<<>>", - "Return Value": "<<>>", - "Action": "$$zipPacketPath1=e2e_packetcreator(NEW,$$templatePath1)" + "Description": "Generates the hash for the given modalities", + "Input Parameters": "Modalitie and persona file path. Other details can be found in the parameter in-line comments", + "Return Value": "Hash value", + "Action": "$$modalityHashValue=e2e_getBioModalityHash(-1/*CHECK_PERSONA_PRESENCE*/,Right IndexFinger@@Left LittleFinger,$$personaFilePath1)" }, "Step-13": { - "Description": "<<>>", - "Input Parameters": "<<>>", - "Return Value": "<<>>", - "Action": "$$rid1=e2e_ridsync(NEW,$$zipPacketPath1)" - }, - "Step-14": { - "Description": "<<>>", - "Input Parameters": "<<>>", + "Description": "Sets expectatation on mock ABIS", + "Input Parameters": "Modalities hash value. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_packetsync($$zipPacketPath1)" + "Action": "e2e_configureMockAbis(-1/*CHECK_PERSONA_PRESENCE*/,Right IndexFinger,true/*DUPLICATE_FLAG*/,Right IndexFinger,$$personaFilePath1,$$modalityHashValue,-1/*DEFAULT_MOCK_DELAY*/,@@Duplicate/*STATUS_CODE*/)" }, - "Step-15": { - "Description": "Gets additional request ID for correction packet", - "Input Parameters": "Additional request ID key", - "Return Value": "Additional request ID", - "Action": "$$additionalReqId=e2e_getAdditionalReqId(additionalReqId_86)" - }, - "Step-16": { - "Description": "Generates packet template based on the persona data", - "Input Parameters": "Process and persona file path", - "Return Value": "Generated Template file path", - "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION,$$personaFilePath)" - }, - "Step-17": { + "Step-14": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION,$$templatePath2,$$additionalReqId)" + "Action": "$$zipPacketPath1=e2e_packetcreator(BIOMETRIC_CORRECTION,$$templatePath1,$$additionalReqId)" }, - "Step-18": { + "Step-15": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION,$$zipPacketPath2,$$additionalReqId)" + "Action": "$$rid1=e2e_ridsync(BIOMETRIC_CORRECTION,$$zipPacketPath1,$$additionalReqId)" }, - "Step-19": { + "Step-16": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "NA", - "Action": "e2e_packetsync($$zipPacketPath2)" + "Action": "e2e_packetsync($$zipPacketPath1)" }, - "Step-20": { + "Step-17": { "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(processed,$$rid1)" } }, { @@ -13483,7 +13465,7 @@ "Action": "e2e_bioAuthentication(faceDevice,$$lostUin,$$vidwithoutotp,$$personaFilePath)" } }, - { + { "Scenario": "115", "Tag": "Postive_Test", "Persona": "ResidentMaleAdult", @@ -13622,10 +13604,10 @@ "Action": "$$childUin=e2e_getUINByRid($$childRid)" }, "Step-22": { - "Description": "Gets Email ID configuired for the UIN", - "Input Parameters": "UIN", - "Return Value": "Email ID", - "Action": "$$email=e2e_getEmailByUIN($$childUin)" + "Description": "Generates VID without OTP", + "Input Parameters": "VID tyoe and UIN", + "Return Value": "VID", + "Action": "$$vidwithoutotp=e2e_GenerateVIDWithoutOTP(Perpetual,$$childUin)" }, "Step-23": { "Description": "Waits for given period in seconds", @@ -13634,36 +13616,24 @@ "Action": "e2e_wait(90)" }, "Step-24": { - "Description": "Generated VID for the given UIN", - "Input Parameters": "UIN and other can be found in parameters in-line commnets", - "Return Value": "VID", - "Action": "$$vid=e2e_generateVID(Perpetual,$$childUin,$$email)" - }, - "Step-25": { - "Description": "Waits for given period in seconds", - "Input Parameters": "Time period in seconds to wait", - "Return Value": "NA", - "Action": "e2e_wait(90)" - }, - "Step-26": { "Description": "Peforms demographic authentication", "Input Parameters": "Demo graphic details, persona, UIN and VID", "Return Value": "NA", - "Action": "e2e_demoAuthentication(name,$$uin,$$personaFilePath,$$vid)" + "Action": "e2e_demoAuthentication(name,$$childUin,$$childPersona,$$vidwithoutotp)" }, - "Step-27": { + "Step-25": { "Description": "Checks RID stage and stage status", "Input Parameters": "RID, stage and stage status", "Return Value": "NA", "Action": "e2e_CheckRIDStage($$parentRid,PRINT_SERVICE,PROCESSED)" }, - "Step-28": { + "Step-26": { "Description": "Checks RID stage and stage status", "Input Parameters": "RID, stage and stage status", "Return Value": "NA", "Action": "e2e_CheckRIDStage($$childRid,PRINT_SERVICE,PROCESSED)" }, - "Step-29": { + "Step-27": { "Description": "Checks RID stage and stage status", "Input Parameters": "RID, stage and stage status", "Return Value": "NA", @@ -16096,7 +16066,7 @@ "Description": "Checks for given modality data BDB", "Input Parameters": "UNI and modalities", "Return Value": "NA", - "Action": "e2e_CheckForBDBPresence($$uin2,FINGER_Left RingFinger@@FINGER_Right LittleFinger@@FACE@@FINGER_Left LittleFinger@@IRIS_Right@@FINGER_Left MiddleFinger@@FINGER_Left IndexFinger@@FINGER_Right IndexFinger@@IRIS_Left@@FINGER_Right RingFinger@@FINGER_Left Thumb@@FINGER_Right MiddleFinger@@FINGER_Right Thumb,false)" + "Action": "e2e_CheckForBDBPresence($$uin2,FINGER_Left RingFinger@@FINGER_Right LittleFinger@@FACE@@FINGER_Left LittleFinger@@IRIS_Right@@FINGER_Left MiddleFinger@@FINGER_Left IndexFinger@@FINGER_Right IndexFinger@@IRIS_Left@@FINGER_Right RingFinger@@FINGER_Right MiddleFinger@@FINGER_Right Thumb,true)" } }, { From da2a4f3deb151efe0dafa6fd4efec4abd51ac230 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Wed, 24 Apr 2024 15:16:19 +0530 Subject: [PATCH 08/57] Platform bugs fix Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/orchestrator/EmailableReport.java | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java index bb64a1add..5b376946f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java @@ -218,20 +218,6 @@ protected void writeDocumentEnd() { writer.print(""); } - public static String getCurrentBranch() { - File gitHeadFile = new File(".git/HEAD"); - try (BufferedReader reader = new BufferedReader(new FileReader(gitHeadFile))) { - String ref = reader.readLine(); - if (ref != null && ref.startsWith("ref:")) { - String branch = ref.substring("ref/heads/".length()); - return branch; - } - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - protected void writeSuiteSummary() { NumberFormat integerFormat = NumberFormat.getIntegerInstance(); NumberFormat decimalFormat = NumberFormat.getNumberInstance(); From 615df258ab0b8882f62779d89a1efa10d193ed12 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Thu, 25 Apr 2024 17:17:54 +0530 Subject: [PATCH 09/57] MOSIP-32643 Signed-off-by: Pankaj Godiyal --- .../dataprovider/preparation/MosipDataSetup.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java index 572001705..68aebcda3 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java @@ -94,8 +94,8 @@ public static List getMachineDetail(String machineId, String + "v1/masterdata/machines/"; url = url + machineId + "/ "; - String run_context = VariableManager.getVariableValue(contextKey,"urlBase").toString() + RUN_CONTEXT; - Object o =getCache(url,run_context); +// String run_context = VariableManager.getVariableValue(contextKey,"urlBase").toString() + RUN_CONTEXT; + Object o =getCache(url,contextKey); if(o != null) return( (List) o); @@ -107,7 +107,7 @@ public static List getMachineDetail(String machineId, String machines = objectMapper.readValue(typeArray.toString(), objectMapper.getTypeFactory().constructCollectionType(List.class, MosipMachineModel.class)); - setCache(url, machines,run_context); + setCache(url, machines,contextKey); } @@ -124,9 +124,9 @@ public static List searchMachineDetail(String machineId, Stri String url = VariableManager.getVariableValue(contextKey,"urlBase").toString() + "v1/masterdata/machines/search"; - String run_context = VariableManager.getVariableValue(contextKey,"urlBase").toString() + RUN_CONTEXT; +// String run_context = VariableManager.getVariableValue(contextKey,"urlBase").toString() + RUN_CONTEXT; - Object o =getCache(url,run_context); + Object o =getCache(url,contextKey); if(o != null) return( (List) o); @@ -168,7 +168,7 @@ public static List searchMachineDetail(String machineId, Stri machines = objectMapper.readValue(typeArray.toString(), objectMapper.getTypeFactory().constructCollectionType(List.class, MosipMachineModel.class)); - setCache(url, machines,run_context); + setCache(url, machines,contextKey); } From 10304da63a0c479973853eb2225db9094576a3fe Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Fri, 3 May 2024 15:31:06 +0530 Subject: [PATCH 10/57] MOSIP-32153 Signed-off-by: Pankaj Godiyal --- .../dslrig/dataprovider/PacketTemplateProvider.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/PacketTemplateProvider.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/PacketTemplateProvider.java index e7472ac1d..c9f0c9417 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/PacketTemplateProvider.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/PacketTemplateProvider.java @@ -251,7 +251,7 @@ private Map getDocuments(ResidentModel resident, String idJ if (!CommonUtil.isExists(contextSchemaDetail.getRequiredAttribs(), s.getId())) continue; for (MosipDocument doc : resident.getDocuments()) { - if (doc.getDocCategoryCode().toLowerCase().equals(s.getSubType().toLowerCase())) { + if (s.getSubType() != null && doc.getDocCategoryCode().toLowerCase().equals(s.getSubType().toLowerCase())) { DocumentDto documentDto = new DocumentDto(); if (json.has(s.getId())) { JSONObject formateJson = json.getJSONObject(s.getId()); @@ -311,7 +311,11 @@ String generateEvidenceJson(ResidentModel resident, HashMap fi RestClient.logInfo(contextKey, s.toJSONString()); String primVal = ""; String secVal = ""; - if (s.getFieldCategory().equals(EVIDENCE) && (s.getInputRequired() || s.getRequired())) { + + if (s.getFieldCategory() != null && ( + (s.getInputRequired() != null && s.getInputRequired()) || + (s.getRequired() != null && s.getRequired()) + ) && s.getFieldCategory().equals(EVIDENCE)) { if (s.getRequired() && s.getRequiredOn() != null && !s.getRequiredOn().isEmpty()) { From bc3ad7d391773aee6dc9e2523579a9512b56c9b0 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Mon, 6 May 2024 16:24:36 +0530 Subject: [PATCH 11/57] MOSIP-32823 Signed-off-by: Pankaj Godiyal --- .../dslrig/dataprovider/PacketTemplateProvider.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/PacketTemplateProvider.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/PacketTemplateProvider.java index c9f0c9417..cca930aac 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/PacketTemplateProvider.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/PacketTemplateProvider.java @@ -864,6 +864,8 @@ public static Boolean processDynamicFields(MosipIDSchema s, JSONObject identity, for (DynamicFieldModel dfm : dynaFields.get(primaryLanguage)) { if (dfm.getIsActive() && dfm.getName().equals(s.getId())) { primaryValue = dfm.getFieldVal().get(0).getCode(); + if (s.getId().contains("residenceStatus")) + VariableManager.setVariableValue(contextKey, "ID_OBJECT-residenceStatus", primaryValue); dfmPrim = dfm; break; } @@ -874,6 +876,8 @@ public static Boolean processDynamicFields(MosipIDSchema s, JSONObject identity, for (DynamicFieldModel dfm1 : dynaFields.get(secLanguage)) { if (dfm1.getIsActive() && dfm1.getName().equals(s.getId())) { secValue = dfm1.getFieldVal().get(0).getCode(); + if (s.getId().contains("residenceStatus")) + VariableManager.setVariableValue(contextKey, "ID_OBJECT-residenceStatus", secValue); break; } } @@ -947,6 +951,10 @@ String generateIDJson(ResidentModel resident, HashMap fileInfo identity.put(s.getId(), contextSchemaDetail.getSchemaVersion()); continue; } + + if (s.getId().contains("residenceStatus")) { + VariableManager.setVariableValue(contextKey, "ID_OBJECT-residenceStatus", resident.getResidentStatus().getCode()); + } if (updateFromAdditionalAttribute(identity, s, resident, contextKey)) { continue; @@ -992,9 +1000,8 @@ String generateIDJson(ResidentModel resident, HashMap fileInfo primaryValue = addrLines.getValue0(); secValue = addrLines.getValue1(); } - } else if (s.getSubType().toLowerCase().contains("residenceStatus")) { + } else if (s.getId().contains("residenceStatus")) { primaryValue = resident.getResidentStatus().getCode(); - VariableManager.setVariableValue(contextKey, "ID_OBJECT-residenceStatus", primaryValue); secValue = primaryValue; } else if (VariableManager.getVariableValue(contextKey, "emailId") != null && s.getId().equals(VariableManager.getVariableValue(contextKey, "emailId"))) { From 3123fd2ec3bfc7bae0bbc348060e9388971aea59 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Tue, 7 May 2024 16:33:08 +0530 Subject: [PATCH 12/57] MOSIP-31311 Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/orchestrator/Orchestrator.java | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java index 7b79c8ade..24fea50c7 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java @@ -228,16 +228,26 @@ public static Object[][] dataProvider() throws RigInternalError { HashMap globals = parser.getGlobals(); ArrayList rcUsers = parser.getRCUsers(); totalScenario = scenarios.size(); - Object[][] dataArray = new Object[scenarios.size()][5]; - for (int i = 0; i < scenarios.size(); i++) { - dataArray[i][0] = i; - dataArray[i][1] = scenarios.get(i); - dataArray[i][2] = configs; - dataArray[i][3] = globals; - dataArray[i][4] = properties; + ArrayList filteredScenarios = new ArrayList<>(); + for (Scenario scenario : scenarios) { + if (scenario.getId().equalsIgnoreCase("0") || + scenario.getId().equalsIgnoreCase("AFTER_SUITE") || + ConfigManager.isInTobeExecuteList(scenario.getId())) { + filteredScenarios.add(scenario); + } + } + + totalScenario = filteredScenarios.size(); + Object[][] dataArray = new Object[filteredScenarios.size()][5]; + for (int i = 0; i < filteredScenarios.size(); i++) { + dataArray[i][0] = i; + dataArray[i][1] = filteredScenarios.get(i); + dataArray[i][2] = configs; + dataArray[i][3] = globals; + dataArray[i][4] = properties; + } + return dataArray; } - return dataArray; - } @BeforeMethod public void beforeMethod(Method method) { @@ -378,15 +388,16 @@ private void run(int i, Scenario scenario, HashMap configs, Hash logger.info(identifier); try { - // Check whether the scenario is in the defined execute list - if (!scenario.getId().equalsIgnoreCase("0") && !scenario.getId().equalsIgnoreCase("AFTER_SUITE")) { - if (!ConfigManager.isInTobeExecuteList(scenario.getId())) { - extentTest.skip(scenario.getId() - + ": Skipping scenario as it is not in the scneario to be executed list"); - throw new SkipException(scenario.getId() - + ": Skipping scenario as it is not in the scneario to be executed list"); - } - } + /* + * // Check whether the scenario is in the defined execute list if + * (!scenario.getId().equalsIgnoreCase("0") && + * !scenario.getId().equalsIgnoreCase("AFTER_SUITE")) { if + * (!ConfigManager.isInTobeExecuteList(scenario.getId())) { + * extentTest.skip(scenario.getId() + + * ": Skipping scenario as it is not in the scneario to be executed list"); + * throw new SkipException(scenario.getId() + + * ": Skipping scenario as it is not in the scneario to be executed list"); } } + */ extentTest.info(identifier + " - running"); // extentTest.info("parameters: " + step.getParameters().toString()); From 05611c08b5405b65be7c7388ea33cbdc2ed6ca0c Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Tue, 7 May 2024 16:36:00 +0530 Subject: [PATCH 13/57] MOSIP-31311 Signed-off-by: Pankaj Godiyal --- .../testrig/dslrig/ivv/orchestrator/Orchestrator.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java index 24fea50c7..89dec869d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java @@ -388,17 +388,6 @@ private void run(int i, Scenario scenario, HashMap configs, Hash logger.info(identifier); try { - /* - * // Check whether the scenario is in the defined execute list if - * (!scenario.getId().equalsIgnoreCase("0") && - * !scenario.getId().equalsIgnoreCase("AFTER_SUITE")) { if - * (!ConfigManager.isInTobeExecuteList(scenario.getId())) { - * extentTest.skip(scenario.getId() + - * ": Skipping scenario as it is not in the scneario to be executed list"); - * throw new SkipException(scenario.getId() + - * ": Skipping scenario as it is not in the scneario to be executed list"); } } - */ - extentTest.info(identifier + " - running"); // extentTest.info("parameters: " + step.getParameters().toString()); StepInterface st = getInstanceOf(step); From a75c1b2c7ad183a6f5f3b65c462b48fcc55b454c Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Tue, 14 May 2024 09:58:22 +0530 Subject: [PATCH 14/57] MOSIP-32958 Signed-off-by: Pankaj Godiyal --- .../preparation/MosipDataSetup.java | 17 ++++++----------- .../dataprovider/variables/VariableManager.java | 12 +++++++++--- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java index 68aebcda3..73d8da3ac 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java @@ -94,8 +94,8 @@ public static List getMachineDetail(String machineId, String + "v1/masterdata/machines/"; url = url + machineId + "/ "; -// String run_context = VariableManager.getVariableValue(contextKey,"urlBase").toString() + RUN_CONTEXT; - Object o =getCache(url,contextKey); + String run_context = VariableManager.getVariableValue(contextKey,"urlBase").toString() + RUN_CONTEXT; + Object o =getCache(url,run_context); if(o != null) return( (List) o); @@ -107,7 +107,7 @@ public static List getMachineDetail(String machineId, String machines = objectMapper.readValue(typeArray.toString(), objectMapper.getTypeFactory().constructCollectionType(List.class, MosipMachineModel.class)); - setCache(url, machines,contextKey); + setCache(url, machines,run_context); } @@ -124,9 +124,9 @@ public static List searchMachineDetail(String machineId, Stri String url = VariableManager.getVariableValue(contextKey,"urlBase").toString() + "v1/masterdata/machines/search"; -// String run_context = VariableManager.getVariableValue(contextKey,"urlBase").toString() + RUN_CONTEXT; + String run_context = VariableManager.getVariableValue(contextKey,"urlBase").toString() + RUN_CONTEXT; - Object o =getCache(url,contextKey); + Object o =getCache(url,run_context); if(o != null) return( (List) o); @@ -168,7 +168,7 @@ public static List searchMachineDetail(String machineId, Stri machines = objectMapper.readValue(typeArray.toString(), objectMapper.getTypeFactory().constructCollectionType(List.class, MosipMachineModel.class)); - setCache(url, machines,contextKey); + setCache(url, machines,run_context); } @@ -377,11 +377,6 @@ public static void updateMachine(MosipMachineModel machine,String contextKey) { String url = VariableManager.getVariableValue(contextKey,"urlBase").toString() + VariableManager.getVariableValue(VariableManager.NS_DEFAULT,"machine" ).toString(); - - - - - JSONObject jsonMachine = new JSONObject(); jsonMachine.put("id", machine.getId()); jsonMachine.put("ipAddress", machine.getIpAddress()); diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/variables/VariableManager.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/variables/VariableManager.java index f2a103d2d..191794eaa 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/variables/VariableManager.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/variables/VariableManager.java @@ -115,16 +115,22 @@ public static Object getVariableValue(String contextKey, String varName) { Init(contextKey); Cache ht = null; - Object ret = null; + Object ret = null; // To do ---- new Object() + try { ht = varNameSpaces.get(contextKey); - if (ht != null) { ret = ht.get(varName); + if (ret == null && contextKey.equalsIgnoreCase(NS_DEFAULT)) { + // Cache expired , reloading the default namespace + loadNamespaceFromPropertyFile(VariableManager.CONFIG_PATH + "default.properties", + VariableManager.NS_DEFAULT); + ht = varNameSpaces.get(contextKey); + ret = ht.get(varName); + } return ret; } } catch (Exception e) { - logger.error(e.getMessage()); } return ret; From 1ad951aeb897d24133ddccca321b61b09161d576 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Thu, 16 May 2024 09:12:51 +0530 Subject: [PATCH 15/57] MOSIP-31048 Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/e2e/methods/SetContext.java | 10 +- .../dslrig/ivv/e2e/methods/SwitchContext.java | 4 +- .../ivv/orchestrator/PacketUtility.java | 4 +- .../src/main/resources/config/scenarios.json | 128 ++++++++++++++++++ .../dataprovider/PacketTemplateProvider.java | 8 +- 5 files changed, 147 insertions(+), 7 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java index e7db21910..ede80bc87 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java @@ -40,6 +40,8 @@ public void run() throws RigInternalError { String invalidEncryptedHashFlag = ""; String invalidCheckSum = ""; String invalidIdSchemaFlag = ""; + String skipBiometricClassificationFlag = ""; + String skipApplicantDocumentsFlag = ""; // neeha scenario = step.getScenario().getId() + ":" + // step.getScenario().getDescription(); HashMap map = new HashMap(); @@ -82,6 +84,12 @@ else if (value.startsWith("$$")) { if (step.getParameters().size() == 5 && step.getParameters().get(4).contains("invalidIdSchema")) //invalidIdSchema invalidIdSchemaFlag = step.getParameters().get(4); + + if (step.getParameters().size() == 5 && step.getParameters().get(4).contains("skipBiometricClassification")) //Skip individualBiometric parameter in id.json + skipBiometricClassificationFlag = step.getParameters().get(4); + + if (step.getParameters().size() == 5 && step.getParameters().get(4).contains("skipApplicantDocuments")) //Skip applicant documents in the packet + skipApplicantDocumentsFlag = step.getParameters().get(4); // consent value either "yes" or "no" if (step.getParameters().size() == 6 @@ -107,7 +115,7 @@ else if (value.startsWith("$$")) { else if (map != null) packetUtility.createContexts(negative, contextKeyValue, map, mosipVersion, generatePrivateKey, status, BaseTestCase.ApplnURI + "/", step, invalidCertFlag, consent, changeSupervisorNameToDiffCase, - invalidEncryptedHashFlag, invalidCheckSum,invalidIdSchemaFlag); + invalidEncryptedHashFlag, invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java index 956b9ddf0..5d6ec60bf 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java @@ -35,6 +35,8 @@ public void run() throws RigInternalError { String invalidEncryptedHashFlag = ""; String invalidCheckSum = ""; String invalidIdSchemaFlag = ""; + String skipBiometricClassificationFlag = ""; + String skipApplicantDocumentsFlag = ""; if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.warn("SwitchContext Arugemnt is Missing : Please pass the argument from DSL sheet"); } else { @@ -52,7 +54,7 @@ public void run() throws RigInternalError { if (step.getParameters().size() > 3) // true/false (want to generate privatekey) generatePrivateKey = Boolean.parseBoolean(step.getParameters().get(3)); if (map != null) - packetUtility.createContexts("",contextKeyValue, map, mosipVersion,generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step,invalidCertFlag,consent,supervisorFlag,invalidEncryptedHashFlag,invalidCheckSum,invalidIdSchemaFlag); + packetUtility.createContexts("",contextKeyValue, map, mosipVersion,generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step,invalidCertFlag,consent,supervisorFlag,invalidEncryptedHashFlag,invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag); else if (userAndMachineDetailParam != null) packetUtility.createContexts(contextKeyValue, userAndMachineDetailParam, mosipVersion,generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java index 6b6af388a..36776e8df 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java @@ -770,7 +770,7 @@ public String createContexts(String negative, String key, HashMap missAttribs = resident.getMissAttributes(); @@ -1141,7 +1143,6 @@ else if (s.getId().toLowerCase().contains("blood")) { String docFile = doc.getDocs().get(0); RestClient.logInfo(contextKey, DOCFILE + docFile + DTYPE + s.getSubType() + CAT + s.getId()); - JSONObject o = new JSONObject(); o.put(FORMAT, "pdf"); o.put("type", doc.getType().get(0).getDocTypeCode()); @@ -1151,12 +1152,11 @@ else if (s.getId().toLowerCase().contains("blood")) { o.put(VALUE, s.getId()); identity.put(s.getId(), o); - String outFile = fileInfo.get(RID_FOLDER)[0] + "/" + fileInfo.get(RID_FOLDER)[1]; try { // Files.copy(Paths.get(docFile), Paths.get(outFile)); + if(!VariableManager.getVariableValue(contextKey, "skipApplicantDocumentsFlag").toString().contentEquals("skipApplicantDocuments")) // Applican documents missing in packet CommonUtil.copyFileWithBuffer(Paths.get(docFile), Paths.get(outFile)); - } catch (Exception e) { logger.error(GENERATEIDJSONV2, e); } From bf78fd6bb8a46d147b5f9a44f397a9c7f397408f Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Sat, 18 May 2024 12:17:24 +0530 Subject: [PATCH 16/57] MOSIP-33057 Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/e2e/methods/CheckStatus.java | 13 +- .../dslrig/ivv/e2e/methods/GetPingHealth.java | 74 +- .../dslrig/ivv/e2e/methods/SetContext.java | 63 +- .../dslrig/ivv/e2e/methods/SwitchContext.java | 15 +- .../ivv/orchestrator/PacketUtility.java | 19 +- .../src/main/resources/config/scenarios.json | 2192 ++++++++--------- 6 files changed, 1187 insertions(+), 1189 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java index e36d5528c..49f236de3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java @@ -74,12 +74,13 @@ public void run() throws RigInternalError { public void checkStatus(String _ridStatusParam, String _expectedRidProcessed, Scenario.Step step) throws RigInternalError { String waitTime = props.getProperty("waitTime"); - List allowedParam = Arrays.asList("processed", "rejected", "failed", "reregister"); - if (!(allowedParam.contains(_ridStatusParam.toLowerCase()))) { - this.hasError = true; - throw new RigInternalError("Parameter : " + _ridStatusParam - + "not supported only allowed are [processed/rejected/failed/reregister]"); - } + /* + * List allowedParam = Arrays.asList("processed", "rejected", "failed", + * "reregister"); if (!(allowedParam.contains(_ridStatusParam.toLowerCase()))) { + * this.hasError = true; throw new RigInternalError("Parameter : " + + * _ridStatusParam + + * "not supported only allowed are [processed/rejected/failed/reregister]"); } + */ try { for (String rid : tempPridAndRid.values()) { int counter = 0; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java index 7415486e7..4388afaf0 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java @@ -16,67 +16,65 @@ import io.restassured.response.Response; public class GetPingHealth extends BaseTestCaseUtil implements StepInterface { - private static final Logger logger = Logger.getLogger(GetPingHealth.class); - - static { - if (ConfigManager.IsDebugEnabled()) - logger.setLevel(Level.ALL); - else - logger.setLevel(Level.ERROR); - } + private static final Logger logger = Logger.getLogger(GetPingHealth.class); + + static { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } @Override public void run() throws RigInternalError { - String modules = null,uri=null; + String modules = null, uri = null; if (step.getParameters().isEmpty() || step.getParameters().size() < 1) { - + modules = ""; } else { - + if (step.getParameters().size() == 1) modules = step.getParameters().get(0); else modules = ""; } - if(modules.length()>0 && modules.equalsIgnoreCase("packetcreator")) { - + if (modules.length() > 0 && modules.equalsIgnoreCase("packetcreator")) { + // Check packet creator up or not.. try { - String packetcreatorUri=baseUrl +"/actuator/health"; - String serviceStatus = checkActuatorNoAuth(packetcreatorUri); - if (serviceStatus.equalsIgnoreCase("UP") == false) { - this.hasError=true; - throw new SkipException("Packet creator Not responding"); - } - } - catch (Exception e) { + String packetcreatorUri = baseUrl + "/actuator/health"; + String serviceStatus = checkActuatorNoAuth(packetcreatorUri); + if (serviceStatus.equalsIgnoreCase("UP") == false) { + this.hasError = true; + throw new SkipException("Packet creator Not responding"); + } + } catch (Exception e) { this.hasError = true; logger.error(e.getMessage()); throw new RigInternalError("Connection Refused"); } - } - else { - uri=baseUrl + "/ping/"+ !ConfigManager.isInServiceNotDeployedList(GlobalConstants.ESIGNET); - - Response response = getRequest(uri, "Health Check",step); - JSONObject res = new JSONObject(response.asString()); - logger.info(res.toString()); - if (res.get("status").equals(true)) { - logger.info("RESPONSE=" + res.toString()); } else { - logger.error("RESPONSE=" + res.toString()); - this.hasError=true; - throw new SkipException("Health check status" + res.toString()); - } + uri = baseUrl + "/ping/" + !ConfigManager.isInServiceNotDeployedList(GlobalConstants.ESIGNET); + + Response response = getRequest(uri, "Health Check", step); + JSONObject res = new JSONObject(response.asString()); + logger.info(res.toString()); + if (res.get("status").equals(true)) { + logger.info("RESPONSE=" + res.toString()); + } else { + logger.error("RESPONSE=" + res.toString()); + this.hasError = true; + throw new SkipException("Health check status" + res.toString()); + } } } - + public static String checkActuatorNoAuth(String actuatorURL) { - Response response =null; + Response response = null; response = given().contentType(ContentType.JSON).get(actuatorURL); - if(response != null && response.getStatusCode() == 200 ) { - logger.info(response.getBody().asString()); + if (response != null && response.getStatusCode() == 200) { + logger.info(response.getBody().asString()); JSONObject jsonResponse = new JSONObject(response.getBody().asString()); return jsonResponse.getString("status"); } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java index ede80bc87..a46faad17 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java @@ -30,7 +30,7 @@ public void run() throws RigInternalError { String contextKeyValue = "dev_context"; String userAndMachineDetailParam = null; - String mosipVersion = null; +// String mosipVersion = null; boolean generatePrivateKey = Boolean.FALSE; String status = null; String negative = "valid"; @@ -64,56 +64,57 @@ else if (value.startsWith("$$")) { map = step.getScenario().getVariables(); } } - if (step.getParameters().size() > 2) { // 1@@2(mosip.version) - List version = PacketUtility.getParamsArg(step.getParameters().get(2), "@@"); - if (!(version.contains("-1"))) - mosipVersion = version.get(0) + "." + version.get(1); - } - if (step.getParameters().size() > 3) // true/false (want to generate privatekey) - generatePrivateKey = Boolean.parseBoolean(step.getParameters().get(3)); + /* + * if (step.getParameters().size() > 2) { // 1@@2(mosip.version) List + * version = PacketUtility.getParamsArg(step.getParameters().get(2), "@@"); if + * (!(version.contains("-1"))) mosipVersion = version.get(0) + "." + + * version.get(1); } + */ + if (step.getParameters().size() > 2) // true/false (want to generate privatekey) + generatePrivateKey = Boolean.parseBoolean(step.getParameters().get(2)); - if (step.getParameters().size() > 4) // deactivate - status = step.getParameters().get(4); + if (step.getParameters().size() > 3) // deactivate + status = step.getParameters().get(3); - if (step.getParameters().size() > 5) // for negative operator and supervisor - negative = step.getParameters().get(5); + if (step.getParameters().size() > 4) // for negative operator and supervisor + negative = step.getParameters().get(4); - if (step.getParameters().size() == 5 && step.getParameters().get(4).contains("true")) - invalidCertFlag = Boolean.parseBoolean(step.getParameters().get(4)); + if (step.getParameters().size() == 4 && step.getParameters().get(3).contains("true")) + invalidCertFlag = Boolean.parseBoolean(step.getParameters().get(3)); - if (step.getParameters().size() == 5 && step.getParameters().get(4).contains("invalidIdSchema")) //invalidIdSchema - invalidIdSchemaFlag = step.getParameters().get(4); + if (step.getParameters().size() == 4 && step.getParameters().get(3).contains("invalidIdSchema")) //invalidIdSchema + invalidIdSchemaFlag = step.getParameters().get(3); - if (step.getParameters().size() == 5 && step.getParameters().get(4).contains("skipBiometricClassification")) //Skip individualBiometric parameter in id.json - skipBiometricClassificationFlag = step.getParameters().get(4); + if (step.getParameters().size() == 4 && step.getParameters().get(3).contains("skipBiometricClassification")) //Skip individualBiometric parameter in id.json + skipBiometricClassificationFlag = step.getParameters().get(3); - if (step.getParameters().size() == 5 && step.getParameters().get(4).contains("skipApplicantDocuments")) //Skip applicant documents in the packet - skipApplicantDocumentsFlag = step.getParameters().get(4); + if (step.getParameters().size() == 4 && step.getParameters().get(3).contains("skipApplicantDocuments")) //Skip applicant documents in the packet + skipApplicantDocumentsFlag = step.getParameters().get(3); // consent value either "yes" or "no" - if (step.getParameters().size() == 6 - && (step.getParameters().get(5).contains("yes") || step.getParameters().get(5).contains("no"))) - consent = step.getParameters().get(5); + if (step.getParameters().size() == 5 + && (step.getParameters().get(4).contains("yes") || step.getParameters().get(4).contains("no"))) + consent = step.getParameters().get(4); // supervisorIDFlag - if (step.getParameters().size() > 6 && step.getParameters().get(6).contains("true")) - changeSupervisorNameToDiffCase = Boolean.parseBoolean(step.getParameters().get(6)); + if (step.getParameters().size() > 5 && step.getParameters().get(5).contains("true")) + changeSupervisorNameToDiffCase = Boolean.parseBoolean(step.getParameters().get(5)); // encryptedHashFlag - if (step.getParameters().size() > 7 && step.getParameters().get(7).contains("invalidEncryptedHash")) - invalidEncryptedHashFlag = step.getParameters().get(7); + if (step.getParameters().size() > 6 && step.getParameters().get(6).contains("invalidEncryptedHash")) + invalidEncryptedHashFlag = step.getParameters().get(6); // checksumFlag - if (step.getParameters().size() == 9 && step.getParameters().get(8).contains("invalidCheckSum")) - invalidCheckSum = step.getParameters().get(8); + if (step.getParameters().size() == 8 && step.getParameters().get(7).contains("invalidCheckSum")) + invalidCheckSum = step.getParameters().get(7); } PersonaDataManager.setVariableValue(step.getScenario().getId(), "PersonaID", step.getScenario().getId()); if (userAndMachineDetailParam != null) - packetUtility.createContexts(contextKeyValue, userAndMachineDetailParam, mosipVersion, generatePrivateKey, + packetUtility.createContexts(contextKeyValue, userAndMachineDetailParam, generatePrivateKey, status, BaseTestCase.ApplnURI + "/", step); else if (map != null) - packetUtility.createContexts(negative, contextKeyValue, map, mosipVersion, generatePrivateKey, status, + packetUtility.createContexts(negative, contextKeyValue, map, generatePrivateKey, status, BaseTestCase.ApplnURI + "/", step, invalidCertFlag, consent, changeSupervisorNameToDiffCase, invalidEncryptedHashFlag, invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java index 5d6ec60bf..e8b011092 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java @@ -26,7 +26,6 @@ public class SwitchContext extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError { String contextKeyValue = null; - String mosipVersion = null; boolean generatePrivateKey =Boolean.FALSE; boolean invalidCertFlag =Boolean.FALSE; HashMap map = new HashMap(); @@ -46,18 +45,14 @@ public void run() throws RigInternalError { if (userAndMachineDetailParam.startsWith("$$")) { map = step.getScenario().getVariables(); } - if (step.getParameters().size() > 2) { // 1@@2(mosip.version) - List version = PacketUtility.getParamsArg(step.getParameters().get(2), "@@"); - if (!(version.contains("-1"))) - mosipVersion = version.get(0) + "." + version.get(1); - } - if (step.getParameters().size() > 3) // true/false (want to generate privatekey) - generatePrivateKey = Boolean.parseBoolean(step.getParameters().get(3)); + + if (step.getParameters().size() > 2) // true/false (want to generate privatekey) + generatePrivateKey = Boolean.parseBoolean(step.getParameters().get(2)); if (map != null) - packetUtility.createContexts("",contextKeyValue, map, mosipVersion,generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step,invalidCertFlag,consent,supervisorFlag,invalidEncryptedHashFlag,invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag); + packetUtility.createContexts("",contextKeyValue, map, generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step,invalidCertFlag,consent,supervisorFlag,invalidEncryptedHashFlag,invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag); else if (userAndMachineDetailParam != null) - packetUtility.createContexts(contextKeyValue, userAndMachineDetailParam, mosipVersion,generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step); + packetUtility.createContexts(contextKeyValue, userAndMachineDetailParam, generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java index 36776e8df..489c10cb2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java @@ -696,7 +696,7 @@ public String createContext(String key, String baseUrl, Scenario.Step step) thro } - public String createContexts(String key, String userAndMachineDetailParam, String mosipVersion, + public String createContexts(String key, String userAndMachineDetailParam, Boolean generatePrivateKey, String status, String envbaseUrl, Scenario.Step step) throws RigInternalError { String url = this.baseUrl + "/context/server/"; Map map = new HashMap(); @@ -753,9 +753,10 @@ public String createContexts(String key, String userAndMachineDetailParam, Strin if (status != null && !status.isBlank()) { jsonReq.put("machineStatus", status); } - if (mosipVersion != null && !mosipVersion.isEmpty()) { - jsonReq.put("mosip.version", mosipVersion); - } + /* + * if (mosipVersion != null && !mosipVersion.isEmpty()) { + * jsonReq.put("mosip.version", mosipVersion); } + */ Response response = postRequest(url, jsonReq.toString(), SETCONTEXT, step); GlobalMethods.ReportRequestAndResponse("", "", url, jsonReq.toString(), response.getBody().asString()); if (!response.getBody().asString().toLowerCase().contains("true")) { @@ -766,7 +767,7 @@ public String createContexts(String key, String userAndMachineDetailParam, Strin } - public String createContexts(String negative, String key, HashMap map, String mosipVersion, + public String createContexts(String negative, String key, HashMap map, Boolean generatePrivateKey, String status, String envbaseUrl, Scenario.Step step, boolean invalidCertFlag, String consent, boolean changeSupervisorNameToDiffCase, String invalidEncryptedHashFlag, @@ -838,9 +839,11 @@ public String createContexts(String negative, String key, HashMap>>", "Input Parameters": "<<>>", "Return Value": "NA", - "Action": "$$zipPacketPath=e2e_packetcreator(LOST,$$lostTemplate)" + "Action": "$$zipPacketPath=e2e_packetcreator(LOST/*PACKET_TYPE*/,$$lostTemplate)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "NA", - "Action": "$$rid=e2e_ridsync(LOST,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(LOST/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-8": { "Description": "<<>>", @@ -1637,25 +1637,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -1667,7 +1667,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -1697,7 +1697,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -1709,7 +1709,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -1776,37 +1776,37 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST,$$personaFilePath)" + "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(LOST,$$lostTemplate)" + "Action": "$$zipPacketPath=e2e_packetcreator(LOST/*PACKET_TYPE*/,$$lostTemplate)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(LOST,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(LOST/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-8": { "Description": "<<>>", @@ -1849,25 +1849,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male,POA@@POI@@POR@@POE@@POB)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male,POA@@POI@@POR@@POE@@POB)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -1879,7 +1879,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -1910,25 +1910,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male@@false@@false@@false)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male@@false@@false@@false)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -1940,7 +1940,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -1971,25 +1971,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -2001,7 +2001,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -2025,19 +2025,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST,$$personaFilePath)" + "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-12": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(LOST,$$lostTemplate)" + "Action": "$$zipPacketPath=e2e_packetcreator(LOST/*PACKET_TYPE*/,$$lostTemplate)" }, "Step-13": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$lostRid=e2e_ridsync(LOST,$$zipPacketPath)" + "Action": "$$lostRid=e2e_ridsync(LOST/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-14": { "Description": "<<>>", @@ -2080,19 +2080,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -2104,7 +2104,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -2116,7 +2116,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -2153,43 +2153,43 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1,minor,true,Male)" + "Action": "$$childPersona=e2e_getResidentData(1,minor/*PERSONA_TYPE*/,true,Male)" }, "Step-5": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-6": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$parentZipPacketPath=e2e_packetcreator(NEW,$$parentTemplate)" + "Action": "$$parentZipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$parentTemplate)" }, "Step-8": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$parentRid=e2e_ridsync(NEW,$$parentZipPacketPath)" + "Action": "$$parentRid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$parentZipPacketPath)" }, "Step-9": { "Description": "Updates persona with parent RID", @@ -2207,19 +2207,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-12": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$childZipPacketPath=e2e_packetcreator(NEW,$$childTemplate)" + "Action": "$$childZipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$childTemplate)" }, "Step-13": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$childRid=e2e_ridsync(NEW,$$childZipPacketPath)" + "Action": "$$childRid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$childZipPacketPath)" }, "Step-14": { "Description": "Uploads multiple packets together", @@ -2231,7 +2231,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid,$$childRid,all/*EXPECTED_RIDs_TO_BE_PROCESSED*/)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid,$$childRid,all/*EXPECTED_RIDs_TO_BE_PROCESSED*/)" } }, { @@ -2256,25 +2256,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Generates OTP request", @@ -2322,7 +2322,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-14": { "Description": "Gets the UIN for the given RID", @@ -2413,19 +2413,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates persona with Biometric exception", @@ -2437,7 +2437,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -2449,7 +2449,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -2540,25 +2540,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1,adult,false,Male,rightlittleFinger)" + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Male,rightlittleFinger)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -2570,7 +2570,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -2661,25 +2661,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -2691,7 +2691,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -2745,7 +2745,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-17": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -2757,7 +2757,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-19": { "Description": "Gets the UIN for the given RID", @@ -2818,25 +2818,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -2848,7 +2848,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -2902,7 +2902,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-17": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -2914,7 +2914,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-19": { "Description": "Gets the UIN for the given RID", @@ -2975,25 +2975,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3005,7 +3005,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -3059,7 +3059,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-17": { "Description": "Generates and uploads packet skipping pre registration", @@ -3071,7 +3071,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-19": { "Description": "Gets the UIN for the given RID", @@ -3132,25 +3132,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3162,7 +3162,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -3192,7 +3192,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3204,7 +3204,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -3265,25 +3265,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3295,7 +3295,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -3325,7 +3325,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3337,7 +3337,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -3428,25 +3428,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3458,7 +3458,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -3519,25 +3519,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3549,7 +3549,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -3610,25 +3610,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3640,7 +3640,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -3670,7 +3670,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3682,7 +3682,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -3743,25 +3743,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3773,7 +3773,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -3803,7 +3803,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3815,7 +3815,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -3906,31 +3906,31 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1,minor,true,Male)" + "Action": "$$childPersona=e2e_getResidentData(1,minor/*PERSONA_TYPE*/,true,Male)" }, "Step-5": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-6": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -3942,7 +3942,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -3966,7 +3966,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Generates and uploads packet skipping pre registration", @@ -3978,7 +3978,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -4008,7 +4008,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$childPersona)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$childPersona)" }, "Step-20": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -4020,7 +4020,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid2)" }, "Step-22": { "Description": "Gets the UIN for the given RID", @@ -4081,25 +4081,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -4111,7 +4111,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -4165,7 +4165,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-17": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -4177,7 +4177,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-19": { "Description": "Gets the UIN for the given RID", @@ -4238,25 +4238,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male,leftiris@@rightIris)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male,leftiris@@rightIris)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -4268,7 +4268,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -4329,25 +4329,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -4359,7 +4359,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -4449,13 +4449,13 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details4,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details4,true/*GENERATE_PRIVATE_KEY*/)" }, "Step-23": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$newTemplate=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$newTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-24": { "Description": "Generates and uploads packet skipping pre registration", @@ -4467,7 +4467,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-26": { "Description": "Gets the UIN for the given RID", @@ -4498,25 +4498,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Generates OTP request", @@ -4564,7 +4564,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-14": { "Description": "Gets the UIN for the given RID", @@ -4588,7 +4588,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath2=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath2=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-18": { "Description": "Generates the hash for the given modalities", @@ -4606,13 +4606,13 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath2)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath2)" }, "Step-21": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid2=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid2=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-22": { "Description": "<<>>", @@ -4630,7 +4630,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(rejected,$$rid2)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$rid2)" } }, { @@ -4655,25 +4655,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -4685,7 +4685,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -4697,7 +4697,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$newTemplate=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$newTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-10": { "Description": "Generates and uploads packet skipping pre registration", @@ -4709,7 +4709,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-12": { "Description": "Gets the UIN for the given RID", @@ -4740,25 +4740,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -4770,7 +4770,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -4831,25 +4831,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -4861,7 +4861,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -4922,25 +4922,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -4952,7 +4952,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -5013,19 +5013,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates persona with Biometric exception", @@ -5037,7 +5037,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -5049,7 +5049,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -5110,25 +5110,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -5140,7 +5140,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -5201,25 +5201,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -5231,7 +5231,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -5292,25 +5292,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -5322,7 +5322,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -5383,25 +5383,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1,adult,false,Male,leftiris@@rightIris)" + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Male,leftiris@@rightIris)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -5413,7 +5413,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -5552,25 +5552,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details75,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details75,true/*GENERATE_PRIVATE_KEY*/)" }, "Step-16": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-17": { "Description": "Generates persona data for operator", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-18": { "Description": "Generates packet template based on the persona data of operator", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-19": { "Description": "Genertes and uploads operator packet with given persona and packet template skipping pre-registration step", @@ -5582,7 +5582,7 @@ "Description": "Checks the RID status against given packet processing status for operator", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-21": { "Description": "Gets the UIN for the operator", @@ -5600,31 +5600,31 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details75,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,valid/*ADD_SUPERVISOR_ID*/@@null/*SUPERVISOR_PASSWORD*/@@valid/*ADD_REGCLIENT_USER_ID*/@@null/*REGCLIENT_PASSWORD*/@@operatorBiometrics_bio_CBEFF@@supervisorBiometrics_bio_CBEFF)" + "Action": "e2e_setContext(env_context,$$details75,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,valid/*ADD_SUPERVISOR_ID*/@@null/*SUPERVISOR_PASSWORD*/@@valid/*ADD_REGCLIENT_USER_ID*/@@null/*REGCLIENT_PASSWORD*/@@operatorBiometrics_bio_CBEFF@@supervisorBiometrics_bio_CBEFF)" }, "Step-24": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-25": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath1=e2e_getPacketTemplate(NEW,$$personaFilePath1)" + "Action": "$$templatePath1=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath1)" }, "Step-26": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath1=e2e_packetcreator(NEW,$$templatePath1)" + "Action": "$$zipPacketPath1=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath1)" }, "Step-27": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid1=e2e_ridsync(NEW,$$zipPacketPath1)" + "Action": "$$rid1=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath1)" }, "Step-28": { "Description": "<<>>", @@ -5636,13 +5636,13 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details75,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details75,true/*GENERATE_PRIVATE_KEY*/)" }, "Step-30": { "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" }, "Step-31": { "Description": "Gets the UIN for the given RID", @@ -5697,31 +5697,31 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-7": { "Description": "<<>>", @@ -5733,7 +5733,7 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-9": { "Description": "<<>>", @@ -5751,7 +5751,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-12": { "Description": "Checks RID stage and stage status", @@ -5782,31 +5782,31 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1,minor,true,Male)" + "Action": "$$childPersona=e2e_getResidentData(1,minor/*PERSONA_TYPE*/,true,Male)" }, "Step-5": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-6": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate1=e2e_getPacketTemplate(NEW,$$parentPersona1)" + "Action": "$$parentTemplate1=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona1)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -5818,7 +5818,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid1)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -5842,13 +5842,13 @@ "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-13": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate2=e2e_getPacketTemplate(NEW,$$parentPersona2)" + "Action": "$$parentTemplate2=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona2)" }, "Step-14": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -5860,7 +5860,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid2)" }, "Step-16": { "Description": "Gets the UIN for the given RID", @@ -5884,7 +5884,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-20": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -5896,7 +5896,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-22": { "Description": "Gets the UIN for the given RID", @@ -5933,31 +5933,31 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-6": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate1=e2e_getPacketTemplate(NEW,$$parentPersona1)" + "Action": "$$parentTemplate1=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona1)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -5969,7 +5969,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid1)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -5999,7 +5999,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-14": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -6011,7 +6011,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-16": { "Description": "Gets the UIN for the given RID", @@ -6048,25 +6048,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -6078,7 +6078,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -6096,7 +6096,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST,$$personaFilePath)" + "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-11": { "Description": "Generates the hash for the given modalities", @@ -6108,13 +6108,13 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(LOST,$$lostTemplate)" + "Action": "$$zipPacketPath=e2e_packetcreator(LOST/*PACKET_TYPE*/,$$lostTemplate)" }, "Step-13": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$ridLost=e2e_ridsync(LOST,$$zipPacketPath)" + "Action": "$$ridLost=e2e_ridsync(LOST/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-14": { "Description": "Sets expectatation on mock ABIS", @@ -6132,7 +6132,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$ridLost)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$ridLost)" }, "Step-17": { "Description": "Gets the UIN for the given RID", @@ -6169,19 +6169,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -6193,19 +6193,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath,10)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath,10)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-8": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-9": { "Description": "<<>>", @@ -6229,7 +6229,7 @@ "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-13": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -6241,19 +6241,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION,$$personaFilePath2)" + "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$personaFilePath2)" }, "Step-15": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION,$$templatePath2,$$additionalReqId)" + "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$templatePath2,$$additionalReqId)" }, "Step-16": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION,$$zipPacketPath2,$$additionalReqId)" + "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$zipPacketPath2,$$additionalReqId)" }, "Step-17": { "Description": "<<>>", @@ -6265,7 +6265,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-19": { "Description": "Gets the UIN for the given RID", @@ -6302,13 +6302,13 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(qa4_context/*CONTEXT_KEY_VALUE*/,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(qa4_context/*CONTEXT_KEY_VALUE*/,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Skips the step", @@ -6320,13 +6320,13 @@ "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-6": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "<<>>", @@ -6338,7 +6338,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Checks RID stage and stage status", @@ -6369,43 +6369,43 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$parentZipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$parentZipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$parentRid=e2e_ridSyncRejected(NEW,$$parentZipPacketPath)" + "Action": "$$parentRid=e2e_ridSyncRejected(NEW/*PACKET_TYPE*/,$$parentZipPacketPath)" }, "Step-8": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-9": { "Description": "Updates persona with parent RID", @@ -6423,19 +6423,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-12": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$childZipPacketPath=e2e_packetcreator(NEW,$$childTemplate)" + "Action": "$$childZipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$childTemplate)" }, "Step-13": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$childRid=e2e_ridsync(NEW,$$childZipPacketPath)" + "Action": "$$childRid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$childZipPacketPath)" }, "Step-14": { "Description": "<<>>", @@ -6447,13 +6447,13 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$childRid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$childRid)" }, "Step-16": { "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$parentRid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$parentRid)" }, "Step-17": { "Description": "Checks RID stage and stage status", @@ -6490,25 +6490,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Generates OTP request", @@ -6557,37 +6557,37 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridSyncRejected(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridSyncRejected(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-8": { "Description": "<<>>", @@ -6599,7 +6599,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-10": { "Description": "Checks RID stage and stage status", @@ -6636,25 +6636,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-4": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-5": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-6": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -6666,7 +6666,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -6714,7 +6714,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(rejected,$$rid2)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$rid2)" } }, { @@ -6733,19 +6733,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-2": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-3": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-4": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -6757,7 +6757,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-6": { "Description": "Gets the UIN for the given RID", @@ -6787,7 +6787,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$newTemplate=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$newTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-11": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -6805,7 +6805,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(REJECTED,$$rid2)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$rid2)" }, "Step-14": { "Description": "Checks RID stage and stage status", @@ -6836,25 +6836,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -6866,7 +6866,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -6896,7 +6896,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -6914,7 +6914,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(rejected,$$ridNew)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$ridNew)" }, "Step-16": { "Description": "Sets expectatation on mock ABIS", @@ -6951,25 +6951,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Generates the hash for the given modalities", @@ -6987,7 +6987,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -7017,7 +7017,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(rejected,$$rid2)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$rid2)" }, "Step-14": { "Description": "Sets expectatation on mock ABIS", @@ -7054,25 +7054,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -7084,7 +7084,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -7120,7 +7120,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePathNew=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePathNew=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-14": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -7138,7 +7138,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(rejected,$$ridNew)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$ridNew)" }, "Step-17": { "Description": "Checks RID stage and stage status", @@ -7169,25 +7169,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details2,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/,null,/*SUPERVISORID_ID*/null@@null/*SUPERVISORID_PASSWORD*/@@valid/*REGCLIENT_USER_ID*/@@valid/*REGCLIENT_PASSWORD*/)" + "Action": "e2e_setContext(env_context,$$details2,true/*GENERATE_PRIVATE_KEY*/,null,/*SUPERVISORID_ID*/null@@null/*SUPERVISORID_PASSWORD*/@@valid/*REGCLIENT_USER_ID*/@@valid/*REGCLIENT_PASSWORD*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -7199,7 +7199,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -7236,19 +7236,19 @@ "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -7260,7 +7260,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -7291,25 +7291,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details2,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,valid/*SUPERVISOR_ID*/@@invalid/*SUPERVISOR_PASSWORD*/@@valid/*REGCLIENT_USER_ID*/@@valid/*REGCLIENT_PASSWORD*/)" + "Action": "e2e_setContext(env_context,$$details2,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,valid/*SUPERVISOR_ID*/@@invalid/*SUPERVISOR_PASSWORD*/@@valid/*REGCLIENT_USER_ID*/@@valid/*REGCLIENT_PASSWORD*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -7321,7 +7321,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -7352,25 +7352,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details2,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,valid/*SUPERVISOR_ID*/@@valid/*SUPERVISOR_PASSWORD*/@@null/*REGCLIENT_USER_ID*/@@null/*REGCLIENT_PASSWORD*/)" + "Action": "e2e_setContext(env_context,$$details2,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,valid/*SUPERVISOR_ID*/@@valid/*SUPERVISOR_PASSWORD*/@@null/*REGCLIENT_USER_ID*/@@null/*REGCLIENT_PASSWORD*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -7382,7 +7382,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -7413,25 +7413,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details2,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,valid/*SUPERVISOR_ID*/@@valid/*SUPERVISOR_PASSWORD*/@@invalid/*REGCLIENT_USER_ID*/@@valid/*REGCLIENT_PASSWORD*/)" + "Action": "e2e_setContext(env_context,$$details2,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,valid/*SUPERVISOR_ID*/@@valid/*SUPERVISOR_PASSWORD*/@@invalid/*REGCLIENT_USER_ID*/@@valid/*REGCLIENT_PASSWORD*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -7443,7 +7443,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -7480,19 +7480,19 @@ "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -7504,7 +7504,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -7535,25 +7535,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,true/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -7565,7 +7565,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -7583,31 +7583,31 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,null/*SUPERVISOR_ID*/@@null/*SUPERVISOR_PASSWORD*/@@null/*REGCLIENT_ID*/@@null/*REGCLIENT_PASSWORD*/@@OperatorBiometrics_bio_CBEFF@@SupervisorBiometrics_bio_CBEFF)" + "Action": "e2e_setContext(env_context,$$details1,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,null/*SUPERVISOR_ID*/@@null/*SUPERVISOR_PASSWORD*/@@null/*REGCLIENT_ID*/@@null/*REGCLIENT_PASSWORD*/@@OperatorBiometrics_bio_CBEFF@@SupervisorBiometrics_bio_CBEFF)" }, "Step-11": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-12": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-14": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid1=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid1=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-15": { "Description": "<<>>", @@ -7619,7 +7619,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid1)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid1)" }, "Step-17": { "Description": "Checks RID stage and stage status", @@ -7650,25 +7650,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,true/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -7680,7 +7680,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -7704,25 +7704,25 @@ "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-12": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-14": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-15": { "Description": "<<>>", @@ -7734,7 +7734,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-17": { "Description": "Checks RID stage and stage status", @@ -7850,19 +7850,19 @@ "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-17": { "Description": "Generates persona data for operator", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-18": { "Description": "Generates packet template based on the persona data of operator", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-19": { "Description": "Genertes and uploads operator packet with given persona and packet template skipping pre-registration step", @@ -7874,7 +7874,7 @@ "Description": "Checks the RID status against given packet processing status for opertaor", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-21": { "Description": "Gets the UIN for the given RID of operator", @@ -7892,31 +7892,31 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details76,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,valid/*SUPERVISOR_ID*/@@null/*SUPERVISOR_PASSWORD*/@@null/*REGCLIENT_USER_ID*/@@null/*REGCLIENT_PASSWORD*/@@null/*OPERATOR_CBEFF*/@@supervisorBiometrics_bio_CBEFF)" + "Action": "e2e_setContext(env_context,$$details76,true/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,valid/*SUPERVISOR_ID*/@@null/*SUPERVISOR_PASSWORD*/@@null/*REGCLIENT_USER_ID*/@@null/*REGCLIENT_PASSWORD*/@@null/*OPERATOR_CBEFF*/@@supervisorBiometrics_bio_CBEFF)" }, "Step-24": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-25": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath1=e2e_getPacketTemplate(NEW,$$personaFilePath1)" + "Action": "$$templatePath1=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath1)" }, "Step-26": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath1=e2e_packetcreator(NEW,$$templatePath1)" + "Action": "$$zipPacketPath1=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath1)" }, "Step-27": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid1=e2e_ridsync(NEW,$$zipPacketPath1)" + "Action": "$$rid1=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath1)" }, "Step-28": { "Description": "<<>>", @@ -7928,13 +7928,13 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details76,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details76,true/*GENERATE_PRIVATE_KEY*/)" }, "Step-30": { "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" }, "Step-31": { "Description": "Gets the UIN for the given RID", @@ -7989,25 +7989,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Generates OTP request", @@ -8067,7 +8067,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-16": { "Description": "Gets the UIN for the given RID", @@ -8104,25 +8104,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Generates OTP request", @@ -8176,7 +8176,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -8213,25 +8213,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Generates OTP request", @@ -8279,7 +8279,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-14": { "Description": "Gets the UIN for the given RID", @@ -8303,7 +8303,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(rejected,$$rid2)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$rid2)" }, "Step-18": { "Description": "Checks RID stage and stage status", @@ -8653,7 +8653,7 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$details53=e2e_Machine(UPDATE,$$details531,531/*CENTER_INDEX*/)" + "Action": "$$details53=e2e_Machine(UPDATE/*PACKET_TYPE*/,$$details531,531/*CENTER_INDEX*/)" }, "Step-32": { "Description": "<<>>", @@ -8665,7 +8665,7 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$details53=e2e_Machine(UPDATE,$$details53,53/*CENTER_INDEX*/)" + "Action": "$$details53=e2e_Machine(UPDATE/*PACKET_TYPE*/,$$details53,53/*CENTER_INDEX*/)" }, "Step-34": { "Description": "Decomissions the machine", @@ -9306,25 +9306,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Generates the hash for the given modalities", @@ -9348,7 +9348,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-10": { "Description": "Gets the UIN for the given RID", @@ -9391,25 +9391,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Generates the hash for the given modalities", @@ -9433,7 +9433,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-10": { "Description": "Gets the UIN for the given RID", @@ -9476,25 +9476,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male,leftIris@@rightIris@@face)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male,leftIris@@rightIris@@face)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -9506,7 +9506,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -9536,7 +9536,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -9548,7 +9548,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -9723,19 +9723,19 @@ "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-17": { "Description": "Generates persona data of operator", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-18": { "Description": "Generates packet template based on the persona data of operator", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-19": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -9747,7 +9747,7 @@ "Description": "Checks the RID status against given packet processing status for operator", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-21": { "Description": "Gets the UIN for the given RID of operator", @@ -9771,25 +9771,25 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$personaFilePath1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-25": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath1=e2e_getPacketTemplate(NEW,$$personaFilePath1)" + "Action": "$$templatePath1=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath1)" }, "Step-26": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath1=e2e_packetcreator(NEW,$$templatePath1)" + "Action": "$$zipPacketPath1=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath1)" }, "Step-27": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid1=e2e_ridsync(NEW,$$zipPacketPath1)" + "Action": "$$rid1=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath1)" }, "Step-28": { "Description": "<<>>", @@ -9807,7 +9807,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" }, "Step-31": { "Description": "Gets the UIN for the given RID", @@ -9862,25 +9862,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false,true/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -9892,7 +9892,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(reregister/*PACKET_STATUS*/,$$rid)" } }, { @@ -9917,19 +9917,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -9941,19 +9941,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath,15/*BIOMETRIC_QUALITY_SCORE*/)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath,15/*BIOMETRIC_QUALITY_SCORE*/)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-8": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-9": { "Description": "<<>>", @@ -9965,25 +9965,25 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-11": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION,$$personaFilePath2)" + "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$personaFilePath2)" }, "Step-12": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION,$$templatePath2,11111111111111111111111111111)" + "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$templatePath2,11111111111111111111111111111)" }, "Step-13": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION,$$zipPacketPath2,11111111111111111111111111111/*REQUEST_INFO_FOR_CORRECTION_PACKET*/)" + "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$zipPacketPath2,11111111111111111111111111111/*REQUEST_INFO_FOR_CORRECTION_PACKET*/)" }, "Step-14": { "Description": "<<>>", @@ -10014,13 +10014,13 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-4": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -10032,19 +10032,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath,10/*BIOMETRIC_QUALITY_SCORE*/)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath,10/*BIOMETRIC_QUALITY_SCORE*/)" }, "Step-6": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-8": { "Description": "<<>>", @@ -10062,13 +10062,13 @@ "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath1=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-11": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath1=e2e_getPacketTemplate(BIOMETRIC_CORRECTION,$$personaFilePath1)" + "Action": "$$templatePath1=e2e_getPacketTemplate(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$personaFilePath1)" }, "Step-12": { "Description": "Generates the hash for the given modalities", @@ -10086,13 +10086,13 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath1=e2e_packetcreator(BIOMETRIC_CORRECTION,$$templatePath1,$$additionalReqId)" + "Action": "$$zipPacketPath1=e2e_packetcreator(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$templatePath1,$$additionalReqId)" }, "Step-15": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid1=e2e_ridsync(BIOMETRIC_CORRECTION,$$zipPacketPath1,$$additionalReqId)" + "Action": "$$rid1=e2e_ridsync(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$zipPacketPath1,$$additionalReqId)" }, "Step-16": { "Description": "<<>>", @@ -10104,7 +10104,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" } }, { @@ -10129,19 +10129,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -10153,19 +10153,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath,10/*BIOMETRIC_QUALITY_SCORE*/)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath,10/*BIOMETRIC_QUALITY_SCORE*/)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-8": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-9": { "Description": "<<>>", @@ -10189,25 +10189,25 @@ "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-13": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION,$$personaFilePath2)" + "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$personaFilePath2)" }, "Step-14": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION,$$templatePath2,$$additionalReqId)" + "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$templatePath2,$$additionalReqId)" }, "Step-15": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION,$$zipPacketPath2,$$additionalReqId)" + "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$zipPacketPath2,$$additionalReqId)" }, "Step-16": { "Description": "<<>>", @@ -10219,7 +10219,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-18": { "Description": "Gets the UIN for the given RID", @@ -10231,25 +10231,25 @@ "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath3=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath3=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-20": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath3=e2e_getPacketTemplate(BIOMETRIC_CORRECTION,$$personaFilePath3)" + "Action": "$$templatePath3=e2e_getPacketTemplate(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$personaFilePath3)" }, "Step-21": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath3=e2e_packetcreator(BIOMETRIC_CORRECTION,$$templatePath3,$$additionalReqId)" + "Action": "$$zipPacketPath3=e2e_packetcreator(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$templatePath3,$$additionalReqId)" }, "Step-22": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid3=e2e_ridsync(BIOMETRIC_CORRECTION,$$zipPacketPath3,$$additionalReqId)" + "Action": "$$rid3=e2e_ridsync(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$zipPacketPath3,$$additionalReqId)" }, "Step-23": { "Description": "<<>>", @@ -10286,19 +10286,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -10310,19 +10310,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath,15/*BIOMETRIC_QUALITY_SCORE*/)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath,15/*BIOMETRIC_QUALITY_SCORE*/)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-8": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-9": { "Description": "<<>>", @@ -10334,7 +10334,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-11": { "Description": "Checks RID stage and stage status", @@ -10365,19 +10365,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -10389,19 +10389,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath,15/*BIOMETRIC_QUALITY_SCORE*/)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath,15/*BIOMETRIC_QUALITY_SCORE*/)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-8": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-9": { "Description": "<<>>", @@ -10425,25 +10425,25 @@ "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-13": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION,$$personaFilePath2,20/*BIOMETRIC_QUALITY_SCORE*/)" + "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$personaFilePath2,20/*BIOMETRIC_QUALITY_SCORE*/)" }, "Step-14": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION,$$templatePath2,$$additionalReqId)" + "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$templatePath2,$$additionalReqId)" }, "Step-15": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION,$$zipPacketPath2,$$additionalReqId)" + "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$zipPacketPath2,$$additionalReqId)" }, "Step-16": { "Description": "<<>>", @@ -10455,7 +10455,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-18": { "Description": "Gets additional request ID for correction packet", @@ -10467,25 +10467,25 @@ "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath3=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath3=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-20": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath3=e2e_getPacketTemplate(BIOMETRIC_CORRECTION,$$personaFilePath3,30/*BIOMETRIC_QUALITY_SCORE*/)" + "Action": "$$templatePath3=e2e_getPacketTemplate(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$personaFilePath3,30/*BIOMETRIC_QUALITY_SCORE*/)" }, "Step-21": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath3=e2e_packetcreator(BIOMETRIC_CORRECTION,$$templatePath3,$$additionalReqId2)" + "Action": "$$zipPacketPath3=e2e_packetcreator(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$templatePath3,$$additionalReqId2)" }, "Step-22": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid3=e2e_ridsync(BIOMETRIC_CORRECTION,$$zipPacketPath3,$$additionalReqId2)" + "Action": "$$rid3=e2e_ridsync(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$zipPacketPath3,$$additionalReqId2)" }, "Step-23": { "Description": "<<>>", @@ -10497,13 +10497,13 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid3)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid3)" }, "Step-25": { "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(rejected,$$rid)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$rid)" } }, { @@ -10528,19 +10528,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -10552,19 +10552,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath,15/*BIOMETRIC_QUALITY_SCORE*/)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath,15/*BIOMETRIC_QUALITY_SCORE*/)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-8": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-9": { "Description": "<<>>", @@ -10588,19 +10588,19 @@ "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-13": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION,$$personaFilePath2)" + "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$personaFilePath2)" }, "Step-14": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION,$$templatePath2,$$additionalReqId)" + "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$templatePath2,$$additionalReqId)" }, "Step-15": { "Description": "Waits for given period in seconds", @@ -10612,7 +10612,7 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION,$$zipPacketPath2,$$additionalReqId)" + "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$zipPacketPath2,$$additionalReqId)" }, "Step-17": { "Description": "<<>>", @@ -10624,7 +10624,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-19": { "Description": "Gets the UIN for the given RID", @@ -10655,19 +10655,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -10679,19 +10679,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath,15/*BIOMETRIC_QUALITY_SCORE*/)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath,15/*BIOMETRIC_QUALITY_SCORE*/)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-8": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-9": { "Description": "<<>>", @@ -10715,19 +10715,19 @@ "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath2=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-13": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION,$$personaFilePath2)" + "Action": "$$templatePath2=e2e_getPacketTemplate(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$personaFilePath2)" }, "Step-14": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION,$$templatePath2,$$additionalReqId)" + "Action": "$$zipPacketPath2=e2e_packetcreator(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$templatePath2,$$additionalReqId)" }, "Step-15": { "Description": "Waits for given period in seconds", @@ -10739,7 +10739,7 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION,$$zipPacketPath2,$$additionalReqId)" + "Action": "$$rid2=e2e_ridsync(BIOMETRIC_CORRECTION/*PACKET_TYPE*/,$$zipPacketPath2,$$additionalReqId)" }, "Step-17": { "Description": "<<>>", @@ -10751,7 +10751,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-19": { "Description": "Gets the UIN for the given RID", @@ -10782,31 +10782,31 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1,minor,true,Male)" + "Action": "$$childPersona=e2e_getResidentData(1,minor/*PERSONA_TYPE*/,true,Male)" }, "Step-5": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-6": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -10818,7 +10818,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -10842,7 +10842,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -10854,7 +10854,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -10890,7 +10890,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(rejected,$$childRid2)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$childRid2)" } }, { @@ -10915,19 +10915,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -10945,7 +10945,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-8": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -10957,7 +10957,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-10": { "Description": "Gets the UIN for the given RID", @@ -11006,19 +11006,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -11036,7 +11036,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-8": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11048,7 +11048,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-10": { "Description": "Gets the UIN for the given RID", @@ -11097,25 +11097,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11133,7 +11133,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -11151,19 +11151,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/@@99/*SWITCH_DEMOGRAPHIC_DATA*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/@@99/*SWITCH_DEMOGRAPHIC_DATA*/)" }, "Step-12": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-13": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePathNew=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePathNew=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-14": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11181,7 +11181,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-17": { "Description": "Gets the UIN for the given RID", @@ -11218,19 +11218,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -11254,7 +11254,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-9": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11272,7 +11272,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" }, "Step-12": { "Description": "Gets the UIN for the given RID", @@ -11290,13 +11290,13 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/@@99/*SWITCH_DEMOGRAPHIC_DATA*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/@@99/*SWITCH_DEMOGRAPHIC_DATA*/)" }, "Step-15": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-16": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -11320,7 +11320,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePathNew=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePathNew=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-20": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11338,7 +11338,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-23": { "Description": "Gets the UIN for the given RID", @@ -11375,25 +11375,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@false@@true/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@false@@true/*FACE_BIOMETRIC_FLAG*/)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11405,7 +11405,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -11436,25 +11436,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GENERATE_PRIVATE_KEY*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@false/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GENERATE_PRIVATE_KEY*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@false/*FACE_BIOMETRIC_FLAG*/)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11491,25 +11491,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11521,7 +11521,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -11539,7 +11539,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -11551,7 +11551,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11563,7 +11563,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -11600,25 +11600,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11630,7 +11630,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -11648,7 +11648,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@false/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@false/*FACE_BIOMETRIC_FLAG*/)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -11660,7 +11660,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11672,7 +11672,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(REREGISTER,$$childRid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Checks RID stage and stage status", @@ -11703,25 +11703,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11733,7 +11733,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -11751,7 +11751,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -11763,7 +11763,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11775,7 +11775,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Checks RID stage and stage status", @@ -11806,25 +11806,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11836,7 +11836,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -11854,7 +11854,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -11866,7 +11866,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11878,7 +11878,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -11921,25 +11921,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -11951,7 +11951,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -11969,7 +11969,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@false/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@false/*FACE_BIOMETRIC_FLAG*/)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -11981,7 +11981,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12018,25 +12018,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12048,7 +12048,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -12066,7 +12066,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -12078,7 +12078,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12090,7 +12090,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -12181,25 +12181,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12211,7 +12211,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -12229,7 +12229,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -12241,7 +12241,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12253,7 +12253,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -12320,25 +12320,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12350,7 +12350,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -12368,7 +12368,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -12380,7 +12380,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12392,7 +12392,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -12404,7 +12404,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST,$$childPersona)" + "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST/*PACKET_TYPE*/,$$childPersona)" }, "Step-17": { "Description": "Generates the hash for the given modalities", @@ -12422,13 +12422,13 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(LOST,$$lostTemplate)" + "Action": "$$zipPacketPath=e2e_packetcreator(LOST/*PACKET_TYPE*/,$$lostTemplate)" }, "Step-20": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$ridLost=e2e_ridsync(LOST,$$zipPacketPath)" + "Action": "$$ridLost=e2e_ridsync(LOST/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-21": { "Description": "<<>>", @@ -12440,7 +12440,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$ridLost)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$ridLost)" }, "Step-23": { "Description": "Gets the UIN for the given RID", @@ -12477,25 +12477,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12507,7 +12507,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -12525,7 +12525,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST,$$personaFilePath)" + "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-11": { "Description": "Generates the hash for the given modalities", @@ -12537,13 +12537,13 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(LOST,$$lostTemplate)" + "Action": "$$zipPacketPath=e2e_packetcreator(LOST/*PACKET_TYPE*/,$$lostTemplate)" }, "Step-13": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$ridLost=e2e_ridsync(LOST,$$zipPacketPath)" + "Action": "$$ridLost=e2e_ridsync(LOST/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-14": { "Description": "Sets expectatation on mock ABIS", @@ -12561,7 +12561,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(rejected,$$ridLost)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$ridLost)" } }, { @@ -12586,31 +12586,31 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-6": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-7": { "Description": "Generates the hash for the given modalities", @@ -12628,13 +12628,13 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$parentZipPacketPath=e2e_packetcreator(NEW,$$parentTemplate)" + "Action": "$$parentZipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$parentTemplate)" }, "Step-10": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$parentRid=e2e_ridsync(NEW,$$parentZipPacketPath)" + "Action": "$$parentRid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$parentZipPacketPath)" }, "Step-11": { "Description": "Updates persona with parent RID", @@ -12652,19 +12652,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-14": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$childZipPacketPath=e2e_packetcreator(NEW,$$childTemplate)" + "Action": "$$childZipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$childTemplate)" }, "Step-15": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$childRid=e2e_ridsync(NEW,$$childZipPacketPath)" + "Action": "$$childRid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$childZipPacketPath)" }, "Step-16": { "Description": "Uploads multiple packets", @@ -12682,13 +12682,13 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(rejected,$$parentRid)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$parentRid)" }, "Step-19": { "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(rejected,$$childRid)" + "Action": "e2e_checkStatus(REJECTED/*PACKET_STATUS*/,$$childRid)" } }, { @@ -12713,25 +12713,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12743,7 +12743,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -12774,25 +12774,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male,rightlittleFinger)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male,rightlittleFinger)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12804,7 +12804,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -12865,25 +12865,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12895,7 +12895,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -12913,7 +12913,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -12925,7 +12925,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -12937,7 +12937,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -12992,25 +12992,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details can be found in the parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -13022,7 +13022,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -13040,7 +13040,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -13052,7 +13052,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -13064,7 +13064,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -13137,25 +13137,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -13167,7 +13167,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -13185,7 +13185,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST,$$personaFilePath)" + "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-11": { "Description": "Generates the hash for the given modalities", @@ -13197,13 +13197,13 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(LOST,$$lostTemplate)" + "Action": "$$zipPacketPath=e2e_packetcreator(LOST/*PACKET_TYPE*/,$$lostTemplate)" }, "Step-13": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$ridLost=e2e_ridsync(LOST,$$zipPacketPath)" + "Action": "$$ridLost=e2e_ridsync(LOST/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-14": { "Description": "Sets expectatation on mock ABIS", @@ -13221,7 +13221,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$ridLost)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$ridLost)" }, "Step-17": { "Description": "Gets the UIN for the given RID", @@ -13251,7 +13251,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$newTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$newTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-22": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -13263,7 +13263,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-24": { "Description": "Gets the UIN for the given RID", @@ -13312,25 +13312,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -13342,7 +13342,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -13360,7 +13360,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST,$$personaFilePath)" + "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-11": { "Description": "Generates the hash for the given modalities", @@ -13372,13 +13372,13 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(LOST,$$lostTemplate)" + "Action": "$$zipPacketPath=e2e_packetcreator(LOST/*PACKET_TYPE*/,$$lostTemplate)" }, "Step-13": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$ridLost=e2e_ridsync(LOST,$$zipPacketPath)" + "Action": "$$ridLost=e2e_ridsync(LOST/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-14": { "Description": "Sets expectatation on mock ABIS", @@ -13396,7 +13396,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$ridLost)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$ridLost)" }, "Step-17": { "Description": "Gets the UIN for the given RID", @@ -13426,7 +13426,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$newTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$newTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-22": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -13438,7 +13438,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-24": { "Description": "Gets the UIN for the given RID", @@ -13487,31 +13487,31 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates the persona file", "Input Parameters": "Details can be found in the parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-6": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -13523,7 +13523,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -13547,7 +13547,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Sends OTP request", @@ -13595,7 +13595,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-21": { "Description": "Gets the UIN for the given RID", @@ -13662,25 +13662,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath,80/*BIOMETRIC_QUALITY_SCORE*/,false/*GENERATE_VALID_CBEFF_FLAG*/)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath,80/*BIOMETRIC_QUALITY_SCORE*/,false/*GENERATE_VALID_CBEFF_FLAG*/)" }, "Step-6": { "Description": "Generates and uploads packet with invalid CBEFF", @@ -13692,7 +13692,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(REREGISTER,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -13723,19 +13723,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates persona with UIN", @@ -13747,7 +13747,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -13759,7 +13759,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(REREGISTER,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Checks RID stage and stage status", @@ -13790,19 +13790,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates persona with Biometric exception", @@ -13814,7 +13814,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -13826,7 +13826,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -13863,19 +13863,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details can be found in the parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates persona with Biometric exception", @@ -13887,7 +13887,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -13899,7 +13899,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -13917,7 +13917,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-12": { "Description": "Updates persona with Biometric exception", @@ -13935,7 +13935,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-15": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -13947,7 +13947,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-17": { "Description": "Gets the UIN for the given RID", @@ -13984,25 +13984,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details can be found in the parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14014,7 +14014,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -14032,7 +14032,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-11": { "Description": "Updates persona with Biometric exception", @@ -14050,7 +14050,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-14": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14062,7 +14062,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-16": { "Description": "Gets the UIN for the given RID", @@ -14099,19 +14099,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates persona with Biometric exception", @@ -14123,7 +14123,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14135,7 +14135,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -14172,25 +14172,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details can be found in the parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14202,7 +14202,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -14220,7 +14220,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-11": { "Description": "Updates persona with Biometric exception", @@ -14238,7 +14238,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-14": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14250,7 +14250,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-16": { "Description": "Gets the UIN for the given RID", @@ -14287,19 +14287,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details can be found in the parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates persona with Biometric exception", @@ -14311,7 +14311,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14323,7 +14323,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -14341,7 +14341,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" }, "Step-12": { "Description": "Updates persona data with gaudian details", @@ -14353,7 +14353,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-14": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14365,7 +14365,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-16": { "Description": "Gets the UIN for the given RID", @@ -14408,25 +14408,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14438,7 +14438,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -14468,7 +14468,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14480,7 +14480,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -14517,25 +14517,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14547,7 +14547,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -14571,7 +14571,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-12": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14583,7 +14583,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-14": { "Description": "Gets the UIN for the given RID", @@ -14620,25 +14620,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details can be found in the parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14650,7 +14650,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -14668,7 +14668,7 @@ "Description": "Generates persona data", "Input Parameters": "Details in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -14680,7 +14680,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14692,7 +14692,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -14722,7 +14722,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$childPersona)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$childPersona)" }, "Step-20": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14734,7 +14734,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-22": { "Description": "Gets the UIN for the given RID", @@ -14777,25 +14777,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14807,7 +14807,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -14825,7 +14825,7 @@ "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -14837,7 +14837,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14849,7 +14849,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -14879,7 +14879,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$childPersona)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$childPersona)" }, "Step-20": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14891,7 +14891,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-22": { "Description": "Gets the UIN for the given RID", @@ -14934,25 +14934,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -14964,7 +14964,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -14994,7 +14994,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15006,7 +15006,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -15079,25 +15079,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15109,7 +15109,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -15139,7 +15139,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15151,7 +15151,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -15224,25 +15224,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15254,7 +15254,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -15284,19 +15284,19 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST,$$personaFilePath)" + "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(LOST,$$lostTemplate)" + "Action": "$$zipPacketPath=e2e_packetcreator(LOST/*PACKET_TYPE*/,$$lostTemplate)" }, "Step-14": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$ridLost=e2e_ridsync(LOST,$$zipPacketPath)" + "Action": "$$ridLost=e2e_ridsync(LOST/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-15": { "Description": "Generates the hash for the given modalities", @@ -15320,7 +15320,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$ridLost)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$ridLost)" }, "Step-19": { "Description": "Gets the UIN for the given RID", @@ -15357,19 +15357,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Female)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Female)" }, "Step-5": { "Description": "Get the block listed word>", @@ -15387,7 +15387,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-8": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15399,7 +15399,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-10": { "Description": "Checks RID stage and stage status", @@ -15430,19 +15430,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates persona with Biometric exception", @@ -15454,7 +15454,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15466,7 +15466,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -15503,25 +15503,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15533,7 +15533,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -15551,7 +15551,7 @@ "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor,true/*GUARDIAN_FLAG*/,Male)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" }, "Step-11": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -15569,7 +15569,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-14": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15581,7 +15581,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-16": { "Description": "Gets the UIN for the given RID", @@ -15618,25 +15618,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15648,7 +15648,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -15666,7 +15666,7 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" }, "Step-11": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -15684,7 +15684,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-14": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15696,7 +15696,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" }, "Step-16": { "Description": "Gets the UIN for the given RID", @@ -15739,19 +15739,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -15763,7 +15763,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15775,7 +15775,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -15812,19 +15812,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -15836,7 +15836,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15848,7 +15848,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(REREGISTER,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Checks RID stage and stage status", @@ -15879,19 +15879,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates persona with Biometric exception", @@ -15903,7 +15903,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15915,7 +15915,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -15939,7 +15939,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -15951,7 +15951,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -15988,25 +15988,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16018,7 +16018,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -16042,7 +16042,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-12": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16054,7 +16054,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-14": { "Description": "<<>>", @@ -16091,19 +16091,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates persona with Biometric exception", @@ -16115,7 +16115,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16127,7 +16127,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -16151,7 +16151,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE,$$personaFilePath)" + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16163,7 +16163,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid2)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -16200,25 +16200,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16230,7 +16230,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -16273,25 +16273,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/GENERATE_PRIVATE_KEY/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,yes/*CONSENT_FLAG*/)" + "Action": "e2e_setContext(env_context,$$details1,false/GENERATE_PRIVATE_KEY/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,yes/*CONSENT_FLAG*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16303,7 +16303,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -16340,25 +16340,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,no/*CONSENT_FLAG*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,no/*CONSENT_FLAG*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16370,7 +16370,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" } }, { @@ -16395,25 +16395,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16425,7 +16425,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -16455,7 +16455,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$newTemplate=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$newTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16467,7 +16467,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid2)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid2)" } }, { @@ -16558,19 +16558,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details6,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details6,true/*GENERATE_PRIVATE_KEY*/)" }, "Step-14": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-15": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-16": { "Description": "<<>>", @@ -16588,13 +16588,13 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-19": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-20": { "Description": "<<>>", @@ -16697,25 +16697,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details6,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details6,true/*GENERATE_PRIVATE_KEY*/)" }, "Step-14": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-15": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-16": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-17": { "Description": "<<>>", @@ -16733,7 +16733,7 @@ "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-20": { "Description": "<<>>", @@ -16770,19 +16770,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,null/*CONSENT_FLAG*/,true/*SWITCH_CASE_FOR_SUPERVISOR_NAME*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,null/*CONSENT_FLAG*/,true/*SWITCH_CASE_FOR_SUPERVISOR_NAME*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates persona with Biometric exception", @@ -16794,7 +16794,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16806,7 +16806,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Gets the UIN for the given RID", @@ -16843,13 +16843,13 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", @@ -16861,7 +16861,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16873,7 +16873,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -16910,13 +16910,13 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", @@ -16928,7 +16928,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -16940,7 +16940,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -16977,19 +16977,19 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona data", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Updates Demo graphic details and biometric in the persona file", @@ -17001,7 +17001,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -17013,7 +17013,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(REREGISTER,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-9": { "Description": "Checks RID stage and stage status", @@ -17044,25 +17044,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW,$$parentPersona)" + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -17074,7 +17074,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$parentRid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -17092,7 +17092,7 @@ "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" }, "Step-11": { "Description": "Updates persona data with gaudian details", @@ -17104,7 +17104,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$childTemplate=e2e_getPacketTemplate(NEW,$$childPersona)" + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" }, "Step-13": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -17116,7 +17116,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$childRid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid1)" }, "Step-15": { "Description": "Gets the UIN for the given RID", @@ -17183,13 +17183,13 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,null/*CONSENT_FLAG*/,null/*SWITCH_CASE_FOR_SUPERVISOR_NAME*/,invalidEncryptedHash)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,null/*CONSENT_FLAG*/,null/*SWITCH_CASE_FOR_SUPERVISOR_NAME*/,invalidEncryptedHash)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", @@ -17201,7 +17201,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -17238,37 +17238,37 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,null/*CONSENT_FLAG*/,null/*SWITCH_CASE_FOR_SUPERVISOR_NAME*/,null/*UPLOAD_PACKET_INVALID_ENCRYPTED_HASH_FLAG*/,invalidCheckSum)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/,null/*CONSENT_FLAG*/,null/*SWITCH_CASE_FOR_SUPERVISOR_NAME*/,null/*UPLOAD_PACKET_INVALID_ENCRYPTED_HASH_FLAG*/,invalidCheckSum)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details can be found in the parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Female)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Female)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-8": { "Description": "<<>>", @@ -17299,25 +17299,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -17329,7 +17329,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -17353,7 +17353,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath1=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath1=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-12": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -17365,7 +17365,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" }, "Step-14": { "Description": "Gets the UIN for the given RID", @@ -17402,37 +17402,37 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridSyncRejected(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridSyncRejected(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-8": { "Description": "<<>>", @@ -17444,7 +17444,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-10": { "Description": "Checks RID stage and stage status", @@ -17456,7 +17456,7 @@ "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$newTemplate=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$newTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-12": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -17468,7 +17468,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" }, "Step-14": { "Description": "Gets the UIN for the given RID", @@ -17505,25 +17505,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "<<>>", @@ -17535,7 +17535,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -17547,7 +17547,7 @@ "Description": "Generates packet template", "Input Parameters": "Process and persona file path", "Return Value": "Template file path", - "Action": "$$newTemplate=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$newTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-10": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -17559,7 +17559,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid1)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" }, "Step-12": { "Description": "Gets the UIN for the given RID", @@ -17662,7 +17662,7 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details156,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details156,true/*GENERATE_PRIVATE_KEY*/)" }, "Step-14": { "Description": "Deletes center mapping", @@ -17686,25 +17686,25 @@ "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-18": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-19": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-20": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-21": { "Description": "<<>>", @@ -17753,13 +17753,13 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Create and activate holiday", @@ -17771,13 +17771,13 @@ "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1,adult,false,Female)" + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" }, "Step-6": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -17795,7 +17795,7 @@ "Description": "Checkes the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-10": { "Description": "Checks RID stage and stage status", @@ -17892,7 +17892,7 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details8,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details8,true/*GENERATE_PRIVATE_KEY*/)" }, "Step-14": { "Description": "<<>>", @@ -17904,25 +17904,25 @@ "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-16": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-17": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-18": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "<<>>", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-19": { "Description": "<<>>", @@ -17977,25 +17977,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/,invalidIdSchema/*INVALID_SCHEMA_VERSION*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,invalidIdSchema/*INVALID_SCHEMA_VERSION*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1,adult,false,Female)" + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -18032,25 +18032,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult,false/*GUARDIAN_FLAG*/,Male)" + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -18062,7 +18062,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -18123,25 +18123,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates the persona file", "Input Parameters": "Details are in parameters in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1,adult,false,Male,rightlittleFinger)" + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Male,rightlittleFinger)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -18153,7 +18153,7 @@ "Description": "Checks the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -18256,19 +18256,19 @@ "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-5": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1,adult,false,Female)" + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" }, "Step-6": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-7": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -18299,37 +18299,37 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1,adult,false,Female)" + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "NA", - "Action": "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" + "Action": "$$zipPacketPath=e2e_packetcreator(NEW/*PACKET_TYPE*/,$$templatePath)" }, "Step-7": { "Description": "<<>>", "Input Parameters": "<<>>", "Return Value": "NA", - "Action": "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + "Action": "$$rid=e2e_ridsync(NEW/*PACKET_TYPE*/,$$zipPacketPath)" }, "Step-8": { "Description": "<<>>", @@ -18341,7 +18341,7 @@ "Description": "Checkes the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-10": { "Description": "Gets the UIN for the given RID", @@ -18365,7 +18365,7 @@ "Description": "Checkes the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(reregister,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" } }, { @@ -18390,25 +18390,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/,skipBiometricClassification/*SKIP_BIO_CLASSIFICATION_FLAG*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,skipBiometricClassification/*SKIP_BIO_CLASSIFICATION_FLAG*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1,adult,false,Female)" + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -18420,7 +18420,7 @@ "Description": "Checkes the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(processed,$$rid)" + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Gets the UIN for the given RID", @@ -18457,25 +18457,25 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/,skipApplicantDocuments/*SKIP_APPLICANT_DOCUMENTS_FLAG*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,skipApplicantDocuments/*SKIP_APPLICANT_DOCUMENTS_FLAG*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", "Input Parameters": "NA", "Return Value": "NA", - "Action": "e2e_getPingHealth()" + "Action": "e2e_getPingHealth(targetenv)" }, "Step-4": { "Description": "Generates persona data", "Input Parameters": "Details are in parameter in-line comments", "Return Value": "Persona file path", - "Action": "$$personaFilePath=e2e_getResidentData(1,adult,false,Female)" + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" }, "Step-5": { "Description": "Generates packet template based on the persona data", "Input Parameters": "Process and persona file path", "Return Value": "Generated Template file path", - "Action": "$$templatePath=e2e_getPacketTemplate(NEW,$$personaFilePath)" + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" }, "Step-6": { "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", @@ -18487,7 +18487,7 @@ "Description": "Checkes the RID status against given packet processing status", "Input Parameters": "Packet processing status and RID", "Return Value": "NA", - "Action": "e2e_checkStatus(REREGISTER,$$rid)" + "Action": "e2e_checkStatus(REREGISTER/*PACKET_STATUS*/,$$rid)" }, "Step-8": { "Description": "Checks RID stage and stage status", @@ -18524,7 +18524,7 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "<<>>", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,1/*MAJOR_VERSION_COMPONENT*/@@2/*MINOR_VERSION_COMPONENT*/,false/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" }, "Step-4": { "Description": "Performs health check of required server components to run end-to-end scenarios", From 18357001733a0b35f3104cfb7562eaa41c60e5bb Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Fri, 24 May 2024 09:58:40 +0530 Subject: [PATCH 17/57] MOSIP-33167 Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/e2e/methods/GetPingHealth.java | 4 + .../dslrig/ivv/e2e/methods/ReadPreReq.java | 2 +- .../dslrig/ivv/e2e/methods/WritePreReq.java | 1 + .../dslrig/ivv/orchestrator/Orchestrator.java | 166 +++++++++--------- .../src/main/resources/testngFile/testng.xml | 2 +- 5 files changed, 89 insertions(+), 86 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java index 4388afaf0..fc2118f83 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java @@ -5,6 +5,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.testng.Reporter; import org.testng.SkipException; import io.mosip.testrig.apirig.kernel.util.ConfigManager; @@ -49,6 +50,8 @@ public void run() throws RigInternalError { this.hasError = true; throw new SkipException("Packet creator Not responding"); } + else + Reporter.log("Packet creator status is up and healthy
"); } catch (Exception e) { this.hasError = true; logger.error(e.getMessage()); @@ -67,6 +70,7 @@ public void run() throws RigInternalError { this.hasError = true; throw new SkipException("Health check status" + res.toString()); } + Reporter.log("Target env status is up and healthy
"); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java index 1ff505f2a..8a1db4a89 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java @@ -43,7 +43,7 @@ public void run() throws RigInternalError { if (step.getOutVarName() != null) { step.getScenario().getVariables().putAll(prereqDataSet.get(path)); } - + Reporter.log("Loaded the prereq data for executing the scenario
"); /* * if (ConfigManager.IsDebugEnabled()) * Reporter.log(prereqDataSet.get(path).toString()); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java index c321dfb02..0c40df331 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java @@ -62,6 +62,7 @@ public void run() throws RigInternalError { propertiesMap.put((String) entry.getKey(), (String) entry.getValue()); } prereqDataSet.put(path, propertiesMap); + Reporter.log("Written pre requisite data into map to be consumed during scenario execution
"); /* * if (ConfigManager.IsDebugEnabled()) Reporter.log(props.toString()); */ diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java index 89dec869d..db84a2fcd 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java @@ -20,6 +20,7 @@ import java.util.regex.Pattern; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringEscapeUtils; import org.testng.Assert; import org.apache.log4j.Level; import org.apache.log4j.Logger; @@ -76,7 +77,6 @@ public class Orchestrator { public static long suiteStartTime = System.currentTimeMillis(); public static long suiteMaxTimeInMillis = 7200000; // 2 hour in milliseconds static AtomicInteger counterLock = new AtomicInteger(0); // enable fairness policy - private HashMap packages = new HashMap() { { @@ -84,10 +84,6 @@ public class Orchestrator { } }; - /* - * HashMap packages = (HashMap) - * Collections.singletonMap("e2e", "io.mosip.testrig.dslrig.ivv.e2e.methods"); - */ static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -127,30 +123,6 @@ public void beforeSuite() { else logger.setLevel(Level.ERROR); - /* - * if (ConfigManager.getPushReportsToS3().equalsIgnoreCase("yes")) { // EXTENT - * REPORT File repotFile2 = new File(System.getProperty("user.dir") + "/" + - * System.getProperty("testng.outpur.dir") + "/" + - * System.getProperty("emailable.report3.name")); logger.info("reportFile is::" - * + System.getProperty("user.dir") + "/" + - * System.getProperty("testng.outpur.dir") + "/" + - * System.getProperty("emailable.report3.name")); - * - * S3Adapter s3Adapter = new S3Adapter(); boolean isStoreSuccess = false; try { - * isStoreSuccess = s3Adapter.putObject(ConfigManager.getS3Account(), - * BaseTestCase.testLevel, null, null, - * System.getProperty("emailable.report3.name"), repotFile2); - * - * isStoreSuccess = s3Adapter.putObject(ConfigManager.getS3Account(), - * BaseTestCase.testLevel, null, null, - * System.getProperty("emailable.report3.name"), repotFile2); - * - * logger.info("isStoreSuccess:: " + isStoreSuccess); } catch (Exception e) { - * logger.info("error occured while pushing the object" + - * e.getLocalizedMessage()); logger.error(e.getMessage()); } if (isStoreSuccess) - * { logger.info("Pushed file to S3"); } else { - * logger.info("Failed while pushing file to S3"); } } - */ } @BeforeTest @@ -171,21 +143,6 @@ public static Object[][] dataProvider() throws RigInternalError { Properties properties = Utils.getProperties(configFile); scenarioSheet = getScenarioSheet(); - - /* - * scenarioSheet = ConfigManager.getmountPathForScenario() + "/scenarios/" + - * "scenarios-" + BaseTestCase.testLevel + "-" + BaseTestCase.environment + - * ".csv"; - * - * Path path = Paths.get(scenarioSheet); - * - * if (!Files.exists(path)) { scenarioSheet = - * ConfigManager.getmountPathForScenario() + "/default/" + "scenarios-" + - * BaseTestCase.testLevel + "-" + "default" + ".csv"; } else if (scenarioSheet - * == null || scenarioSheet.isEmpty()) { throw new - * RigInternalError("ScenarioSheet argument missing"); } - */ - ParserInputDTO parserInputDTO = new ParserInputDTO(); parserInputDTO.setConfigProperties(properties); parserInputDTO.setDocumentsFolder( @@ -228,27 +185,26 @@ public static Object[][] dataProvider() throws RigInternalError { HashMap globals = parser.getGlobals(); ArrayList rcUsers = parser.getRCUsers(); totalScenario = scenarios.size(); - ArrayList filteredScenarios = new ArrayList<>(); - for (Scenario scenario : scenarios) { - if (scenario.getId().equalsIgnoreCase("0") || - scenario.getId().equalsIgnoreCase("AFTER_SUITE") || - ConfigManager.isInTobeExecuteList(scenario.getId())) { - filteredScenarios.add(scenario); - } - } - - totalScenario = filteredScenarios.size(); - Object[][] dataArray = new Object[filteredScenarios.size()][5]; - for (int i = 0; i < filteredScenarios.size(); i++) { - dataArray[i][0] = i; - dataArray[i][1] = filteredScenarios.get(i); - dataArray[i][2] = configs; - dataArray[i][3] = globals; - dataArray[i][4] = properties; - } - return dataArray; + ArrayList filteredScenarios = new ArrayList<>(); + for (Scenario scenario : scenarios) { + if (scenario.getId().equalsIgnoreCase("0") || scenario.getId().equalsIgnoreCase("AFTER_SUITE") + || ConfigManager.isInTobeExecuteList(scenario.getId())) { + filteredScenarios.add(scenario); + } } + totalScenario = filteredScenarios.size(); + Object[][] dataArray = new Object[filteredScenarios.size()][5]; + for (int i = 0; i < filteredScenarios.size(); i++) { + dataArray[i][0] = i; + dataArray[i][1] = filteredScenarios.get(i); + dataArray[i][2] = configs; + dataArray[i][3] = globals; + dataArray[i][4] = properties; + } + return dataArray; + } + @BeforeMethod public void beforeMethod(Method method) { @@ -256,7 +212,6 @@ public void beforeMethod(Method method) { private synchronized void updateRunStatistics(Scenario scenario) throws ClassNotFoundException, IllegalAccessException, InstantiationException { -// logger.info(Thread.currentThread().getName() + ": " + counterLock.getAndIncrement()); logger.info("Updating statistics for scenario: " + scenario.getId() + " -- updating the executed count to: " + counterLock.getAndIncrement()); if (scenario.getId().equalsIgnoreCase("0")) { @@ -273,7 +228,7 @@ private synchronized void updateRunStatistics(Scenario scenario) beforeSuiteExeuted = true; logger.info("Before Suite executed"); } - + logger.info(" Thread ID: " + Thread.currentThread().getId() + " scenarios Executed : " + counterLock.get()); } @@ -397,17 +352,21 @@ private void run(int i, Scenario scenario, HashMap configs, Hash st.setStep(step); st.setup(); st.validateStep(); - String[] stepDetails = getStepDetails("e2e_" + step.getName()); - + + String stepAction = "e2e_" + step.getName() + step.getParameters(); + stepAction = trimSpaceWithinSquareBrackets(stepAction); + String stepParams[] = getStepDetails("S_" + step.getScenario().getId() + stepAction); + StringBuilder sb = new StringBuilder(); - sb.append("
"); - + Reporter.log(sb.toString()); - + st.run(); st.assertHttpStatus(); @@ -476,10 +435,8 @@ private void run(int i, Scenario scenario, HashMap configs, Hash Assert.assertTrue(false); return; } catch (FeatureNotSupportedError e) { -// extentTest.error(identifier + " - FeatureNotSupportedError --> " + e.getMessage()); logger.warn(e.getMessage()); Reporter.log(e.getMessage()); -// Assert.assertTrue(false); } } updateRunStatistics(scenario); @@ -610,13 +567,12 @@ public static String JsonToCsvConverter(String jsonFilePath) { Matcher matcher = pattern.matcher(stepAction); if (matcher.matches()) { -// logger.info("The string contains a comma between parentheses"); stepList.add(stepAction == null ? "" : "\"" + stepAction + "\""); } else { stepList.add(stepAction == null ? "" : stepAction); -// logger.info("The string does not contain a comma between parentheses"); } - addStepDetails(stepAction, stepDescription); + addAllStepDetails(stepAction, jsonNode.get("Scenario").asText(), stepDescription); + addUniqueStepDetails(stepAction, stepDescription); } for (String string : stepList) { @@ -632,7 +588,7 @@ public static String JsonToCsvConverter(String jsonFilePath) { if (ConfigManager.IsDebugEnabled()) { String keyValues = ""; // Iterate through the map and print its contents - for (Map.Entry entry : stepsMap.entrySet()) { + for (Map.Entry entry : uniqueStepsMap.entrySet()) { keyValues += entry.getKey(); String[] values = entry.getValue(); for (int i = 0; i < values.length; i++) { @@ -645,9 +601,9 @@ public static String JsonToCsvConverter(String jsonFilePath) { return tempCSVPath; } - private static final Map stepsMap = new HashMap<>(); + private static final Map uniqueStepsMap = new HashMap<>(); - private static void addStepDetails(String stepInput, String description) { + private static void addUniqueStepDetails(String stepInput, String description) { if (stepInput.isEmpty() || description.isEmpty()) return; // Find the index of the first "(" character @@ -655,17 +611,59 @@ private static void addStepDetails(String stepInput, String description) { if (indexOfOpenParenthesis != -1) { // Extract the substring "e2e_" up to the first "(" String step = stepInput.substring(stepInput.indexOf("e2e_"), indexOfOpenParenthesis); - if (stepsMap.get(step) == null) { + if (uniqueStepsMap.get(step) == null) { String[] descAndExample = new String[2]; descAndExample[0] = description; descAndExample[1] = stepInput; - stepsMap.put(step, descAndExample); + uniqueStepsMap.put(step, descAndExample); } } } + private static final Map allStepsMap = new HashMap<>(); + + private static void addAllStepDetails(String stepInput, String scenarioNumber, String description) { + if (stepInput == null || stepInput.isEmpty()) { + return; + } + // Extract the value part if there's an "=" delimiter + String processedStepInput = stepInput; + int equalsIndex = stepInput.indexOf('='); + if (equalsIndex != -1) { + processedStepInput = stepInput.substring(equalsIndex + 1); + } + // Remove parts enclosed in /*...*/ + processedStepInput = processedStepInput.replaceAll("/\\*.*?\\*/", ""); + // Replace ( with [ and ) with ] + processedStepInput = processedStepInput.replace('(', '[').replace(')', ']'); + processedStepInput = trimSpaceWithinSquareBrackets(processedStepInput); + String[] descAndExample = new String[2]; + descAndExample[0] = description; + descAndExample[1] = stepInput; + allStepsMap.put("S_" + scenarioNumber + processedStepInput, descAndExample); + } + private static String[] getStepDetails(String stepName) { - return stepsMap.get(stepName); + return allStepsMap.get(stepName); + } + + private static String trimSpaceWithinSquareBrackets(String stringToTrim) { + // Find the part within square brackets + int openBracketIndex = stringToTrim.indexOf('['); + int closeBracketIndex = stringToTrim.lastIndexOf(']'); + + if (openBracketIndex != -1 && closeBracketIndex != -1 && openBracketIndex < closeBracketIndex) { + // Extract the content within the square brackets + String withinBrackets = stringToTrim.substring(openBracketIndex + 1, closeBracketIndex); + + // Remove spaces within the square brackets + withinBrackets = withinBrackets.replaceAll("\\s+", ""); + + // Reconstruct the stepAction without spaces within brackets + stringToTrim = stringToTrim.substring(0, openBracketIndex + 1) + withinBrackets + + stringToTrim.substring(closeBracketIndex); + } + return stringToTrim; } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/testngFile/testng.xml b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/testngFile/testng.xml index 91882b9e0..b8fd44a21 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/testngFile/testng.xml +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/testngFile/testng.xml @@ -1,7 +1,7 @@ - + From 501bdb0028c0e92d3972dd20c6cf0ae1f96feb36 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Mon, 27 May 2024 10:01:37 +0530 Subject: [PATCH 18/57] MOSIP-33167 Signed-off-by: Pankaj Godiyal --- .../ivv/orchestrator/EmailableReport.java | 287 ++++++++++-------- .../dslrig/ivv/orchestrator/Orchestrator.java | 2 +- 2 files changed, 158 insertions(+), 131 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java index 5b376946f..0f6c5ba94 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java @@ -185,27 +185,58 @@ protected void writeHead() { } protected void writeStylesheet() { - writer.print(""); + writer.print(""); } + + + protected void writeBody() { writer.print(""); writeSuiteSummary(); @@ -219,117 +250,111 @@ protected void writeDocumentEnd() { } protected void writeSuiteSummary() { - NumberFormat integerFormat = NumberFormat.getIntegerInstance(); - NumberFormat decimalFormat = NumberFormat.getNumberInstance(); - LocalDate currentDate = LocalDate.now(); - String formattedDate =null; - String branch = null; - - // Format the current date as per your requirement - try { - - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - formattedDate = currentDate.format(formatter); - Process process = Runtime.getRuntime().exec("git rev-parse --abbrev-ref HEAD"); - BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - branch = reader.readLine(); - } - catch (Exception e) { - // TODO: handle exception - } - - totalPassedTests = 0; - totalSkippedTests = 0; - totalFailedTests = 0; - long totalDuration = 0; - writer.print(""); - int testIndex = 0; - for (SuiteResult suiteResult : suiteResults) { - - writer.print(""); - - - writer.print(""); - - // Left column: "Server Component Details" with central alignment - writer.print(""); - - // Right column: Details from AdminTestUtil.getServerComponentsDetails() without bold formatting - writer.print(""); - - writer.print(""); - writer.print(GlobalConstants.TRTR); - - writer.print(""); - writer.print(""); - writer.print(""); - - writer.print(""); - writer.print(""); - writer.print(""); - writer.print(""); - writer.print(""); - writer.print(""); - - for (TestResult testResult : suiteResult.getTestResults()) { - int passedTests = testResult.getPassedTestCount(); - int skippedTests = testResult.getSkippedTestCount(); - int failedTests = testResult.getFailedTestCount(); - long duration = testResult.getDuration(); - - writer.print(""); - - buffer.setLength(0); -// writeTableData(buffer.append("") -// .append(Utils.escapeHtml(testResult.getTestName())).append("").toString()); - writeTableData(integerFormat.format(passedTests), (passedTests > 0 ? "num green-bg" : "num")); - writeTableData(integerFormat.format(skippedTests), (skippedTests > 0 ? "num orange-bg" : "num")); - writeTableData(integerFormat.format(failedTests), (failedTests > 0 ? "num attn" : "num")); - writeTableData(decimalFormat.format(duration), "num"); - /* - * writeTableData(testResult.getIncludedGroups()); - * writeTableData(testResult.getExcludedGroups()); - */ - - writer.print(""); - - totalPassedTests += passedTests; - totalSkippedTests += skippedTests; - totalFailedTests += failedTests; - totalDuration += duration; - - testIndex++; - } - } - - // Print totals if there was more than one test - if (testIndex > 1) { - writer.print(""); - writer.print(""); - writeTableHeader(integerFormat.format(totalPassedTests), "num"); - writeTableHeader(integerFormat.format(totalSkippedTests), (totalSkippedTests > 0 ? "num attn" : "num")); - writeTableHeader(integerFormat.format(totalFailedTests), (totalFailedTests > 0 ? "num attn" : "num")); - writeTableHeader(decimalFormat.format(totalDuration), "num"); - writer.print(""); - writer.print(""); - } - - writer.print("
"); - writer.print(Utils.escapeHtml( - suiteResult.getSuiteName() + " ---- " + - "Report Date: " + formattedDate + " ---- " + - "Tested Environment: " + System.getProperty("env.endpoint").replaceAll(".*?\\.([^\\.]+)\\..*", "$1") + " ---- " + - "Testrig details: Branch Name - " + branch + ", Commit ID - " + getCommitId())); - - writer.print("
");
-			writer.print(Utils.escapeHtml("Tested Component Details"));
-			writer.print("
");
-			writer.print(Utils.escapeHtml(AdminTestUtil.getServerComponentsDetails()));
-			writer.print("
Summary of Test Results
# Passed# Skipped# FailedTime (ms)
Total
"); + NumberFormat integerFormat = NumberFormat.getIntegerInstance(); + NumberFormat decimalFormat = NumberFormat.getNumberInstance(); + LocalDate currentDate = LocalDate.now(); + String formattedDate = null; + String branch = null; + + // Format the current date as per your requirement + try { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + formattedDate = currentDate.format(formatter); + Process process = Runtime.getRuntime().exec("git rev-parse --abbrev-ref HEAD"); + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + branch = reader.readLine(); + } catch (Exception e) { + // TODO: handle exception + } + + totalPassedTests = 0; + totalSkippedTests = 0; + totalFailedTests = 0; + long totalDuration = 0; + writer.print(""); + int testIndex = 0; + for (SuiteResult suiteResult : suiteResults) { + + writer.print(""); + + writer.print(""); + + // Left column: "Server Component Details" with central alignment + writer.print(""); + + // Right column: Details from AdminTestUtil.getServerComponentsDetails() without bold formatting + writer.print(""); + + writer.print(""); + writer.print(GlobalConstants.TRTR); + + writer.print(""); + writer.print(""); + writer.print(""); + + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + + for (TestResult testResult : suiteResult.getTestResults()) { + int passedTests = testResult.getPassedTestCount(); + int skippedTests = testResult.getSkippedTestCount(); + int failedTests = testResult.getFailedTestCount(); + int totalTests = passedTests + skippedTests + failedTests; + long duration = testResult.getDuration(); + + writer.print(""); + + buffer.setLength(0); + writeTableData(decimalFormat.format(totalTests), "num num-center"); // Center alignment for total + writeTableData(integerFormat.format(passedTests), (passedTests > 0 ? "num green-bg num-center" : "num num-center")); // Center alignment for passed + writeTableData(integerFormat.format(skippedTests), (skippedTests > 0 ? "num orange-bg num-center" : "num num-center")); // Center alignment for skipped + writeTableData(integerFormat.format(failedTests), (failedTests > 0 ? "num attn num-center" : "num num-center")); // Center alignment for failed + writeTableData(decimalFormat.format(duration), "num num-center"); // Center alignment for time + + writer.print(""); + + totalPassedTests += passedTests; + totalSkippedTests += skippedTests; + totalFailedTests += failedTests; + totalDuration += duration; + + testIndex++; + } + } + + // Print totals if there was more than one test + if (testIndex > 1) { + writer.print(""); + writer.print(""); + writeTableHeader(integerFormat.format(totalPassedTests), "num num-center"); // Center alignment for total + writeTableHeader(integerFormat.format(totalSkippedTests), (totalSkippedTests > 0 ? "num attn num-center" : "num num-center")); // Center alignment for skipped + writeTableHeader(integerFormat.format(totalFailedTests), (totalFailedTests > 0 ? "num attn num-center" : "num num-center")); // Center alignment for failed + writeTableHeader(decimalFormat.format(totalDuration), "num num-center"); // Center alignment for time + writer.print(""); + writer.print(""); + } + + writer.print("
"); + writer.print(Utils.escapeHtml( + suiteResult.getSuiteName() + " ---- " + + "Report Date: " + formattedDate + " ---- " + + "Tested Environment: " + System.getProperty("env.endpoint").replaceAll(".*?\\.([^\\.]+)\\..*", "$1") + " ---- " + + "Testrig details: Branch Name - " + branch + ", Commit ID - " + getCommitId())); + + writer.print("
");
+	        writer.print(Utils.escapeHtml("Tested Component Details"));
+	        writer.print("
");
+	        writer.print(Utils.escapeHtml(AdminTestUtil.getServerComponentsDetails()));
+	        writer.print("
Summary of Test Results
# Total# Passed# Skipped# FailedTime (ms)
Total
"); } /** @@ -579,9 +604,11 @@ protected void writeReporterMessages(List reporterMessages) { } protected void writeStackTrace(Throwable throwable) { + if(!ConfigManager.IsDebugEnabled()) { writer.print("
"); writer.print(Utils.shortStackTrace(throwable, true)); writer.print("
"); + } } /** diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java index db84a2fcd..7d689fe96 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java @@ -333,7 +333,7 @@ private void run(int i, Scenario scenario, HashMap configs, Hash store.setRegistrationUsers(scenario.getRegistrationUsers()); store.setPartners(scenario.getPartners()); store.setProperties(this.properties); - Reporter.log("" + "Scenario_" + scenario.getId() + ": " + scenario.getDescription() + ""); + Reporter.log("
Scenario_" + scenario.getId() + ": " + scenario.getDescription() + "
"); for (Scenario.Step step : scenario.getSteps()) { identifier = "> #[Test Step: " + step.getName() + "] [Test Parameters: " + step.getParameters() From e336ee4ef26a642301f0fa39a93844a4ef4f9566 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Wed, 29 May 2024 10:58:35 +0530 Subject: [PATCH 19/57] MOSIP-33390 Signed-off-by: Pankaj Godiyal --- .../ivv/orchestrator/EmailableReport.java | 2 +- .../dslrig/ivv/orchestrator/Orchestrator.java | 19 ++++++++----------- .../ivv/orchestrator/PacketUtility.java | 6 +++--- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java index 0f6c5ba94..8366ec81d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java @@ -604,7 +604,7 @@ protected void writeReporterMessages(List reporterMessages) { } protected void writeStackTrace(Throwable throwable) { - if(!ConfigManager.IsDebugEnabled()) { + if(ConfigManager.IsDebugEnabled()) { writer.print("
"); writer.print(Utils.shortStackTrace(throwable, true)); writer.print("
"); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java index 7d689fe96..18dd53b70 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java @@ -20,11 +20,9 @@ import java.util.regex.Pattern; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringEscapeUtils; import org.testng.Assert; import org.apache.log4j.Level; import org.apache.log4j.Logger; -import org.json.JSONObject; import org.testng.ITestResult; import org.testng.Reporter; import org.testng.SkipException; @@ -44,7 +42,6 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import io.mosip.testrig.apirig.authentication.fw.util.ReportUtil; import io.mosip.testrig.apirig.kernel.util.ConfigManager; import io.mosip.testrig.apirig.service.BaseTestCase; import io.mosip.testrig.apirig.testrunner.MosipTestRunner; @@ -57,7 +54,6 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.core.utils.Utils; import io.mosip.testrig.dslrig.ivv.dg.DataGenerator; -import io.mosip.testrig.dslrig.ivv.e2e.methods.Center; import io.mosip.testrig.dslrig.ivv.parser.Parser; import com.sun.management.OperatingSystemMXBean; @@ -355,6 +351,10 @@ private void run(int i, Scenario scenario, HashMap configs, Hash String stepAction = "e2e_" + step.getName() + step.getParameters(); stepAction = trimSpaceWithinSquareBrackets(stepAction); + + if(step.getOutVarName()!= null) + stepAction = step.getOutVarName() + "=" + stepAction; + String stepParams[] = getStepDetails("S_" + step.getScenario().getId() + stepAction); StringBuilder sb = new StringBuilder(); @@ -626,21 +626,18 @@ private static void addAllStepDetails(String stepInput, String scenarioNumber, S if (stepInput == null || stepInput.isEmpty()) { return; } - // Extract the value part if there's an "=" delimiter - String processedStepInput = stepInput; - int equalsIndex = stepInput.indexOf('='); - if (equalsIndex != -1) { - processedStepInput = stepInput.substring(equalsIndex + 1); - } // Remove parts enclosed in /*...*/ - processedStepInput = processedStepInput.replaceAll("/\\*.*?\\*/", ""); + String processedStepInput = stepInput.replaceAll("/\\*.*?\\*/", ""); // Replace ( with [ and ) with ] processedStepInput = processedStepInput.replace('(', '[').replace(')', ']'); processedStepInput = trimSpaceWithinSquareBrackets(processedStepInput); + + if (allStepsMap.get("S_" + scenarioNumber + processedStepInput) == null) { String[] descAndExample = new String[2]; descAndExample[0] = description; descAndExample[1] = stepInput; allStepsMap.put("S_" + scenarioNumber + processedStepInput, descAndExample); + } } private static String[] getStepDetails(String stepName) { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java index 489c10cb2..aefd8ab1d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java @@ -435,7 +435,7 @@ public String updateResidentUIN(String personaFilePath, String uin, Scenario.Ste map.put("UIN", uin); Response response = postRequestWithQueryParamAndBody(url, jsonwrapper.toString(), map, "link Resident data with UIN", step); - GlobalMethods.ReportRequestAndResponse("", "", url, jsonwrapper.toString(), response.getBody().asString()); +// GlobalMethods.ReportRequestAndResponse("", "", url, jsonwrapper.toString(), response.getBody().asString()); if (!response.getBody().asString().toLowerCase().contains(SUCCESS)) { this.hasError = true; throw new RigInternalError("Unable to add UIN in resident data"); @@ -585,7 +585,7 @@ public String updateResidentWithGuardianSkippingPreReg(String guardianPersonaFil jsonwrapper.put(REQUESTS, jsonReq); String url = baseUrl + props.getProperty(UPDATERESIDENTURL); Response response = postRequest(url, jsonwrapper.toString(), "Update Resident Guardian", step); - GlobalMethods.ReportRequestAndResponse("", "", url, jsonwrapper.toString(), response.getBody().asString()); +// GlobalMethods.ReportRequestAndResponse("", "", url, jsonwrapper.toString(), response.getBody().asString()); if (!response.getBody().asString().toLowerCase().contains(SUCCESS)) { this.hasError = true; throw new RigInternalError("Unable to update Resident Guardian from packet utility"); @@ -1314,7 +1314,7 @@ public void setMockabisExpectaion(JSONArray jsonreq, HashMap con String url = baseUrl + props.getProperty("mockAbis"); Response response = postRequestWithQueryParamAndBody(url, jsonreq.toString(), contextKey, "Mockabis Expectaion", step); - GlobalMethods.ReportRequestAndResponse("", "", url, jsonreq.toString(), response.getBody().asString()); +// GlobalMethods.ReportRequestAndResponse("", "", url, jsonreq.toString(), response.getBody().asString()); logger.info("****" + response.getBody().asString()); if (!response.getBody().asString().toLowerCase().contains(SUCCESS)) { this.hasError = true; From c876221a12c6f5ef6b51041f028ce0e980054116 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Wed, 29 May 2024 18:16:05 +0530 Subject: [PATCH 20/57] MOSIP-31055 Signed-off-by: Pankaj Godiyal --- .../src/main/resources/config/scenarios.json | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json index 539c538ed..978177925 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json @@ -18495,6 +18495,103 @@ "Return Value": "NA", "Action": "e2e_CheckRIDStage($$rid,VALIDATE_PACKET,FAILED)" } + }, + { + "Scenario": "166", + "Tag": "Postive_Test", + "Persona": "ResidentMaleAdult", + "Group": "NA", + "Description": "A non registered resident walk-ins to registration center without UIN and tries to retrieve the UIN . Now new Resident tries to get UIN with the same demographic details ", + "Step-0": { + "Description": "Performs health check of given component", + "Input Parameters": "Keyword to check, only packetcreator is supported", + "Return Value": "NA", + "Action": "e2e_getPingHealth(packetcreator)" + }, + "Step-1": { + "Description": "Reads the pre-requisite data at the given index", + "Input Parameters": "Details can be found in in-line comments on the parameters", + "Return Value": "pre-requiste details", + "Action": "$$details1=e2e_ReadPreReq(1/*PRE_REQUISITE_DATA_INDEX*/)" + }, + "Step-2": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" + }, + "Step-3": { + "Description": "Performs health check of required server components to run end-to-end scenarios", + "Input Parameters": "NA", + "Return Value": "NA", + "Action": "e2e_getPingHealth(targetenv)" + }, + "Step-4": { + "Description": "Generates persona data", + "Input Parameters": "Details are in parameter in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" + }, + "Step-5": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$lostTemplate=e2e_getPacketTemplate(LOST/*PACKET_TYPE*/,$$personaFilePath)" + }, + "Step-6": { + "Description": "<<>>", + "Input Parameters": "<<>>", + "Return Value": "<<>>", + "Action": "$$zipPacketPath=e2e_packetcreator(LOST/*PACKET_TYPE*/,$$lostTemplate)" + }, + "Step-7": { + "Description": "<<>>", + "Input Parameters": "<<>>", + "Return Value": "<<>>", + "Action": "$$lostRid=e2e_ridsync(LOST/*PACKET_TYPE*/,$$zipPacketPath)" + }, + "Step-8": { + "Description": "<<>>", + "Input Parameters": "<<>>", + "Return Value": "NA", + "Action": "e2e_packetsync($$zipPacketPath)" + }, + "Step-9": { + "Description": "Checks RID stage and stage status", + "Input Parameters": "RID, stage and stage status", + "Return Value": "NA", + "Action": "e2e_CheckRIDStage($$lostRid,BIOGRAPHIC_VERIFICATION,FAILED)" + }, + "Step-10": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" + }, + "Step-11": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath,$$templatePath)" + }, + "Step-12": { + "Description": "Checkes the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" + }, + "Step-13": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin=e2e_getUINByRid($$rid)" + }, + "Step-14": { + "Description": "Checks RID stage and stage status", + "Input Parameters": "RID, stage and stage status", + "Return Value": "NA", + "Action": "e2e_CheckRIDStage($$rid,PRINT_SERVICE,PROCESSED)" + } }, { "Scenario": "AFTER_SUITE", From abc4c97ef5523b9d6e91cb7a8b260189d3c65438 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Mon, 3 Jun 2024 10:20:58 +0530 Subject: [PATCH 21/57] MOSIP-30989 Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/e2e/methods/LoopWindow.java | 27 ++++++++ .../ivv/orchestrator/BaseTestCaseUtil.java | 2 +- .../dslrig/ivv/orchestrator/Orchestrator.java | 65 +++++++++++++------ 3 files changed, 74 insertions(+), 20 deletions(-) create mode 100644 mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/LoopWindow.java diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/LoopWindow.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/LoopWindow.java new file mode 100644 index 000000000..b781f669e --- /dev/null +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/LoopWindow.java @@ -0,0 +1,27 @@ +package io.mosip.testrig.dslrig.ivv.e2e.methods; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; + +import io.mosip.testrig.apirig.kernel.util.ConfigManager; +import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; +import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; +import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; + +public class LoopWindow extends BaseTestCaseUtil implements StepInterface{ + + private static final Logger logger = Logger.getLogger(LoopWindow.class); + + static { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + @Override + public void run() throws RigInternalError { + logger.info("Loop window "); + } + +} diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java index c1860a590..829e615ce 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java @@ -392,7 +392,7 @@ public static Response getRequestWithCookie(String url, String contentHeader, St logger.info(GlobalConstants.REST_ASSURED_STRING_3 + getResponse.time()); GlobalMethods.ReportRequestAndResponse(null, getResponse.getHeaders().asList().toString(), url, null, - getResponse.getBody().asString()); + getResponse.asString()); return getResponse; } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java index 18dd53b70..4d3e54231 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java @@ -329,8 +329,14 @@ private void run(int i, Scenario scenario, HashMap configs, Hash store.setRegistrationUsers(scenario.getRegistrationUsers()); store.setPartners(scenario.getPartners()); store.setProperties(this.properties); - Reporter.log("
Scenario_" + scenario.getId() + ": " + scenario.getDescription() + "
"); - for (Scenario.Step step : scenario.getSteps()) { + Reporter.log( + "
Scenario_" + + scenario.getId() + ": " + scenario.getDescription() + "
"); +// for (Scenario.Step step : scenario.getSteps()) { + int jumpBackIndex = 0; + int iterationCount = 0; + for (int stepIndex = 0; stepIndex < scenario.getSteps().size(); stepIndex++) { + Scenario.Step step = scenario.getSteps().get(stepIndex); identifier = "> #[Test Step: " + step.getName() + "] [Test Parameters: " + step.getParameters() + "] [Test outVarName: " + step.getOutVarName() + "] [module: " + step.getModule() + "] [variant: " @@ -351,24 +357,45 @@ private void run(int i, Scenario scenario, HashMap configs, Hash String stepAction = "e2e_" + step.getName() + step.getParameters(); stepAction = trimSpaceWithinSquareBrackets(stepAction); - - if(step.getOutVarName()!= null) + + if (step.getOutVarName() != null) stepAction = step.getOutVarName() + "=" + stepAction; - + String stepParams[] = getStepDetails("S_" + step.getScenario().getId() + stepAction); - StringBuilder sb = new StringBuilder(); - sb.append( - "
"); + if (!step.getName().contains("loopWindow")) { - Reporter.log(sb.toString()); + StringBuilder sb = new StringBuilder(); + sb.append( + "
"); + Reporter.log(sb.toString()); + } + + // Steps can be added in scenario sheet as: ---- e2e_loopWindow(START /*LOOP_WINDOW_MARKER*/) ----e2e_loopWindow(END/*LOOP_WINDOW_MARKER*/,loopCount/* LOOP_COUNT*/) + // Add step/steps to be repeated for a given loopCount in between the above mentioned steps in the scenario sheet + if (step.getName().contains("loopWindow")) { + + if (step.getParameters().get(0).contains("START")) { + jumpBackIndex = stepIndex + 1; + iterationCount = 1; + } else if (step.getParameters().size() > 1 && step.getParameters().get(0).contains("END")) { + int loopCount = Integer.parseInt(step.getParameters().get(1)); + if (iterationCount < loopCount) { + stepIndex = jumpBackIndex - 1; + iterationCount++; + logger.info("Repeating loop, iteration: " + iterationCount + " of " + loopCount); + continue; + } else { + logger.info("Loop completed after " + iterationCount + " iterations."); + } + } + } st.run(); - st.assertHttpStatus(); if (st.hasError()) { extentTest.fail(identifier + " - failed"); @@ -631,12 +658,12 @@ private static void addAllStepDetails(String stepInput, String scenarioNumber, S // Replace ( with [ and ) with ] processedStepInput = processedStepInput.replace('(', '[').replace(')', ']'); processedStepInput = trimSpaceWithinSquareBrackets(processedStepInput); - + if (allStepsMap.get("S_" + scenarioNumber + processedStepInput) == null) { - String[] descAndExample = new String[2]; - descAndExample[0] = description; - descAndExample[1] = stepInput; - allStepsMap.put("S_" + scenarioNumber + processedStepInput, descAndExample); + String[] descAndExample = new String[2]; + descAndExample[0] = description; + descAndExample[1] = stepInput; + allStepsMap.put("S_" + scenarioNumber + processedStepInput, descAndExample); } } From 48cd49231440d0ce43c5777690dba619d2bd4e89 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Tue, 4 Jun 2024 13:13:18 +0530 Subject: [PATCH 22/57] MOSIP-33573 Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/orchestrator/BaseTestCaseUtil.java | 4 ++-- .../dslrig/ivv/orchestrator/EmailableReport.java | 10 ++++------ .../packetcreator/service/PacketMakerService.java | 11 +++++++++-- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java index 829e615ce..80e186248 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java @@ -205,7 +205,7 @@ public Response putRequestWithBody(String url, String body, String opsToLog, Sce } GlobalMethods.ReportRequestAndResponse(null, puttResponse.getHeaders().asList().toString(), url, body, - puttResponse.getBody().asString()); + puttResponse.asString(),true); return puttResponse; } @@ -317,7 +317,7 @@ public Response postRequestWithQueryParamAndBody(String url, String body, HashMa MediaType.APPLICATION_JSON); GlobalMethods.ReportRequestAndResponse(null, apiResponse.getHeaders().asList().toString(), url, body, - apiResponse.getBody().asString()); + apiResponse.asString(),true); return apiResponse; } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java index 8366ec81d..dc6e5067f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java @@ -235,8 +235,6 @@ protected void writeStylesheet() { } - - protected void writeBody() { writer.print(""); writeSuiteSummary(); @@ -328,7 +326,7 @@ protected void writeSuiteSummary() { writeTableData(decimalFormat.format(totalTests), "num num-center"); // Center alignment for total writeTableData(integerFormat.format(passedTests), (passedTests > 0 ? "num green-bg num-center" : "num num-center")); // Center alignment for passed writeTableData(integerFormat.format(skippedTests), (skippedTests > 0 ? "num orange-bg num-center" : "num num-center")); // Center alignment for skipped - writeTableData(integerFormat.format(failedTests), (failedTests > 0 ? "num attn num-center" : "num num-center")); // Center alignment for failed + writeTableData(integerFormat.format(failedTests), (failedTests > 0 ? "num attn num-center red-text" : "num num-center")); writeTableData(decimalFormat.format(duration), "num num-center"); // Center alignment for time writer.print(""); @@ -448,9 +446,9 @@ private int writeScenarioSummary(String description, List classResu long scenarioDuration = result.getEndMillis() - scenarioStart; buffer.append("").append("").append(scenarioName).append("") - .append("").append(scenarioDescription).append("") - .append("").append(scenarioDuration).append(""); + .append(scenarioIndex).append("\">").append(scenarioName).append("") + .append("").append(scenarioDescription).append("") + .append("").append(scenarioDuration).append(""); scenarioIndex++; } diff --git a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketMakerService.java b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketMakerService.java index f197e99a3..9e837b9d6 100644 --- a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketMakerService.java +++ b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketMakerService.java @@ -727,7 +727,6 @@ boolean packPacket(String containerRootFolder, String regId, String type, String synchronized (this) { Files.delete(Path.of(containerRootFolder + UNENCZIP)); FileSystemUtils.deleteRecursively(Path.of(containerRootFolder)); - } String containerMetaDataFileLocation = containerRootFolder + JSON; @@ -767,13 +766,17 @@ boolean packContainer(String containerRootFolder, String contextKey) throws Exce * { logger.error("Encryption failed!!! "); return false; } } return true; } */ - public boolean zipAndEncrypt(Path zipSrcFolder, String contextKey) throws Exception { + public synchronized boolean zipAndEncrypt(Path zipSrcFolder, String contextKey) throws Exception { Path finalZipFile = Path.of(zipSrcFolder + UNENCZIP); // Use buffered streams try (BufferedOutputStream bufferedOutputStream = new BufferedOutputStream( new FileOutputStream(finalZipFile.toFile()))) { zipper.zipFolder(zipSrcFolder, bufferedOutputStream, contextKey); } + catch (Exception e) { + logger.error("Failed to zip the folder "); + return false; + } try (BufferedInputStream zipFileInputStream = new BufferedInputStream( new FileInputStream(finalZipFile.toFile().getAbsolutePath()))) { boolean result = cryptoUtil.encryptPacket(zipFileInputStream.readAllBytes(), @@ -785,6 +788,10 @@ public boolean zipAndEncrypt(Path zipSrcFolder, String contextKey) throws Except return false; } } + catch (Exception e) { + logger.error("Failed to zip the folder "); + return false; + } return true; } From 1b8b69d3f0a30e2c49537eb54264e173258cd60a Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Tue, 4 Jun 2024 17:53:12 +0530 Subject: [PATCH 23/57] MOSIP-33598 Signed-off-by: Pankaj Godiyal --- .../src/main/resources/config/scenarios.json | 2 +- .../resource/config/default.properties | 1 + .../resource/invalid_cert/device-dsk-partner.p12 | Bin 0 -> 2643 bytes .../dataprovider/BiometricDataProvider.java | 3 ++- 4 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 mosip-packet-creator/src/main/resources/dockersupport/centralized/mosip-packet-creator/resource/invalid_cert/device-dsk-partner.p12 diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json index 978177925..0221ce5a3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json @@ -9862,7 +9862,7 @@ "Description": "Sets the context for scenario execution", "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_setContext(env_context,$$details1,false,true/*GENERATE_PRIVATE_KEY*/)" + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,true/*INVALID_DEVICE_CERTIFICATE*/)" }, "Step-3": { "Description": "Performs health check of required server components to run end-to-end scenarios", diff --git a/mosip-packet-creator/src/main/resources/dockersupport/centralized/mosip-packet-creator/resource/config/default.properties b/mosip-packet-creator/src/main/resources/dockersupport/centralized/mosip-packet-creator/resource/config/default.properties index 7bd5a9ad8..8966bc59d 100644 --- a/mosip-packet-creator/src/main/resources/dockersupport/centralized/mosip-packet-creator/resource/config/default.properties +++ b/mosip-packet-creator/src/main/resources/dockersupport/centralized/mosip-packet-creator/resource/config/default.properties @@ -30,6 +30,7 @@ enableExternalBiometricSource=false #externalBiometricsource=../mountvolume/profile_resource/CBEFF_validated_data/jp2/ mdsprofilepath=./resource/Profile +invalidCertpath=./resource/invalid_cert #Target end points authManagerURL=v1/authmanager/authenticate/internal/useridPwd diff --git a/mosip-packet-creator/src/main/resources/dockersupport/centralized/mosip-packet-creator/resource/invalid_cert/device-dsk-partner.p12 b/mosip-packet-creator/src/main/resources/dockersupport/centralized/mosip-packet-creator/resource/invalid_cert/device-dsk-partner.p12 new file mode 100644 index 0000000000000000000000000000000000000000..3fe98ad8935d8df12f713233127678e914b7dd84 GIT binary patch literal 2643 zcmY+Ec{mh`8pdbF%$Py8#@NT$mk~3}gzO|cWf{9HDMHyA22q2dq3lbO4no-}TO--R zvEM9_eJO1yBeJAi_dfTY^PE4v?|Yv2eZTk5AC|&q4Fa-YDQqw(T!Csr-8}(h1r}1^ z`(O%u2TOr7u@p$)KP-qlm;!M=mWjt>17-i;7Y7>Tb#}Ql&KWG+!3k?CKScc zS7#m`YS!esMj>Yt@geJ>e@6WPFBomrldVE{3r6pqlKhGFn2peiRIb}^vp#oK6CYAV ziYP5N+Sv{|GpA&%+#VJ`KUnc~KyONcxWDEH`)&NQ-5YOwaQTAeRB*MFs$zi-5H_e zAl{z#wA|qu`66Fd#$&G#_fonjx1|=A30;DH

sH>TlDi{Qkz8t{H}l8g|}Bm`Z5l zzi)P1RUqF#K!?q1unUy3RFzfLg&1RT2!#rQ$aI;}L&o=q4Krf(8Pf z8|1C1Nqs*Hcs|BFQ&nyC9``K~z?TOP31quG zDg2aT2j5%0-ZV4du+YRNw_XA~8WPjDJ1hOO7H~ukv?)k%%}{#$>zhF4tLajX!gk`; zThxp&Z*(N{zM!N{+;8SkIlO#%%+S&0Y%lqSKRsNF_CputP z)_c?XYk9t)+AQ{lMnBe-hTJ;UDLN~y2$OSD%27?qt-rH1I1)5pj3iuyiV!n!wl8n9 z%@vKT6eu|yk?RbM@oCw4C>IUuOgSA&ybu4*3q=u&7B2Iwi*MCpT3{EkvP>y&)|Ix` z9oZ`bgS7$cB6SKnumFn|CA6Y1qY|mj>prmtOG4S-YI4wTb?--4omq?@rd{I7 z*MT{QvLg%mm%lk;;U{kDl3bMJ)W)BnFwIVVISaUJ?Rx9Qz8%q}C6jv1c&5m|%1niu zpbu4SeYeW&Ub=0j`8Nkc&`WXSh|Z(~+ZqQ0ecn2I(!HrPIQd2?PMPNEm%ZVR>U)l z1mCp<{P=76^D{g6fbgu0Fx~U%Q@4V0c8iJPZJ&7sU}+qqMd&2~bYh31C5l(ef`h7h zCT6Kak4M`1bHH|^s$6O+D!%F6HnD%R)UA(01nl75k_1S-E9tIyaeU4z$spM=Adqxg zhl8=b;i~bVAR79N(mVee=)Xd&&|{_s9!q{8AmI3T{p|q%L0Ra3DC=I;@8_%?y_fMCRXn#E`26e0(~AF6 z_7(*!XXij<+~8ZW#H=pfjW*(w+G+X`ywOzya@p(KyAY{Nyx<85?dH8ssqa@R3G)yq z)y7Rc*Sd;=L%v=d-sDsmx)ZCXeb(#@ci;}Ne2om0Mzckk=8H#@t4V8AStiw7!f>>5 zJRD|nQ}Wul6bwd=bluWw{tdxW60DX#(tY*}m*XVngPU)QLYi)?3d$r;cDeAl1+@lG zCDPt;UBc#l)@>IbWwsvG7QIq`XPd|(5lzD5;?>G4Cm-pSvV>dn$2JkVi5yF+EGTz<> zf!*cgtFeWN74TG_^)6{jL&8GagU^c?!JRot5e2G!#2{DK%&#`>gS&%+`qd9zpeg&6 zT^qJuSnr!=h%wSciYt(87wAy+CV=hNWss3 zK%(6%rQ0?$JUrD_KB6ZshGeJvvS0m&_>#D#Zf*ERR)4tN{&Gl|%J_4!@415=d)(Yg zz?JK3HIDTsvZVc^rm%3(BJs!P9-PYet@Xkp@>lLd3B3a1{^|DQhWoE6)Mbk$N3;3y z`&V8Ztc3Ekm6n{rtxnV<&m&bnTTOGr1KkODB#sGg)Vz@cDOk)b<`7qn9-DIr2 zas6XrU=j@?%Ssq1*{XSW*3mw;Q8TiB*5H}|a*rdPz(8Mrl$-zIV?dC+acDiGAkwef zlq`pQ#ABkX<4P0O73vbX3)TyM(A<=nzTe6CGLnPv2{j2Uo@_Q{bAIKXyOR00kK`f?g*r^AHSaiN?%5Z(Gcb#rvo)Azt|GD-tuTZ?ENTN1(g9 zT`}3zs^2N-o2_)Bg^M}KGP~E2@CbPl_IMi1VzkFAed1KswsUG7lmCx=@YpS_N=MB- zlPexFkZ7c-Ckr8dQUN?t`G?^Kk}$#D`G^)Flr<&ZaVKaT)eFMv@oz;t&AK;%qS84q z5;MJ*X0F+!kD}(?Iu(7F4~kI#_Wm916j3vVepj05HN^E7V1<#soq( q)nB%J&RybjnX&;!Wb}NBkv+YvqtEr8m2-+IG~qB50Ac}B3;zuYqP;`_ literal 0 HcmV?d00001 diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java index f1f428374..0081b16a8 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java @@ -259,7 +259,8 @@ public static MDSRCaptureModel regenBiometricViaMDS(ResidentModel resident, Stri .parseBoolean(VariableManager.getVariableValue(contextKey, "invalidCertFlag").toString()); if (invalidCertFlag) - p12path = Paths.get(certsDir, "invalid_cert"); + p12path = Paths.get(VariableManager.getVariableValue(VariableManager.NS_DEFAULT, "invalidCertpath") + .toString()); else p12path = Paths.get(certsDir, "DSL-IDA-" + VariableManager.getVariableValue(contextKey, "db-server")); From 44916e97f63ff38a985dae38efa2782db0757b01 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Fri, 7 Jun 2024 17:44:35 +0530 Subject: [PATCH 24/57] MOSIP-33301 Signed-off-by: Pankaj Godiyal --- .../src/main/resources/config/Kernel.properties | 4 ++-- .../dslrig/dataprovider/preparation/MosipDataSetup.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties index daf3c6f4a..4037acfce 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties @@ -281,7 +281,7 @@ reportExpirationInDays=3 # ---- Add scenarios to skip from automation and server side ------------------------------------- # supported values "S-scnearioNumber" for server side and "A-scnearioNumber" for automation -scenariosToSkip=S-157 +scenariosToSkip=S-157,S-80 #-- Add scenarios to include in the the execution list------ # -- Empty if we want to execute all the scenarios--- scenariosToExecute= @@ -297,4 +297,4 @@ resident_esignet=v1/esignet/actuator/health esignetMockBaseURL=esignet-insurance. slack-webhook-url= serverErrorsToMonitor=IDA-MLC-018 -regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env/ \ No newline at end of file +regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env \ No newline at end of file diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java index 73d8da3ac..65de1b64d 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/preparation/MosipDataSetup.java @@ -93,7 +93,7 @@ public static List getMachineDetail(String machineId, String String url = VariableManager.getVariableValue(contextKey,"urlBase").toString() + "v1/masterdata/machines/"; - url = url + machineId + "/ "; + url = url + machineId ; String run_context = VariableManager.getVariableValue(contextKey,"urlBase").toString() + RUN_CONTEXT; Object o =getCache(url,run_context); if(o != null) From 006a78aa08334caee2dd39a8a2ef6ed5a1db4108 Mon Sep 17 00:00:00 2001 From: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> Date: Mon, 10 Jun 2024 17:41:22 +0530 Subject: [PATCH 25/57] MOSIP-32632 Updated the POM version with respect to the module wise testrig (#626) * Updated the pom version Signed-off-by: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> * Updated the pom version Signed-off-by: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> * Updated the pom version Signed-off-by: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> * Updated the pom version Signed-off-by: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> * Updated the pom version Signed-off-by: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> * Updated the pom version Signed-off-by: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> * Updated the pom version Signed-off-by: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> * Updated the pom version Signed-off-by: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> * Updated the pom version Signed-off-by: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> --------- Signed-off-by: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> --- mosip-acceptance-tests/ivv-core/pom.xml | 6 +-- mosip-acceptance-tests/ivv-dg/pom.xml | 10 ++-- .../ivv-orchestrator/pom.xml | 46 +++++++++---------- mosip-acceptance-tests/ivv-parser/pom.xml | 8 ++-- mosip-acceptance-tests/pom.xml | 4 +- mosip-packet-creator/pom.xml | 4 +- mosipTestDataProvider/pom.xml | 4 +- pom.xml | 4 +- 8 files changed, 43 insertions(+), 43 deletions(-) diff --git a/mosip-acceptance-tests/ivv-core/pom.xml b/mosip-acceptance-tests/ivv-core/pom.xml index 434f32b82..f74e0294c 100644 --- a/mosip-acceptance-tests/ivv-core/pom.xml +++ b/mosip-acceptance-tests/ivv-core/pom.xml @@ -5,13 +5,13 @@ io.mosip.testrig.dslrig.ivv dslrig-ivv-parent - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT 4.0.0 io.mosip.testrig.dslrig.ivv.core dslrig-ivv-core - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT 3.7.0.1746 @@ -88,4 +88,4 @@ - \ No newline at end of file + diff --git a/mosip-acceptance-tests/ivv-dg/pom.xml b/mosip-acceptance-tests/ivv-dg/pom.xml index 4e4f785d1..16af5be0a 100644 --- a/mosip-acceptance-tests/ivv-dg/pom.xml +++ b/mosip-acceptance-tests/ivv-dg/pom.xml @@ -5,10 +5,10 @@ io.mosip.testrig.dslrig.ivv dslrig-ivv-parent - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT 4.0.0 - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT io.mosip.testrig.dslrig.ivv.dg dslrig-ivv-dg @@ -18,12 +18,12 @@ io.mosip.testrig.dslrig.ivv.core dslrig-ivv-core - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT io.mosip.testrig.dslrig.ivv.parser dslrig-ivv-parser - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT @@ -59,4 +59,4 @@ - \ No newline at end of file + diff --git a/mosip-acceptance-tests/ivv-orchestrator/pom.xml b/mosip-acceptance-tests/ivv-orchestrator/pom.xml index 1df24566c..e03dd80b7 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/pom.xml +++ b/mosip-acceptance-tests/ivv-orchestrator/pom.xml @@ -5,14 +5,14 @@ io.mosip.testrig.dslrig.ivv dslrig-ivv-parent - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT io.mosip.testrig.dslrig.ivv.orchestrator dslrig-ivv-orchestrator mosip-dsl-test - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT testng.xml 3.7.0.1746 @@ -60,7 +60,7 @@ shade - dslrig-ivv-orchestrator-1.2.0.1-SNAPSHOT-jar-with-dependencies + dslrig-ivv-orchestrator-1.2.1-SNAPSHOT-jar-with-dependencies io.mosip.testrig.dslrig.ivv.core dslrig-ivv-core - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT io.mosip.testrig.dslrig.ivv.dg dslrig-ivv-dg - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT com.aventstack @@ -117,9 +117,9 @@ compile - io.mosip.testrig.apirig.automationtests.commons - automationtests-commons - 1.2.0.1-SNAPSHOT + io.mosip.testrig.apirig.apitest.commons + apitest-commons + 1.2.1-SNAPSHOT @@ -132,46 +132,46 @@ io.mosip.esignet apitest-esignet - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT io.mosip.authentication apitest-auth - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT io.mosip.idrepo apitest-idrepo - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT io.mosip.masterdata apitest-masterdata - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT io.mosip.mimoto apitest-mimoto - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT - io.mosip.testrig.apirig.apitests.partner - apitests-partner - 1.2.0.1-SNAPSHOT + io.mosip.partner + apitest-pms + 1.2.1-SNAPSHOT - io.mosip.testrig.apirig.automationtests.prereg - automationtests-prereg - 1.2.0.1-SNAPSHOT + io.mosip.prereg + apitest-prereg + 1.2.1-SNAPSHOT - io.mosip.testrig.apirig.automationtests.resident - automationtests-resident - 1.2.0.1-SNAPSHOT + io.mosip.resident + apitest-resident + 1.2.1-SNAPSHOT @@ -243,4 +243,4 @@ - \ No newline at end of file + diff --git a/mosip-acceptance-tests/ivv-parser/pom.xml b/mosip-acceptance-tests/ivv-parser/pom.xml index 0f7ef0f6a..76391fa58 100644 --- a/mosip-acceptance-tests/ivv-parser/pom.xml +++ b/mosip-acceptance-tests/ivv-parser/pom.xml @@ -5,19 +5,19 @@ io.mosip.testrig.dslrig.ivv dslrig-ivv-parent - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT 4.0.0 io.mosip.testrig.dslrig.ivv.parser dslrig-ivv-parser - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT io.mosip.testrig.dslrig.ivv.core dslrig-ivv-core - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT - \ No newline at end of file + diff --git a/mosip-acceptance-tests/pom.xml b/mosip-acceptance-tests/pom.xml index c3a8a2868..ca867a58e 100644 --- a/mosip-acceptance-tests/pom.xml +++ b/mosip-acceptance-tests/pom.xml @@ -5,7 +5,7 @@ io.mosip.testrig.dslrig.ivv dslrig-ivv-parent pom - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT MPL 2.0 @@ -197,4 +197,4 @@ - \ No newline at end of file + diff --git a/mosip-packet-creator/pom.xml b/mosip-packet-creator/pom.xml index ac79c170f..d39cd9521 100644 --- a/mosip-packet-creator/pom.xml +++ b/mosip-packet-creator/pom.xml @@ -31,7 +31,7 @@ io.mosip.testrig.dslrig.packetcreator dslrig-packetcreator - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT dslrig-packetcreator dslrig-packetcreator @@ -143,7 +143,7 @@ io.mosip.testrig.dslrig.dataprovider dslrig-dataprovider - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT diff --git a/mosipTestDataProvider/pom.xml b/mosipTestDataProvider/pom.xml index 27e1556ec..08fb0e018 100644 --- a/mosipTestDataProvider/pom.xml +++ b/mosipTestDataProvider/pom.xml @@ -4,7 +4,7 @@ 4.0.0 io.mosip.testrig.dslrig.dataprovider dslrig-dataprovider - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT 3.7.0.1746 @@ -348,4 +348,4 @@ - \ No newline at end of file + diff --git a/pom.xml b/pom.xml index ff2587c2c..a99a49a5f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 io.mosip.automation automationtests-parent - 1.2.0.1-SNAPSHOT + 1.2.1-SNAPSHOT pom automationtests parent @@ -286,4 +286,4 @@ - \ No newline at end of file + From 28d78fbbc496271747c3b7583311e93755982e13 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Wed, 12 Jun 2024 11:35:03 +0530 Subject: [PATCH 26/57] Save local changes before merge Signed-off-by: Pankaj Godiyal --- .../ivv/e2e/methods/DemoAuthentication.java | 225 ++++++++----- .../ivv/orchestrator/EmailableReport.java | 17 +- .../dslrig/ivv/orchestrator/Orchestrator.java | 21 +- .../ivv/orchestrator/PacketUtility.java | 10 +- .../main/resources/config/Kernel.properties | 4 +- .../config/Kernel_dev-staging.properties | 300 ++++++++++++++++++ .../src/main/resources/config/scenarios.json | 182 +++++++++++ .../idaData/DemoAuth/DemoIdentityEncrypt.hbs | 1 + 8 files changed, 673 insertions(+), 87 deletions(-) create mode 100644 mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java index 15cb202b4..d38c51a3d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java @@ -1,9 +1,13 @@ package io.mosip.testrig.dslrig.ivv.e2e.methods; import java.security.NoSuchAlgorithmException; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Random; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; @@ -12,7 +16,6 @@ import org.json.JSONObject; import io.mosip.testrig.apirig.admin.fw.util.AdminTestException; -import io.mosip.testrig.apirig.admin.fw.util.AdminTestUtil; import io.mosip.testrig.apirig.admin.fw.util.TestCaseDTO; import io.mosip.testrig.apirig.authentication.fw.precon.JsonPrecondtion; import io.mosip.testrig.apirig.authentication.fw.util.AuthenticationTestException; @@ -28,7 +31,7 @@ public class DemoAuthentication extends BaseTestCaseUtil implements StepInterfac static Logger logger = Logger.getLogger(DemoAuthentication.class); private static final String DEMOPATH = "idaData/DemoAuth/DemoAuth.yml"; DemoAuthSimplePostForAutoGenId demoAuth = new DemoAuthSimplePostForAutoGenId(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -50,6 +53,7 @@ public void run() throws RigInternalError { Object[] casesListUIN = null; List idType = BaseTestCase.getSupportedIdTypesValueFromActuator(); Object[] casesListVID = null; + String updateAgeFlag = null; // AuthPartnerProcessor.startProcess(); // step.getScenario().getUinPersonaProp().put("2759239619", @@ -57,7 +61,8 @@ public void run() throws RigInternalError { if (step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); + this.hasError = true; + throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); } else { demofields = step.getParameters().get(0); if (!StringUtils.isBlank(demofields)) @@ -94,6 +99,9 @@ public void run() throws RigInternalError { } else vidList = new ArrayList<>(step.getScenario().getVidPersonaProp().stringPropertyNames()); + if (step.getParameters().size() > 4) + updateAgeFlag = step.getParameters().get(4); + Object[] testObj = demoAuth.getYmlTestData(DEMOPATH); TestCaseDTO test = (TestCaseDTO) testObj[0]; // test.setEndPoint(test.getEndPoint().replace("$PartnerKey$", @@ -105,17 +113,17 @@ public void run() throws RigInternalError { personFilePathvalue = _personFilePath; } else if (step.getScenario().getUinPersonaProp().containsKey(uin)) personFilePathvalue = step.getScenario().getUinPersonaProp().getProperty(uin); - else - { - this.hasError=true;throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); - } + else { + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); + } List demoFetchList = new ArrayList(); demoFetchList.add(E2EConstants.DEMOFETCH); - demoResponse = packetUtility.retrieveBiometric(personFilePathvalue, demoFetchList,step); + demoResponse = packetUtility.retrieveBiometric(personFilePathvalue, demoFetchList, step); List addressFetchList = new ArrayList(); addressFetchList.add(E2EConstants.DEMOADDRESSFETCH); - addressResponse = packetUtility.retrieveBiometric(personFilePathvalue, addressFetchList,step); + addressResponse = packetUtility.retrieveBiometric(personFilePathvalue, addressFetchList, step); String input = test.getInput(); input = JsonPrecondtion.parseAndReturnJsonContent(input, uin, "individualId"); JSONObject inputJson = new JSONObject(input); @@ -130,16 +138,28 @@ public void run() throws RigInternalError { String demoValue = null; switch (demoField) { - case E2EConstants.DEMODOB: + case E2EConstants.DEMOAGE: demoFieldValueKey = E2EConstants.DEMODOB; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values - if (demoValue == null) - { - this.hasError=true;throw new RigInternalError( - + + if (updateAgeFlag != null && updateAgeFlag.contains("ageDecrease") ) { + demoValue = decreaseAge(demoValue); + } + else { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); + LocalDate birthDate = LocalDate.parse(demoValue, formatter); + LocalDate currentDate = LocalDate.now(); + + demoValue = String.valueOf(ChronoUnit.YEARS.between(birthDate, currentDate)); + } + + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError( + "Unable to get the Demo value for field " + demoField + " from Persona"); - } + } inputJson.put(demoField, demoValue); break; @@ -147,10 +167,11 @@ public void run() throws RigInternalError { demoFieldValueKey = E2EConstants.DEMOEMAIL; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values - if (demoValue == null) - {this.hasError=true;throw new RigInternalError( + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - } + } inputJson.put(demoField, demoValue); break; @@ -158,9 +179,11 @@ public void run() throws RigInternalError { demoFieldValueKey = E2EConstants.DEMOPHONE; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values - if (demoValue == null) - {this.hasError=true;throw new RigInternalError( - "Unable to get the Demo value for field " + demoField + " from Persona");} + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError( + "Unable to get the Demo value for field " + demoField + " from Persona"); + } inputJson.put(demoField, demoValue); break; @@ -174,15 +197,15 @@ public void run() throws RigInternalError { addLine3 = JsonPrecondtion.JsonObjSimpleParsing(addressResponse, E2EConstants.DEMOADDRESSFETCH, E2EConstants.DEMOADDRESSLINE3); } catch (Exception e) { - this.hasError=true;throw new RigInternalError(e.getMessage()); + this.hasError = true; + throw new RigInternalError(e.getMessage()); } - if (addLine1 == null || addLine2 == null || addLine3 == null) - { - this.hasError=true; + if (addLine1 == null || addLine2 == null || addLine3 == null) { + this.hasError = true; throw new RigInternalError( - + "Unable to get the Demo value for field " + demoField + " from Persona"); - } + } JSONArray addressLine1Array = new JSONArray(); JSONObject addressLine1Obj = new JSONObject(); addressLine1Obj.put("language", BaseTestCase.getLanguageList().get(0)); @@ -213,11 +236,12 @@ public void run() throws RigInternalError { E2EConstants.DEMOFETCH + "." + E2EConstants.DEMOMNAME); lastNm = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + E2EConstants.DEMOLNAME); - if (firstNm == null || midNm == null || lastNm == null) - { - this.hasError=true;throw new RigInternalError( + if (firstNm == null || midNm == null || lastNm == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }fullname = firstNm + " " + midNm + " " + lastNm; + } + fullname = firstNm + " " + midNm + " " + lastNm; JSONArray nameArray = new JSONArray(); JSONObject nameObj = new JSONObject(); nameObj.put("language", BaseTestCase.getLanguageList().get(0)); @@ -235,12 +259,12 @@ public void run() throws RigInternalError { genderObj.put("language", BaseTestCase.getLanguageList().get(0)); genderObj.put("value", demoValue); genArray.put(genderObj); - if (demoValue == null) - { - this.hasError=true; + if (demoValue == null) { + this.hasError = true; throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }inputJson.put(demoField, genArray); + } + inputJson.put(demoField, genArray); break; default: @@ -286,7 +310,8 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } } catch (AuthenticationTestException | AdminTestException e) { - this.hasError=true;throw new RigInternalError(e.getMessage()); + this.hasError = true; + throw new RigInternalError(e.getMessage()); } } @@ -300,18 +325,18 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") personFilePathvalue = _personFilePath; } else if (step.getScenario().getVidPersonaProp().containsKey(vid)) personFilePathvalue = step.getScenario().getVidPersonaProp().getProperty(vid); - else - { + else { - this.hasError=true;throw new RigInternalError("Persona doesn't exist for the given UIN " + vid); - } + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given UIN " + vid); + } List demoFetchList = new ArrayList(); demoFetchList.add(E2EConstants.DEMOFETCH); - demoResponse = packetUtility.retrieveBiometric(personFilePathvalue, demoFetchList,step); + demoResponse = packetUtility.retrieveBiometric(personFilePathvalue, demoFetchList, step); List addressFetchList = new ArrayList(); addressFetchList.add(E2EConstants.DEMOADDRESSFETCH); - addressResponse = packetUtility.retrieveBiometric(personFilePathvalue, addressFetchList,step); + addressResponse = packetUtility.retrieveBiometric(personFilePathvalue, addressFetchList, step); String input = test.getInput(); input = JsonPrecondtion.parseAndReturnJsonContent(input, vid, "individualId"); JSONObject inputJson = new JSONObject(input); @@ -323,40 +348,56 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") for (String demoField : demofieldList) { String demoFieldValueKey = null; String demoValue = null; + int age = 0; switch (demoField) { - case E2EConstants.DEMODOB: + case E2EConstants.DEMOAGE: demoFieldValueKey = E2EConstants.DEMODOB; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values - if (demoValue == null) - { + + if (updateAgeFlag != null && updateAgeFlag.contains("ageDecrease") ) { + demoValue = decreaseAge(demoValue); + } + else { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); + LocalDate birthDate = LocalDate.parse(demoValue, formatter); + LocalDate currentDate = LocalDate.now(); + + demoValue = String.valueOf(ChronoUnit.YEARS.between(birthDate, currentDate)); + } + if (demoValue == null) { - this.hasError=true;throw new RigInternalError( + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }inputJson.put(demoField, demoValue); + } + inputJson.put(demoField, demoValue); break; + case E2EConstants.DEMOEMAIL: demoFieldValueKey = E2EConstants.DEMOEMAIL; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values - if (demoValue == null) - { - this.hasError=true;throw new RigInternalError( + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }inputJson.put(demoField, demoValue); + } + inputJson.put(demoField, demoValue); break; case E2EConstants.DEMOYMLPHONE: demoFieldValueKey = E2EConstants.DEMOPHONE; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values - if (demoValue == null) - { - this.hasError=true;throw new RigInternalError( + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - } inputJson.put(demoField, demoValue); + } + inputJson.put(demoField, demoValue); break; case E2EConstants.DEMOADDRESSFETCH: @@ -368,15 +409,15 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") E2EConstants.DEMOADDRESSLINE2); addLine3 = JsonPrecondtion.JsonObjSimpleParsing(addressResponse, E2EConstants.DEMOADDRESSFETCH, E2EConstants.DEMOADDRESSLINE3); - } catch (Exception e) - { - this.hasError=true;throw new RigInternalError(e.getMessage()); + } catch (Exception e) { + this.hasError = true; + throw new RigInternalError(e.getMessage()); } - if (addLine1 == null || addLine2 == null || addLine3 == null) - { - this.hasError=true;throw new RigInternalError( + if (addLine1 == null || addLine2 == null || addLine3 == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - } + } JSONArray addressLine1Array = new JSONArray(); JSONObject addressLine1Obj = new JSONObject(); addressLine1Obj.put("language", BaseTestCase.getLanguageList().get(0)); @@ -407,11 +448,12 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") E2EConstants.DEMOFETCH + "." + E2EConstants.DEMOMNAME); lastNm = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + E2EConstants.DEMOLNAME); - if (firstNm == null || midNm == null || lastNm == null) - { - this.hasError=true;throw new RigInternalError( + if (firstNm == null || midNm == null || lastNm == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }fullname = firstNm + " " + midNm + " " + lastNm; + } + fullname = firstNm + " " + midNm + " " + lastNm; JSONArray nameArray = new JSONArray(); JSONObject nameObj = new JSONObject(); nameObj.put("language", BaseTestCase.getLanguageList().get(0)); @@ -429,11 +471,12 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") genderObj.put("language", BaseTestCase.getLanguageList().get(0)); genderObj.put("value", demoValue); genArray.put(genderObj); - if (demoValue == null) - { - this.hasError=true;throw new RigInternalError( + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }inputJson.put(demoField, genArray); + } + inputJson.put(demoField, genArray); break; default: @@ -479,7 +522,8 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } } catch (AuthenticationTestException | AdminTestException e) { - this.hasError=true;throw new RigInternalError(e.getMessage()); + this.hasError = true; + throw new RigInternalError(e.getMessage()); } } @@ -488,4 +532,43 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } } + + public static String decreaseAge(String dateString) { + // Assuming dateString comes in the format "YYYY/MM/DD" + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); + LocalDate birthDate = LocalDate.parse(dateString, formatter); + LocalDate currentDate = LocalDate.now(); + + long currentAge = ChronoUnit.YEARS.between(birthDate, currentDate); + + // If the age is less than 1 year, we cannot decrease it + if (currentAge < 1) { + return "0"; // Return "0" as a string + } + + Random random = new Random(); + int yearsToSubtract = random.nextInt((int) currentAge) + 1; // Random number between 1 and currentAge + + int decreasedAge = (int) currentAge - yearsToSubtract; + + // Convert the decreased age to a string and return it + return String.valueOf(decreasedAge); + } + + + + public static String increaseAge(String dateString) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); + LocalDate birthDate = LocalDate.parse(dateString, formatter); + + Random random = new Random(); + int yearsToAdd = random.nextInt(10) + 1; + LocalDate newDate = birthDate.plusYears(yearsToAdd); + + LocalDate currentDate = LocalDate.now(); + long newAge = ChronoUnit.YEARS.between(newDate, currentDate); + + return String.valueOf(newAge); + } + } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java index dc6e5067f..3bccf31dd 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/EmailableReport.java @@ -218,9 +218,14 @@ protected void writeStylesheet() { // To top link writer.print(".totop {font-size:85%;text-align:center;border-bottom:2px solid #000}"); + // Base class for all boxes + writer.print(".box {padding: 10px; border-radius: 5px; color: #FFF; word-wrap: break-word; max-width: 100%;}"); + // Background color utility classes - writer.print(".orange-bg {background-color: #FFA500; color: #FFF;}"); - writer.print(".green-bg {background-color: #0A0; color: #FFF;}"); + writer.print(".orange-bg {background-color: #FFA500;}"); + writer.print(".green-bg {background-color: #0A0;}"); + writer.print(".black-bg {background-color: black;}"); + writer.print(".darkgray-bg {background-color: darkgray;}"); // Uniform width for specific columns and center alignment for specific cells writer.print(".num-center {text-align:center;}"); @@ -229,7 +234,13 @@ protected void writeStylesheet() { writer.print(".scenario-step {text-align:left;}"); // New class for log box - writer.print(".log-box {background-color: black; color: white; padding: 10px; border-radius: 5px;}"); + writer.print(".log-box {background-color: black;}"); + + // Class for textarea styling + writer.print(".textarea-box {border:solid 1px gray; background-color: darkgray; padding: 10px; border-radius: 5px; width: 100%; resize: none;}"); + + // Class for left-aligned boxes + writer.print(".left-aligned {text-align:left;}"); writer.print(""); } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java index 4d3e54231..c3371483c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java @@ -329,9 +329,12 @@ private void run(int i, Scenario scenario, HashMap configs, Hash store.setRegistrationUsers(scenario.getRegistrationUsers()); store.setPartners(scenario.getPartners()); store.setProperties(this.properties); + Reporter.log( - "

Scenario_" - + scenario.getId() + ": " + scenario.getDescription() + "
"); + "
Scenario_" + + scenario.getId() + ": " + scenario.getDescription() + "
" + ); + // for (Scenario.Step step : scenario.getSteps()) { int jumpBackIndex = 0; int iterationCount = 0; @@ -364,20 +367,22 @@ private void run(int i, Scenario scenario, HashMap configs, Hash String stepParams[] = getStepDetails("S_" + step.getScenario().getId() + stepAction); if (!step.getName().contains("loopWindow")) { + StringBuilder sb = new StringBuilder(); - sb.append( - "
"); + sb.append(""); Reporter.log(sb.toString()); + } - + // Steps can be added in scenario sheet as: ---- e2e_loopWindow(START /*LOOP_WINDOW_MARKER*/) ----e2e_loopWindow(END/*LOOP_WINDOW_MARKER*/,loopCount/* LOOP_COUNT*/) - // Add step/steps to be repeated for a given loopCount in between the above mentioned steps in the scenario sheet + // Add step/steps to be repeated for a given loopCount in between the above mentioned steps in the scenario sheet if (step.getName().contains("loopWindow")) { if (step.getParameters().get(0).contains("START")) { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java index aefd8ab1d..259dc5647 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java @@ -1208,7 +1208,7 @@ public String retrieveBiometric(String resFilePath, List retriveAttribut jsonReqInner.put(PERSONAFILEPATH, resFilePath); JSONArray jsonReq = new JSONArray(); jsonReq.put(0, jsonReqInner); - Response response = getReqest(url, jsonReq.toString(), "Retrive BiometricData", step); + Response response = getRequest(url, jsonReq.toString(), "Retrive BiometricData", step); if (response.getBody().asString().equals("")) { this.hasError = true; throw new RigInternalError( @@ -1220,7 +1220,7 @@ public String retrieveBiometric(String resFilePath, List retriveAttribut } - private Response getReqest(String url, String body, String opsToLog, Scenario.Step step) { + private Response getRequest(String url, String body, String opsToLog, Scenario.Step step) { Response apiResponse = getRequestWithbody(url, body, MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, step); return apiResponse; @@ -1240,7 +1240,11 @@ private Response getRequestWithbody(String url, String body, String contentHeade getResponse = given().relaxedHTTPSValidation().accept("*/*").contentType("application/json").when() .body(body).get(url).then().extract().response(); } - GlobalMethods.ReportRequestAndResponse("", "", url, body, getResponse.getBody().asString()); + /* + * GlobalMethods.ReportRequestAndResponse(null, + * getResponse.getHeaders().asList().toString(), url, body, + * getResponse.asString(),true); + */ return getResponse; } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties index 4037acfce..daf3c6f4a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties @@ -281,7 +281,7 @@ reportExpirationInDays=3 # ---- Add scenarios to skip from automation and server side ------------------------------------- # supported values "S-scnearioNumber" for server side and "A-scnearioNumber" for automation -scenariosToSkip=S-157,S-80 +scenariosToSkip=S-157 #-- Add scenarios to include in the the execution list------ # -- Empty if we want to execute all the scenarios--- scenariosToExecute= @@ -297,4 +297,4 @@ resident_esignet=v1/esignet/actuator/health esignetMockBaseURL=esignet-insurance. slack-webhook-url= serverErrorsToMonitor=IDA-MLC-018 -regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env \ No newline at end of file +regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env/ \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties new file mode 100644 index 000000000..4037acfce --- /dev/null +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties @@ -0,0 +1,300 @@ +#Kernel resource uris +#Make sure all resource apis are covered +authclientidsecretkeyURL=/v1/authmanager/authenticate/clientidsecretkey +authentication=/v1/authmanager/authenticate/useridPwd +authenticationInternal=/v1/authmanager/authenticate/internal/useridPwd +keycloakAuthURL=/auth/realms/master/protocol/openid-connect/token +auditLog_URI = /v1/auditmanager/audits +CentetMachineUserMappingToMasterData_uri= /v1/masterdata/registrationmachineusermappings +EmailNotification_URI= /v1/notifier/email/send +encrypt_URI=/v1/keymanager/encrypt +decrypt_URI=/v1/keymanager/decrypt +FetchApplication_URI=/v1/masterdata/applicationtypes +FetchApplication_lang_URI=/v1/masterdata/applicationtypes/{langcode} +FetchApplication_id_lang_URI=/v1/masterdata/applicationtypes/{code}/{langcode} +FetchBiometricAttribute_URI=/v1/masterdata/getbiometricattributesbyauthtype/{langcode}/{biometrictypecode} +FetchBiometricAuthType_URI=/v1/masterdata/biometrictypes/{langcode} +FetchBlackListedWord_URI=/v1/masterdata/blacklistedwords/{langcode} +FetchDevice_lang_URI = /v1/masterdata/devices/{languagecode} +FetchDevice_id_lang_URI = /v1/masterdata/devices/{languagecode}/{deviceType} +FetchDeviceSpec_lang_URI = /v1/masterdata/devicespecifications/{langcode} +FetchDeviceSpec_id_lang_URI = /v1/masterdata/devicespecifications/{langcode}/{devicetypecode} +FetchDocumentCategories_URI = /v1/masterdata/documentcategories/{langcode} +FetchDocumentCategories_URI_withcodeAndLangCode = /v1/masterdata/documentcategories/{code}/{langcode} +FetchDocumentTypes_URI = /v1/masterdata/documenttypes/{documentcategorycode}/{langcode} +FetchGenderType_URI = /v1/masterdata/gendertypes +FetchGenderType_id_lang_URI = /v1/masterdata/gendertypes/{langcode} +FetchHolidays_URI = /v1/masterdata/holidays +FetchHolidays_id_URI = /v1/masterdata/holidays/{holidayid} +FetchHolidays_id_lang_URI = /v1/masterdata/holidays/{holidayid}/{langcode} +FetchIDlist_URI = /v1/masterdata/idtypes/{langcode} +FetchLocationHierarchy_URI_withlangCode = /v1/masterdata/locations/{langcode} +FetchLocationHierarchy_URI_locationcode = /v1/masterdata/locations/{locationcode}/{langcode} +FetchLocationHierarchy_URI_hierarchyname = /v1/masterdata/locations/locationhierarchy/{hierarchyname} +FetchMachine_URI=/v1/masterdata/machines +FetchMachine_lang_URI=/v1/masterdata/machines/{langcode} +FetchMachine_id_lang_URI=/v1/masterdata/machines/{id}/{langcode} +FetchMachineHistory_URI = /v1/masterdata/machineshistories/{id}/{langcode}/{effdatetimes} +FetchRegCent_URI = /v1/masterdata/registrationcenters +FetchRegCent_id_lang_URI = /v1/masterdata/registrationcenters/{id}/{langcode} +FetchRegCent_loc_lang_URI = /v1/masterdata/getlocspecificregistrationcenters/{langcode}/{locationcode} +FetchRegCent_hir_name_lang_URI = /v1/masterdata/registrationcenters/{langcode}/{hierarchylevel}/{name} +FetchRegCent_prox_lang_URI = /v1/masterdata/getcoordinatespecificregistrationcenters/{langcode}/{longitude}/{latitude}/{proximitydistance} +FetchRegCentHistory_URI = /v1/masterdata/registrationcentershistory/{registrationCenterId}/{langcode}/{effectiveDate} +FetchRegCentHolidays_URI = /v1/masterdata/getregistrationcenterholidays/{langcode}/{registrationcenterid}/{year} +FetchRegcentMachUserMaping_URI = /v1/masterdata/getregistrationmachineusermappinghistory/{effdtimes}/{registrationcenterid}/{machineid}/{userid} +FetchRejectionReason_URI = /v1/masterdata/packetrejectionreasons/{reasoncategorycode}/{langcode} +FetchTemplate_URI = /v1/masterdata/templates +FetchTemplate_lang_URI = /v1/masterdata/templates/{langcode} +FetchTemplate_id_lang_URI = /v1/masterdata/templates/{langcode}/{templatetypecode} +FetchTitle_URI = /v1/masterdata/title/{langcode} +fetchAllTemplate = /v1/masterdata/templates/templatetypecodes/{code} +getApplicantType = /v1/masterdata/getApplicantType +fetchDeviceHistory = /v1/masterdata/deviceshistories/{id}/{langcode}/{effdatetimes} +getDocType_DocCatByAppID = /v1/masterdata/applicanttype/{applicantId}/languages +getDocTypeDocCatByLangCode = /v1/masterdata/validdocuments/{languagecode} +fetchImmediateChildLocation = /v1/masterdata/locations/immediatechildren/{locationcode}/{langcode} +getIndividualType = /v1/masterdata/individualtypes +getRoles = /v1/syncdata/roles +fetchRegCenter = /v1/masterdata/registrationcenters/validate/{id}/{langCode}/{timestamp} +fetchRegistrationCenterDeviceHistory = /v1/masterdata/registrationcenterdevicehistory/{regcenterid}/{deviceid}/{effdatetimes} +getusersBasedOnRegCenter = /v1/syncdata/userdetails/{regid} +licKeyGenerator = /v1/keymanager/license/generate +mapLicenseKey = /v1/keymanager/license/permission +fetchmapLicenseKey = /v1/keymanager/license/permission +OTPGeneration = /v1/otpmanager/otp/generate +OTPValidation = /v1/otpmanager/otp/validate +otpNotifier = /v1/otpnotifier/otp/send +RIDGenerator_URI = /v1/ridgenerator/generate/rid/{centerid}/{machineid} +SmsNotification_URI = /v1/notifier/sms/send +syncConf = /v1/syncdata/configs +fetchIncrementalData = /v1/syncjob/syncjobdef +fetchmasterdata = /v1/syncdata/masterdata +fetchmasterdatawithRID = /v1/syncdata/masterdata/{regcenterId} +SyncPublicKeyToRegClient_URI = /v1/keymanager/publickey/ +uingenerator = /v1/idgenerator/uin +validateGenderByName = /v1/masterdata/gendertypes/validate/{gendername} +validateLocationByName = /v1/masterdata/locations/validate/{locationname} +tokenIdGenerator_URI = /v1/keymanager/{uin}/{partnercode} +getRIDByUserId = /v1/authmanager/rid/{appid}/{userid} +syncMdatawithKeyIndex = /v1/syncdata/clientsettings +syncMdatawithRegCentIdKeyIndex = /v1/syncdata/clientsettings/{regcenterid} +uploadpublickey = /v1/syncdata/tpm/publickey +getUserHistory = /v1/masterdata/users/{id}/{eff_dtimes} +sendOtp = /v1/authmanager/authenticate/sendotp +useridOTP = /v1/authmanager/authenticate/useridOTP +#preregSendOtp = /preregistration/v1/login/sendOtp +preregSendOtp = /preregistration/v1/login/sendOtp/langcode +preregValidateOtp = /preregistration/v1/login/validateOtp +zoneMappingUrl=/v1/masterdata/zoneuser +zoneNameUrl=/v1/masterdata/zones/zonename +zoneMappingActivateUrl=/v1/masterdata/zoneuser +userCenterMappingUrl=/v1/masterdata/usercentermapping +bulkUploadUrl=/v1/admin/bulkupload +deleteMockAbisExpectations=v1/mock-abis-service/config/expectation +# OTP Details +OTPTimeOut = 181 +attempt = 10 +ConfigParameters=mosip.kernel.rid.length,mosip.kernel.uin.length,mosip.kernel.sms.country.code,mosip.kernel.sms.number.length,mosip.kernel.otp.default-length,mosip.kernel.otp.expiry-time,mosip.kernel.otp.key-freeze-time,mosip.kernel.otp.validation-attempt-threshold,mosip.kernel.otp.min-key-length,mosip.kernel.otp.max-key-length,mosip.kernel.licensekey.length,mosip.supported-languages +#Below users are used for authentication +#PARTNER +#Dont change the partner id +pmsAuthInternal=true +mosip_pms_app_id=partner +partner_password=mosip123 +partner_userName=111997 +partner_user_password=mosip123 +mosip_pms_client_id=mosip-pms-client +mosip_pms_client_secret=P9gZ2ggfOkaCIh0i +policytest_password=mosip123 +policytest_userName=111998 +#RESIDENT & IDA +mosip_resident_app_id=resident +mosip_resident_client_id=mosip-resident-client +mosip_resident_client_secret=eNuh5PT1n1su76uO +#IDREPO +mosip_idrepo_app_id=idrepo +mosip_idrepo_client_id=mosip-idrepo-client +mosip_idrepo_client_secret=MztmjErLZDCaifRy + + + +#admin +mosip_admin_app_id=admin +admin_password=Techno@123 +admin_userName=solid0 + + +mosip_admin_client_id=mosip-admin-client +mosip_admin_client_secret=jraA5R0XIWwbYYQc + +admin_zone_appid=admin +admin_zone_password=mosip123 +admin_zone_userName=globaladmin +admin_zone_clientId=mosip-admin-client +admin_zone_clientSecret=jraA5R0XIWwbYYQc + +mosip_regclient_app_id=registrationclient +mosip_reg_client_id=mosip-reg-client +mosip_reg_client_secret=N2ppib7TrSb2vxXm + +#regproc +mosip_regprocclient_app_id=regproc +mosip_regproc_client_id=mosip-regproc-client +mosip_regproc_client_secret=IMEXRmebs2ZnRtHs + + +#This credentials are used to execute auth demo service +AuthClientID=mosip-resident-client +AuthClientSecret=eNuh5PT1n1su76uO + +AuthAppID=resident +mosip_hotlist_app_id=hotlist +mosip_hotlist_client_id=mosip-hotlist-client +mosip_hotlist_client_secret=q3YolCTspBBPd1qs + + + + +###Keycloak_User-Creation_Properties +#Dontchange the partner user_111997 + +new_Resident_User=111995 +new_Resident_Password=mosip123 +new_Resident_Role=default-roles-mosip,PARTNER_ADMIN +roles.111995=PARTNER_ADMIN,default-roles-mosip + + +keycloak_UserName = admin +keycloak_Password = 5IB9nczmbn + +keycloak-external-url=https://iam.dev-staging.mosip.net +mosip_testrig_client_id=mosip-testrig-client +mosip_testrig_client_secret=dNouUmVGpumrT2BX + + +keycloak-realm-id=mosip +iam-users-to-create=111997,111998,220005,111992,globaladmin +#iam-users-to-create=111997,220005,111992 +iam-users-password=mosip123,mosip123,mosip123,mosip123,mosip123 +roles=GLOBAL_ADMIN,ID_AUTHENTICATION,REGISTRATION_ADMIN,REGISTRATION_SUPERVISOR,ZONAL_ADMIN,AUTH_PARTNER,PARTNER_ADMIN,PMS_ADMIN,POLICYMANAGER,REGISTRATION_SUPERVISOR,DATA_READ +roles.111997=AUTH_PARTNER,PARTNER_ADMIN,PMS_ADMIN,POLICYMANAGER,REGISTRATION_SUPERVISOR + +##DB_Connectivity +driver_class=org.postgresql.Driver +pool_size=1 +dialect=org.hibernate.dialect.PostgreSQLDialect +show_sql=true +current_session_context_class=thread +#audit details +audit_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_audit +audit_username=postgres +audit_password=G7zMqBaSJg +audit_default_schema=audit +#ida-partner details +DB_PORT= +installation-domain= +partner_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_ida +partner_username=postgres +partner_password=G7zMqBaSJg +partner_default_schema=partner +reportLogPath=automationLogAndReport +#--------minio proprties---------------- +s3-user-key=minioadmin +s3-user-secret=minioadmin +s3-host=http://minio.minio:9000 +s3-account=automation +s3-region=null +# supported values yes or no +push-reports-to-s3=no +enableDebug=yes +# supported values are 1 to 8 +threadCount=9 +# supported values are 0 ,1, 2 based on number of env languages +langselect=0 +#----------------------------------Database properties----------------------------------------------------------# + +postgresqlUser=postgresql +db-port=5432 +db-server=api-internal.dev-staging.mosip.net +hibernate.connection.driver_class=org.postgresql.Driver +hibernate.connection.pool_size=1 +hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +hibernate.show_sql=true +hibernate.current_session_context_class=thread +db-su-user=postgres +postgresql-password=d52kjJuxp2 +pms_db_schema=pms +km_db_schema=keymgr +master_db_schema=master +audit_db_schema=audit +ida_db_schema=ida + +authDemoServiceBaseURL=http://localhost +authDemoServicePort=8082 + +#######NEWLY ADDED ############################################################################## +mosip.test.persona.datapath=/profile_resource/ +mosip.test.persona.fingerprintdatapath=/profile_resource/fp_data +mosip.test.persona.irisdatapath=/profile_resource/iris_data/ +mosip.test.persona.locationsdatapath=/profile_resource/location_data +mosip.test.persona.namesdatapath=/profile_resource/names_data +mosip.test.persona.facedatapath=/profile_resource/face_data +mosip.test.persona.documentsdatapath=/profile_resource/documents_data/templates/ +##neeha added below +mosip.test.persona.templatesdatapath=/profile_resource/templates_data +mosip.test.temp=/packets/ +templateIDMeta=/profile_resource/templates_data/IDMetaInfo.json +mountPath=../mountvolume +#mountPath=/home/mosip/mountvolume +mountPathForScenario=D:/centralized/mountvolume +packetUtilityBaseUrl=http://localhost:8080/v1/packetcreator +#packetUtilityBaseUrl=http://dev.mosip.net:8080 + + +#######NEWLY ADDED ############################################################################## +usePreConfiguredOtp=true +usePreConfiguredEmail=prereg-dsl9@gmail.com +otpTargetEmail=prereg-dsl9@gmail.com +preconfiguredOtp=111111 +email_otp=111111 +uploaddocument=preregistration/v1/documents/ +updatePreRegStatus=preregistration/v1/applications/prereg/status/ +mosip.test.prereg.centerid=10005 +#mosip.test.prereg.centerid=automatic +ridStageStatus=v1/admin/packetstatusupdate + +auditActuatorEndpoint=/v1/auditmanager/actuator/info +actuatorAdminEndpoint=/v1/admin/actuator/env +currentUserURI=/#/uinservices/viewhistory +actuatorRegprocEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env +actuatorEndpoint=/resident/v1/actuator/env +actuatorIDAEndpoint=/idauthentication/v1/actuator/env +tokenEndpoint=/v1/esignet/oauth/token +validateBindingEndpoint=esignet-binding +esignetWellKnownEndPoint=/v1/esignet/oidc/.well-known/openid-configuration +#To run in Docker +#authCertsPath=/home/mosip/authcerts +#To run locally +authCertsPath= +reportExpirationInDays=3 + +# ---- Add scenarios to skip from automation and server side ------------------------------------- +# supported values "S-scnearioNumber" for server side and "A-scnearioNumber" for automation +scenariosToSkip=S-157,S-80 +#-- Add scenarios to include in the the execution list------ +# -- Empty if we want to execute all the scenarios--- +scenariosToExecute= +#-- supported values yes or no +useExternalScenarioSheet=no + +partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 +master_default_schema=master +reportIgnoredTestCases=no +servicesNotDeployed= +actuatorMasterDataEndpoint=/v1/masterdata/actuator/env +resident_esignet=v1/esignet/actuator/health +esignetMockBaseURL=esignet-insurance. +slack-webhook-url= +serverErrorsToMonitor=IDA-MLC-018 +regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json index 0221ce5a3..073d6cd5e 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json @@ -18592,6 +18592,188 @@ "Return Value": "NA", "Action": "e2e_CheckRIDStage($$rid,PRINT_SERVICE,PROCESSED)" } + }, + { + "Scenario": "167", + "Tag": "Negative_Test", + "Persona": "ResidentMaleAdult", + "Group": "NA", + "Description": "Resident walk-ins to registration center completes the process and gets UIN card and generates Perpetual VID. Later performs demogphic authentication with age less than actual age both using UIN and VID", + "Step-0": { + "Description": "Performs health check of given component", + "Input Parameters": "Keyword to check, only packetcreator is supported", + "Return Value": "NA", + "Action": "e2e_getPingHealth(packetcreator)" + }, + "Step-1": { + "Description": "Reads the pre-requisite data at the given index", + "Input Parameters": "Index. Other parameter details can be found in parameter in-line comments", + "Return Value": "Pre-requiste details", + "Action": "$$details1=e2e_ReadPreReq(1/*PRE_REQUISITE_DATA_INDEX*/)" + }, + "Step-2": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" + }, + "Step-3": { + "Description": "Performs health check of required server components to run end-to-end scenarios", + "Input Parameters": "NA", + "Return Value": "NA", + "Action": "e2e_getPingHealth(targetenv)" + }, + "Step-4": { + "Description": "Generates the persona file", + "Input Parameters": "Details are in parameters in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male,rightlittleFinger)" + }, + "Step-5": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" + }, + "Step-6": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath,$$templatePath)" + }, + "Step-7": { + "Description": "Checks the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" + }, + "Step-8": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin=e2e_getUINByRid($$rid)" + }, + "Step-9": { + "Description": "Gets Email ID configuired for the UIN", + "Input Parameters": "UIN", + "Return Value": "Email ID", + "Action": "$$email=e2e_getEmailByUIN($$uin)" + }, + "Step-10": { + "Description": "Waits for given period in seconds", + "Input Parameters": "Time period in seconds to wait", + "Return Value": "NA", + "Action": "e2e_wait(90)" + }, + "Step-11": { + "Description": "Generated VID for the given UIN", + "Input Parameters": "UIN and other can be found in parameters in-line commnets", + "Return Value": "VID", + "Action": "$$vid=e2e_generateVID(Perpetual,$$uin,$$email)" + }, + "Step-12": { + "Description": "Waits for given period in seconds", + "Input Parameters": "Time period in seconds to wait", + "Return Value": "NA", + "Action": "e2e_wait(90)" + }, + "Step-13": { + "Description": "Peforms demographic authentication", + "Input Parameters": "Demo graphic details, persona, UIN and VID", + "Return Value": "NA", + "Action": "e2e_demoAuthentication(age,$$uin,$$personaFilePath,$$vid,ageDecrease/*AGE_DECREMENT_FLAG*/)" + } + }, + { + "Scenario": "168", + "Tag": "Positive_Test", + "Persona": "ResidentMaleAdult", + "Group": "NA", + "Description": "Resident walk-ins to registration center completes the process and gets UIN card and generates Perpetual VID. Later performs demogphic authentication with exact dob both using UIN and VID", + "Step-0": { + "Description": "Performs health check of given component", + "Input Parameters": "Keyword to check, only packetcreator is supported", + "Return Value": "NA", + "Action": "e2e_getPingHealth(packetcreator)" + }, + "Step-1": { + "Description": "Reads the pre-requisite data at the given index", + "Input Parameters": "Index. Other parameter details can be found in parameter in-line comments", + "Return Value": "Pre-requiste details", + "Action": "$$details1=e2e_ReadPreReq(1/*PRE_REQUISITE_DATA_INDEX*/)" + }, + "Step-2": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" + }, + "Step-3": { + "Description": "Performs health check of required server components to run end-to-end scenarios", + "Input Parameters": "NA", + "Return Value": "NA", + "Action": "e2e_getPingHealth(targetenv)" + }, + "Step-4": { + "Description": "Generates the persona file", + "Input Parameters": "Details are in parameters in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male,rightlittleFinger)" + }, + "Step-5": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" + }, + "Step-6": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath,$$templatePath)" + }, + "Step-7": { + "Description": "Checks the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" + }, + "Step-8": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin=e2e_getUINByRid($$rid)" + }, + "Step-9": { + "Description": "Gets Email ID configuired for the UIN", + "Input Parameters": "UIN", + "Return Value": "Email ID", + "Action": "$$email=e2e_getEmailByUIN($$uin)" + }, + "Step-10": { + "Description": "Waits for given period in seconds", + "Input Parameters": "Time period in seconds to wait", + "Return Value": "NA", + "Action": "e2e_wait(90)" + }, + "Step-11": { + "Description": "Generated VID for the given UIN", + "Input Parameters": "UIN and other can be found in parameters in-line commnets", + "Return Value": "VID", + "Action": "$$vid=e2e_generateVID(Perpetual,$$uin,$$email)" + }, + "Step-12": { + "Description": "Waits for given period in seconds", + "Input Parameters": "Time period in seconds to wait", + "Return Value": "NA", + "Action": "e2e_wait(90)" + }, + "Step-13": { + "Description": "Peforms demographic authentication", + "Input Parameters": "Demo graphic details, persona, UIN and VID", + "Return Value": "NA", + "Action": "e2e_demoAuthentication(age,$$uin,$$personaFilePath,$$vid)" + } }, { "Scenario": "AFTER_SUITE", diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoIdentityEncrypt.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoIdentityEncrypt.hbs index 052c53534..3bed4dc9b 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoIdentityEncrypt.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoIdentityEncrypt.hbs @@ -1,5 +1,6 @@ { "demographics": { + "age": "{{age}}", "addressLine1": [ {{#each addressLine1}} { From 17d00d135572a6e0202ea6fb245da0949ad7275d Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Wed, 12 Jun 2024 12:30:25 +0530 Subject: [PATCH 27/57] Merged module wise changes to develop Signed-off-by: Pankaj Godiyal --- .../main/resources/config/Kernel.properties | 6 +- .../config/Kernel_dev-staging.properties | 300 ------------------ 2 files changed, 3 insertions(+), 303 deletions(-) delete mode 100644 mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties index daf3c6f4a..a04c647a7 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties @@ -281,10 +281,10 @@ reportExpirationInDays=3 # ---- Add scenarios to skip from automation and server side ------------------------------------- # supported values "S-scnearioNumber" for server side and "A-scnearioNumber" for automation -scenariosToSkip=S-157 +scenariosToSkip=S-157,S-80 #-- Add scenarios to include in the the execution list------ # -- Empty if we want to execute all the scenarios--- -scenariosToExecute= +scenariosToExecute=168 #-- supported values yes or no useExternalScenarioSheet=no @@ -297,4 +297,4 @@ resident_esignet=v1/esignet/actuator/health esignetMockBaseURL=esignet-insurance. slack-webhook-url= serverErrorsToMonitor=IDA-MLC-018 -regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env/ \ No newline at end of file +regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties deleted file mode 100644 index 4037acfce..000000000 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties +++ /dev/null @@ -1,300 +0,0 @@ -#Kernel resource uris -#Make sure all resource apis are covered -authclientidsecretkeyURL=/v1/authmanager/authenticate/clientidsecretkey -authentication=/v1/authmanager/authenticate/useridPwd -authenticationInternal=/v1/authmanager/authenticate/internal/useridPwd -keycloakAuthURL=/auth/realms/master/protocol/openid-connect/token -auditLog_URI = /v1/auditmanager/audits -CentetMachineUserMappingToMasterData_uri= /v1/masterdata/registrationmachineusermappings -EmailNotification_URI= /v1/notifier/email/send -encrypt_URI=/v1/keymanager/encrypt -decrypt_URI=/v1/keymanager/decrypt -FetchApplication_URI=/v1/masterdata/applicationtypes -FetchApplication_lang_URI=/v1/masterdata/applicationtypes/{langcode} -FetchApplication_id_lang_URI=/v1/masterdata/applicationtypes/{code}/{langcode} -FetchBiometricAttribute_URI=/v1/masterdata/getbiometricattributesbyauthtype/{langcode}/{biometrictypecode} -FetchBiometricAuthType_URI=/v1/masterdata/biometrictypes/{langcode} -FetchBlackListedWord_URI=/v1/masterdata/blacklistedwords/{langcode} -FetchDevice_lang_URI = /v1/masterdata/devices/{languagecode} -FetchDevice_id_lang_URI = /v1/masterdata/devices/{languagecode}/{deviceType} -FetchDeviceSpec_lang_URI = /v1/masterdata/devicespecifications/{langcode} -FetchDeviceSpec_id_lang_URI = /v1/masterdata/devicespecifications/{langcode}/{devicetypecode} -FetchDocumentCategories_URI = /v1/masterdata/documentcategories/{langcode} -FetchDocumentCategories_URI_withcodeAndLangCode = /v1/masterdata/documentcategories/{code}/{langcode} -FetchDocumentTypes_URI = /v1/masterdata/documenttypes/{documentcategorycode}/{langcode} -FetchGenderType_URI = /v1/masterdata/gendertypes -FetchGenderType_id_lang_URI = /v1/masterdata/gendertypes/{langcode} -FetchHolidays_URI = /v1/masterdata/holidays -FetchHolidays_id_URI = /v1/masterdata/holidays/{holidayid} -FetchHolidays_id_lang_URI = /v1/masterdata/holidays/{holidayid}/{langcode} -FetchIDlist_URI = /v1/masterdata/idtypes/{langcode} -FetchLocationHierarchy_URI_withlangCode = /v1/masterdata/locations/{langcode} -FetchLocationHierarchy_URI_locationcode = /v1/masterdata/locations/{locationcode}/{langcode} -FetchLocationHierarchy_URI_hierarchyname = /v1/masterdata/locations/locationhierarchy/{hierarchyname} -FetchMachine_URI=/v1/masterdata/machines -FetchMachine_lang_URI=/v1/masterdata/machines/{langcode} -FetchMachine_id_lang_URI=/v1/masterdata/machines/{id}/{langcode} -FetchMachineHistory_URI = /v1/masterdata/machineshistories/{id}/{langcode}/{effdatetimes} -FetchRegCent_URI = /v1/masterdata/registrationcenters -FetchRegCent_id_lang_URI = /v1/masterdata/registrationcenters/{id}/{langcode} -FetchRegCent_loc_lang_URI = /v1/masterdata/getlocspecificregistrationcenters/{langcode}/{locationcode} -FetchRegCent_hir_name_lang_URI = /v1/masterdata/registrationcenters/{langcode}/{hierarchylevel}/{name} -FetchRegCent_prox_lang_URI = /v1/masterdata/getcoordinatespecificregistrationcenters/{langcode}/{longitude}/{latitude}/{proximitydistance} -FetchRegCentHistory_URI = /v1/masterdata/registrationcentershistory/{registrationCenterId}/{langcode}/{effectiveDate} -FetchRegCentHolidays_URI = /v1/masterdata/getregistrationcenterholidays/{langcode}/{registrationcenterid}/{year} -FetchRegcentMachUserMaping_URI = /v1/masterdata/getregistrationmachineusermappinghistory/{effdtimes}/{registrationcenterid}/{machineid}/{userid} -FetchRejectionReason_URI = /v1/masterdata/packetrejectionreasons/{reasoncategorycode}/{langcode} -FetchTemplate_URI = /v1/masterdata/templates -FetchTemplate_lang_URI = /v1/masterdata/templates/{langcode} -FetchTemplate_id_lang_URI = /v1/masterdata/templates/{langcode}/{templatetypecode} -FetchTitle_URI = /v1/masterdata/title/{langcode} -fetchAllTemplate = /v1/masterdata/templates/templatetypecodes/{code} -getApplicantType = /v1/masterdata/getApplicantType -fetchDeviceHistory = /v1/masterdata/deviceshistories/{id}/{langcode}/{effdatetimes} -getDocType_DocCatByAppID = /v1/masterdata/applicanttype/{applicantId}/languages -getDocTypeDocCatByLangCode = /v1/masterdata/validdocuments/{languagecode} -fetchImmediateChildLocation = /v1/masterdata/locations/immediatechildren/{locationcode}/{langcode} -getIndividualType = /v1/masterdata/individualtypes -getRoles = /v1/syncdata/roles -fetchRegCenter = /v1/masterdata/registrationcenters/validate/{id}/{langCode}/{timestamp} -fetchRegistrationCenterDeviceHistory = /v1/masterdata/registrationcenterdevicehistory/{regcenterid}/{deviceid}/{effdatetimes} -getusersBasedOnRegCenter = /v1/syncdata/userdetails/{regid} -licKeyGenerator = /v1/keymanager/license/generate -mapLicenseKey = /v1/keymanager/license/permission -fetchmapLicenseKey = /v1/keymanager/license/permission -OTPGeneration = /v1/otpmanager/otp/generate -OTPValidation = /v1/otpmanager/otp/validate -otpNotifier = /v1/otpnotifier/otp/send -RIDGenerator_URI = /v1/ridgenerator/generate/rid/{centerid}/{machineid} -SmsNotification_URI = /v1/notifier/sms/send -syncConf = /v1/syncdata/configs -fetchIncrementalData = /v1/syncjob/syncjobdef -fetchmasterdata = /v1/syncdata/masterdata -fetchmasterdatawithRID = /v1/syncdata/masterdata/{regcenterId} -SyncPublicKeyToRegClient_URI = /v1/keymanager/publickey/ -uingenerator = /v1/idgenerator/uin -validateGenderByName = /v1/masterdata/gendertypes/validate/{gendername} -validateLocationByName = /v1/masterdata/locations/validate/{locationname} -tokenIdGenerator_URI = /v1/keymanager/{uin}/{partnercode} -getRIDByUserId = /v1/authmanager/rid/{appid}/{userid} -syncMdatawithKeyIndex = /v1/syncdata/clientsettings -syncMdatawithRegCentIdKeyIndex = /v1/syncdata/clientsettings/{regcenterid} -uploadpublickey = /v1/syncdata/tpm/publickey -getUserHistory = /v1/masterdata/users/{id}/{eff_dtimes} -sendOtp = /v1/authmanager/authenticate/sendotp -useridOTP = /v1/authmanager/authenticate/useridOTP -#preregSendOtp = /preregistration/v1/login/sendOtp -preregSendOtp = /preregistration/v1/login/sendOtp/langcode -preregValidateOtp = /preregistration/v1/login/validateOtp -zoneMappingUrl=/v1/masterdata/zoneuser -zoneNameUrl=/v1/masterdata/zones/zonename -zoneMappingActivateUrl=/v1/masterdata/zoneuser -userCenterMappingUrl=/v1/masterdata/usercentermapping -bulkUploadUrl=/v1/admin/bulkupload -deleteMockAbisExpectations=v1/mock-abis-service/config/expectation -# OTP Details -OTPTimeOut = 181 -attempt = 10 -ConfigParameters=mosip.kernel.rid.length,mosip.kernel.uin.length,mosip.kernel.sms.country.code,mosip.kernel.sms.number.length,mosip.kernel.otp.default-length,mosip.kernel.otp.expiry-time,mosip.kernel.otp.key-freeze-time,mosip.kernel.otp.validation-attempt-threshold,mosip.kernel.otp.min-key-length,mosip.kernel.otp.max-key-length,mosip.kernel.licensekey.length,mosip.supported-languages -#Below users are used for authentication -#PARTNER -#Dont change the partner id -pmsAuthInternal=true -mosip_pms_app_id=partner -partner_password=mosip123 -partner_userName=111997 -partner_user_password=mosip123 -mosip_pms_client_id=mosip-pms-client -mosip_pms_client_secret=P9gZ2ggfOkaCIh0i -policytest_password=mosip123 -policytest_userName=111998 -#RESIDENT & IDA -mosip_resident_app_id=resident -mosip_resident_client_id=mosip-resident-client -mosip_resident_client_secret=eNuh5PT1n1su76uO -#IDREPO -mosip_idrepo_app_id=idrepo -mosip_idrepo_client_id=mosip-idrepo-client -mosip_idrepo_client_secret=MztmjErLZDCaifRy - - - -#admin -mosip_admin_app_id=admin -admin_password=Techno@123 -admin_userName=solid0 - - -mosip_admin_client_id=mosip-admin-client -mosip_admin_client_secret=jraA5R0XIWwbYYQc - -admin_zone_appid=admin -admin_zone_password=mosip123 -admin_zone_userName=globaladmin -admin_zone_clientId=mosip-admin-client -admin_zone_clientSecret=jraA5R0XIWwbYYQc - -mosip_regclient_app_id=registrationclient -mosip_reg_client_id=mosip-reg-client -mosip_reg_client_secret=N2ppib7TrSb2vxXm - -#regproc -mosip_regprocclient_app_id=regproc -mosip_regproc_client_id=mosip-regproc-client -mosip_regproc_client_secret=IMEXRmebs2ZnRtHs - - -#This credentials are used to execute auth demo service -AuthClientID=mosip-resident-client -AuthClientSecret=eNuh5PT1n1su76uO - -AuthAppID=resident -mosip_hotlist_app_id=hotlist -mosip_hotlist_client_id=mosip-hotlist-client -mosip_hotlist_client_secret=q3YolCTspBBPd1qs - - - - -###Keycloak_User-Creation_Properties -#Dontchange the partner user_111997 - -new_Resident_User=111995 -new_Resident_Password=mosip123 -new_Resident_Role=default-roles-mosip,PARTNER_ADMIN -roles.111995=PARTNER_ADMIN,default-roles-mosip - - -keycloak_UserName = admin -keycloak_Password = 5IB9nczmbn - -keycloak-external-url=https://iam.dev-staging.mosip.net -mosip_testrig_client_id=mosip-testrig-client -mosip_testrig_client_secret=dNouUmVGpumrT2BX - - -keycloak-realm-id=mosip -iam-users-to-create=111997,111998,220005,111992,globaladmin -#iam-users-to-create=111997,220005,111992 -iam-users-password=mosip123,mosip123,mosip123,mosip123,mosip123 -roles=GLOBAL_ADMIN,ID_AUTHENTICATION,REGISTRATION_ADMIN,REGISTRATION_SUPERVISOR,ZONAL_ADMIN,AUTH_PARTNER,PARTNER_ADMIN,PMS_ADMIN,POLICYMANAGER,REGISTRATION_SUPERVISOR,DATA_READ -roles.111997=AUTH_PARTNER,PARTNER_ADMIN,PMS_ADMIN,POLICYMANAGER,REGISTRATION_SUPERVISOR - -##DB_Connectivity -driver_class=org.postgresql.Driver -pool_size=1 -dialect=org.hibernate.dialect.PostgreSQLDialect -show_sql=true -current_session_context_class=thread -#audit details -audit_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_audit -audit_username=postgres -audit_password=G7zMqBaSJg -audit_default_schema=audit -#ida-partner details -DB_PORT= -installation-domain= -partner_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_ida -partner_username=postgres -partner_password=G7zMqBaSJg -partner_default_schema=partner -reportLogPath=automationLogAndReport -#--------minio proprties---------------- -s3-user-key=minioadmin -s3-user-secret=minioadmin -s3-host=http://minio.minio:9000 -s3-account=automation -s3-region=null -# supported values yes or no -push-reports-to-s3=no -enableDebug=yes -# supported values are 1 to 8 -threadCount=9 -# supported values are 0 ,1, 2 based on number of env languages -langselect=0 -#----------------------------------Database properties----------------------------------------------------------# - -postgresqlUser=postgresql -db-port=5432 -db-server=api-internal.dev-staging.mosip.net -hibernate.connection.driver_class=org.postgresql.Driver -hibernate.connection.pool_size=1 -hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect -hibernate.show_sql=true -hibernate.current_session_context_class=thread -db-su-user=postgres -postgresql-password=d52kjJuxp2 -pms_db_schema=pms -km_db_schema=keymgr -master_db_schema=master -audit_db_schema=audit -ida_db_schema=ida - -authDemoServiceBaseURL=http://localhost -authDemoServicePort=8082 - -#######NEWLY ADDED ############################################################################## -mosip.test.persona.datapath=/profile_resource/ -mosip.test.persona.fingerprintdatapath=/profile_resource/fp_data -mosip.test.persona.irisdatapath=/profile_resource/iris_data/ -mosip.test.persona.locationsdatapath=/profile_resource/location_data -mosip.test.persona.namesdatapath=/profile_resource/names_data -mosip.test.persona.facedatapath=/profile_resource/face_data -mosip.test.persona.documentsdatapath=/profile_resource/documents_data/templates/ -##neeha added below -mosip.test.persona.templatesdatapath=/profile_resource/templates_data -mosip.test.temp=/packets/ -templateIDMeta=/profile_resource/templates_data/IDMetaInfo.json -mountPath=../mountvolume -#mountPath=/home/mosip/mountvolume -mountPathForScenario=D:/centralized/mountvolume -packetUtilityBaseUrl=http://localhost:8080/v1/packetcreator -#packetUtilityBaseUrl=http://dev.mosip.net:8080 - - -#######NEWLY ADDED ############################################################################## -usePreConfiguredOtp=true -usePreConfiguredEmail=prereg-dsl9@gmail.com -otpTargetEmail=prereg-dsl9@gmail.com -preconfiguredOtp=111111 -email_otp=111111 -uploaddocument=preregistration/v1/documents/ -updatePreRegStatus=preregistration/v1/applications/prereg/status/ -mosip.test.prereg.centerid=10005 -#mosip.test.prereg.centerid=automatic -ridStageStatus=v1/admin/packetstatusupdate - -auditActuatorEndpoint=/v1/auditmanager/actuator/info -actuatorAdminEndpoint=/v1/admin/actuator/env -currentUserURI=/#/uinservices/viewhistory -actuatorRegprocEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env -actuatorEndpoint=/resident/v1/actuator/env -actuatorIDAEndpoint=/idauthentication/v1/actuator/env -tokenEndpoint=/v1/esignet/oauth/token -validateBindingEndpoint=esignet-binding -esignetWellKnownEndPoint=/v1/esignet/oidc/.well-known/openid-configuration -#To run in Docker -#authCertsPath=/home/mosip/authcerts -#To run locally -authCertsPath= -reportExpirationInDays=3 - -# ---- Add scenarios to skip from automation and server side ------------------------------------- -# supported values "S-scnearioNumber" for server side and "A-scnearioNumber" for automation -scenariosToSkip=S-157,S-80 -#-- Add scenarios to include in the the execution list------ -# -- Empty if we want to execute all the scenarios--- -scenariosToExecute= -#-- supported values yes or no -useExternalScenarioSheet=no - -partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 -master_default_schema=master -reportIgnoredTestCases=no -servicesNotDeployed= -actuatorMasterDataEndpoint=/v1/masterdata/actuator/env -resident_esignet=v1/esignet/actuator/health -esignetMockBaseURL=esignet-insurance. -slack-webhook-url= -serverErrorsToMonitor=IDA-MLC-018 -regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env \ No newline at end of file From 71ab5cb393ecc8eb1b7d1419b1da385f68c4c6c2 Mon Sep 17 00:00:00 2001 From: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> Date: Wed, 19 Jun 2024 21:42:40 +0530 Subject: [PATCH 28/57] Update pom.xml Signed-off-by: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> --- mosip-acceptance-tests/ivv-orchestrator/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/pom.xml b/mosip-acceptance-tests/ivv-orchestrator/pom.xml index e03dd80b7..7b853ca39 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/pom.xml +++ b/mosip-acceptance-tests/ivv-orchestrator/pom.xml @@ -42,7 +42,7 @@ maven-compiler-plugin - 3.8.0 + 3.7.0 11 11 From d0d9cbac812a926cc794c551f97a84ddb169d764 Mon Sep 17 00:00:00 2001 From: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:37:29 +0530 Subject: [PATCH 29/57] Update pom.xml Signed-off-by: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> --- mosip-acceptance-tests/ivv-orchestrator/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/pom.xml b/mosip-acceptance-tests/ivv-orchestrator/pom.xml index 7b853ca39..6ea3a6b77 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/pom.xml +++ b/mosip-acceptance-tests/ivv-orchestrator/pom.xml @@ -42,7 +42,7 @@ maven-compiler-plugin - 3.7.0 + 3.5.1 11 11 From 64413e0a6b340b90a1c03d844a50ee9a0bb3d64c Mon Sep 17 00:00:00 2001 From: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:45:26 +0530 Subject: [PATCH 30/57] Update pom.xml Signed-off-by: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> --- mosip-acceptance-tests/ivv-orchestrator/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/pom.xml b/mosip-acceptance-tests/ivv-orchestrator/pom.xml index 6ea3a6b77..67c55d83e 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/pom.xml +++ b/mosip-acceptance-tests/ivv-orchestrator/pom.xml @@ -42,7 +42,7 @@ maven-compiler-plugin - 3.5.1 + 3.8.0 11 11 @@ -119,7 +119,7 @@ io.mosip.testrig.apirig.apitest.commons apitest-commons - 1.2.1-SNAPSHOT + 1.2.0.1 From 56f61d4c35d7bf2f77471727dd8a0aee5ffb4968 Mon Sep 17 00:00:00 2001 From: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:56:20 +0530 Subject: [PATCH 31/57] Update pom.xml Signed-off-by: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> --- mosip-acceptance-tests/ivv-orchestrator/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/pom.xml b/mosip-acceptance-tests/ivv-orchestrator/pom.xml index 67c55d83e..e03dd80b7 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/pom.xml +++ b/mosip-acceptance-tests/ivv-orchestrator/pom.xml @@ -119,7 +119,7 @@ io.mosip.testrig.apirig.apitest.commons apitest-commons - 1.2.0.1 + 1.2.1-SNAPSHOT From 472a871b5ddda8f8f2c0c8f43a3f67b24cedc88e Mon Sep 17 00:00:00 2001 From: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> Date: Thu, 20 Jun 2024 16:52:36 +0530 Subject: [PATCH 32/57] Update PacketSyncService.java Signed-off-by: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> --- .../testrig/dslrig/packetcreator/service/PacketSyncService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java index 2c87aab17..03d72d90b 100644 --- a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java +++ b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java @@ -675,7 +675,9 @@ public String verifyOtp(String personaFilePath, String to, String otp, String co ResidentModel resident = ResidentModel.readPersona(personaFilePath); ResidentPreRegistration preReg = new ResidentPreRegistration(resident); + if(otp != null && otp.isEmpty()) { preReg.fetchOtp(contextKey); + } return preReg.verifyOtp(to, otp, contextKey); } From 80153011f65850d924cbc5fbe5be5557e89185eb Mon Sep 17 00:00:00 2001 From: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> Date: Fri, 21 Jun 2024 16:11:29 +0530 Subject: [PATCH 33/57] Deleted "e2e_loopWindow" as it is unused file Signed-off-by: pg-techno123 <114661297+pg-techno123@users.noreply.github.com> --- .../dslrig/ivv/e2e/methods/LoopWindow.java | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/LoopWindow.java diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/LoopWindow.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/LoopWindow.java deleted file mode 100644 index b781f669e..000000000 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/LoopWindow.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.mosip.testrig.dslrig.ivv.e2e.methods; - -import org.apache.log4j.Level; -import org.apache.log4j.Logger; - -import io.mosip.testrig.apirig.kernel.util.ConfigManager; -import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; -import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; -import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; - -public class LoopWindow extends BaseTestCaseUtil implements StepInterface{ - - private static final Logger logger = Logger.getLogger(LoopWindow.class); - - static { - if (ConfigManager.IsDebugEnabled()) - logger.setLevel(Level.ALL); - else - logger.setLevel(Level.ERROR); - } - - @Override - public void run() throws RigInternalError { - logger.info("Loop window "); - } - -} From f161abc3500a0b8b90da38321842c20f1239785b Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Fri, 21 Jun 2024 17:46:48 +0530 Subject: [PATCH 34/57] MOSIP-33996 Signed-off-by: Pankaj Godiyal --- .../main/resources/config/Kernel.properties | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties index a04c647a7..7007d4371 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties @@ -105,17 +105,17 @@ partner_password=mosip123 partner_userName=111997 partner_user_password=mosip123 mosip_pms_client_id=mosip-pms-client -mosip_pms_client_secret=P9gZ2ggfOkaCIh0i +mosip_pms_client_secret= policytest_password=mosip123 policytest_userName=111998 #RESIDENT & IDA mosip_resident_app_id=resident mosip_resident_client_id=mosip-resident-client -mosip_resident_client_secret=eNuh5PT1n1su76uO +mosip_resident_client_secret= #IDREPO mosip_idrepo_app_id=idrepo mosip_idrepo_client_id=mosip-idrepo-client -mosip_idrepo_client_secret=MztmjErLZDCaifRy +mosip_idrepo_client_secret= @@ -126,32 +126,32 @@ admin_userName=solid0 mosip_admin_client_id=mosip-admin-client -mosip_admin_client_secret=jraA5R0XIWwbYYQc +mosip_admin_client_secret= admin_zone_appid=admin admin_zone_password=mosip123 admin_zone_userName=globaladmin admin_zone_clientId=mosip-admin-client -admin_zone_clientSecret=jraA5R0XIWwbYYQc +admin_zone_clientSecret= mosip_regclient_app_id=registrationclient mosip_reg_client_id=mosip-reg-client -mosip_reg_client_secret=N2ppib7TrSb2vxXm +mosip_reg_client_secret= #regproc mosip_regprocclient_app_id=regproc mosip_regproc_client_id=mosip-regproc-client -mosip_regproc_client_secret=IMEXRmebs2ZnRtHs +mosip_regproc_client_secret= #This credentials are used to execute auth demo service AuthClientID=mosip-resident-client -AuthClientSecret=eNuh5PT1n1su76uO +AuthClientSecret= AuthAppID=resident mosip_hotlist_app_id=hotlist mosip_hotlist_client_id=mosip-hotlist-client -mosip_hotlist_client_secret=q3YolCTspBBPd1qs +mosip_hotlist_client_secret= @@ -165,12 +165,12 @@ new_Resident_Role=default-roles-mosip,PARTNER_ADMIN roles.111995=PARTNER_ADMIN,default-roles-mosip -keycloak_UserName = admin -keycloak_Password = 5IB9nczmbn +#keycloak_UserName = admin +#keycloak_Password = -keycloak-external-url=https://iam.dev-staging.mosip.net +keycloak-external-url= mosip_testrig_client_id=mosip-testrig-client -mosip_testrig_client_secret=dNouUmVGpumrT2BX +mosip_testrig_client_secret= keycloak-realm-id=mosip @@ -187,27 +187,27 @@ dialect=org.hibernate.dialect.PostgreSQLDialect show_sql=true current_session_context_class=thread #audit details -audit_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_audit -audit_username=postgres -audit_password=G7zMqBaSJg -audit_default_schema=audit +#audit_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_audit +#audit_username=postgres +#audit_password=G7zMqBaSJg +#audit_default_schema=audit #ida-partner details DB_PORT= -installation-domain= -partner_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_ida -partner_username=postgres -partner_password=G7zMqBaSJg -partner_default_schema=partner -reportLogPath=automationLogAndReport +#installation-domain= +#partner_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_ida +#partner_username=postgres +#partner_password=G7zMqBaSJg +#partner_default_schema=partner +#reportLogPath=automationLogAndReport #--------minio proprties---------------- s3-user-key=minioadmin -s3-user-secret=minioadmin +s3-user-secret= s3-host=http://minio.minio:9000 s3-account=automation s3-region=null # supported values yes or no -push-reports-to-s3=no -enableDebug=yes +push-reports-to-s3=yes +enableDebug=no # supported values are 1 to 8 threadCount=9 # supported values are 0 ,1, 2 based on number of env languages @@ -216,14 +216,14 @@ langselect=0 postgresqlUser=postgresql db-port=5432 -db-server=api-internal.dev-staging.mosip.net +db-server= hibernate.connection.driver_class=org.postgresql.Driver hibernate.connection.pool_size=1 hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect hibernate.show_sql=true hibernate.current_session_context_class=thread db-su-user=postgres -postgresql-password=d52kjJuxp2 +#postgresql-password=d52kjJuxp2 pms_db_schema=pms km_db_schema=keymgr master_db_schema=master @@ -281,20 +281,20 @@ reportExpirationInDays=3 # ---- Add scenarios to skip from automation and server side ------------------------------------- # supported values "S-scnearioNumber" for server side and "A-scnearioNumber" for automation -scenariosToSkip=S-157,S-80 +scenariosToSkip= #-- Add scenarios to include in the the execution list------ # -- Empty if we want to execute all the scenarios--- -scenariosToExecute=168 +scenariosToExecute= #-- supported values yes or no useExternalScenarioSheet=no -partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 -master_default_schema=master -reportIgnoredTestCases=no +#partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 +#master_default_schema=master +reportIgnoredTestCases= servicesNotDeployed= actuatorMasterDataEndpoint=/v1/masterdata/actuator/env resident_esignet=v1/esignet/actuator/health esignetMockBaseURL=esignet-insurance. slack-webhook-url= -serverErrorsToMonitor=IDA-MLC-018 +serverErrorsToMonitor= regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env \ No newline at end of file From 28b8131476e68b41466bce1e2f30da3e79335938 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Fri, 21 Jun 2024 19:25:24 +0530 Subject: [PATCH 35/57] Updated Kernel Signed-off-by: Pankaj Godiyal --- .../main/resources/config/Kernel.properties | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties index 7007d4371..230ee4bf0 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties @@ -105,17 +105,17 @@ partner_password=mosip123 partner_userName=111997 partner_user_password=mosip123 mosip_pms_client_id=mosip-pms-client -mosip_pms_client_secret= +mosip_pms_client_secret=P9gZ2ggfOkaCIh0i policytest_password=mosip123 policytest_userName=111998 #RESIDENT & IDA mosip_resident_app_id=resident mosip_resident_client_id=mosip-resident-client -mosip_resident_client_secret= +mosip_resident_client_secret=eNuh5PT1n1su76uO #IDREPO mosip_idrepo_app_id=idrepo mosip_idrepo_client_id=mosip-idrepo-client -mosip_idrepo_client_secret= +mosip_idrepo_client_secret=MztmjErLZDCaifRy @@ -126,32 +126,32 @@ admin_userName=solid0 mosip_admin_client_id=mosip-admin-client -mosip_admin_client_secret= +mosip_admin_client_secret=jraA5R0XIWwbYYQc admin_zone_appid=admin admin_zone_password=mosip123 admin_zone_userName=globaladmin admin_zone_clientId=mosip-admin-client -admin_zone_clientSecret= +admin_zone_clientSecret=jraA5R0XIWwbYYQc mosip_regclient_app_id=registrationclient mosip_reg_client_id=mosip-reg-client -mosip_reg_client_secret= +mosip_reg_client_secret=N2ppib7TrSb2vxXm #regproc mosip_regprocclient_app_id=regproc mosip_regproc_client_id=mosip-regproc-client -mosip_regproc_client_secret= +mosip_regproc_client_secret=IMEXRmebs2ZnRtHs #This credentials are used to execute auth demo service AuthClientID=mosip-resident-client -AuthClientSecret= +AuthClientSecret=eNuh5PT1n1su76uO AuthAppID=resident mosip_hotlist_app_id=hotlist mosip_hotlist_client_id=mosip-hotlist-client -mosip_hotlist_client_secret= +mosip_hotlist_client_secret=q3YolCTspBBPd1qs @@ -165,12 +165,12 @@ new_Resident_Role=default-roles-mosip,PARTNER_ADMIN roles.111995=PARTNER_ADMIN,default-roles-mosip -#keycloak_UserName = admin -#keycloak_Password = +keycloak_UserName = admin +keycloak_Password = 5IB9nczmbn -keycloak-external-url= +keycloak-external-url=https://iam.dev-staging.mosip.net mosip_testrig_client_id=mosip-testrig-client -mosip_testrig_client_secret= +mosip_testrig_client_secret=dNouUmVGpumrT2BX keycloak-realm-id=mosip @@ -187,26 +187,26 @@ dialect=org.hibernate.dialect.PostgreSQLDialect show_sql=true current_session_context_class=thread #audit details -#audit_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_audit -#audit_username=postgres -#audit_password=G7zMqBaSJg -#audit_default_schema=audit +audit_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_audit +audit_username=postgres +audit_password=G7zMqBaSJg +audit_default_schema=audit #ida-partner details DB_PORT= -#installation-domain= -#partner_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_ida -#partner_username=postgres -#partner_password=G7zMqBaSJg -#partner_default_schema=partner -#reportLogPath=automationLogAndReport +installation-domain= +partner_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_ida +partner_username=postgres +partner_password=G7zMqBaSJg +partner_default_schema=partner +reportLogPath=automationLogAndReport #--------minio proprties---------------- s3-user-key=minioadmin -s3-user-secret= +s3-user-secret=minioadmin s3-host=http://minio.minio:9000 s3-account=automation s3-region=null # supported values yes or no -push-reports-to-s3=yes +push-reports-to-s3=no enableDebug=no # supported values are 1 to 8 threadCount=9 @@ -216,14 +216,14 @@ langselect=0 postgresqlUser=postgresql db-port=5432 -db-server= +db-server=api-internal.dev-staging.mosip.net hibernate.connection.driver_class=org.postgresql.Driver hibernate.connection.pool_size=1 hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect hibernate.show_sql=true hibernate.current_session_context_class=thread db-su-user=postgres -#postgresql-password=d52kjJuxp2 +postgresql-password=d52kjJuxp2 pms_db_schema=pms km_db_schema=keymgr master_db_schema=master @@ -288,13 +288,13 @@ scenariosToExecute= #-- supported values yes or no useExternalScenarioSheet=no -#partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 -#master_default_schema=master -reportIgnoredTestCases= +partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 +master_default_schema=master +reportIgnoredTestCases=no servicesNotDeployed= actuatorMasterDataEndpoint=/v1/masterdata/actuator/env resident_esignet=v1/esignet/actuator/health esignetMockBaseURL=esignet-insurance. slack-webhook-url= -serverErrorsToMonitor= +serverErrorsToMonitor=IDA-MLC-018 regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env \ No newline at end of file From 046055bba0285d42b430a0a64d1a6e5b31d47169 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Fri, 28 Jun 2024 11:36:38 +0530 Subject: [PATCH 36/57] MOSIP-33996 Signed-off-by: Pankaj Godiyal --- .../main/resources/config/Kernel.properties | 62 ++-- .../config/Kernel_dev-staging.properties | 300 ++++++++++++++++++ 2 files changed, 331 insertions(+), 31 deletions(-) create mode 100644 mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties index 230ee4bf0..7007d4371 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties @@ -105,17 +105,17 @@ partner_password=mosip123 partner_userName=111997 partner_user_password=mosip123 mosip_pms_client_id=mosip-pms-client -mosip_pms_client_secret=P9gZ2ggfOkaCIh0i +mosip_pms_client_secret= policytest_password=mosip123 policytest_userName=111998 #RESIDENT & IDA mosip_resident_app_id=resident mosip_resident_client_id=mosip-resident-client -mosip_resident_client_secret=eNuh5PT1n1su76uO +mosip_resident_client_secret= #IDREPO mosip_idrepo_app_id=idrepo mosip_idrepo_client_id=mosip-idrepo-client -mosip_idrepo_client_secret=MztmjErLZDCaifRy +mosip_idrepo_client_secret= @@ -126,32 +126,32 @@ admin_userName=solid0 mosip_admin_client_id=mosip-admin-client -mosip_admin_client_secret=jraA5R0XIWwbYYQc +mosip_admin_client_secret= admin_zone_appid=admin admin_zone_password=mosip123 admin_zone_userName=globaladmin admin_zone_clientId=mosip-admin-client -admin_zone_clientSecret=jraA5R0XIWwbYYQc +admin_zone_clientSecret= mosip_regclient_app_id=registrationclient mosip_reg_client_id=mosip-reg-client -mosip_reg_client_secret=N2ppib7TrSb2vxXm +mosip_reg_client_secret= #regproc mosip_regprocclient_app_id=regproc mosip_regproc_client_id=mosip-regproc-client -mosip_regproc_client_secret=IMEXRmebs2ZnRtHs +mosip_regproc_client_secret= #This credentials are used to execute auth demo service AuthClientID=mosip-resident-client -AuthClientSecret=eNuh5PT1n1su76uO +AuthClientSecret= AuthAppID=resident mosip_hotlist_app_id=hotlist mosip_hotlist_client_id=mosip-hotlist-client -mosip_hotlist_client_secret=q3YolCTspBBPd1qs +mosip_hotlist_client_secret= @@ -165,12 +165,12 @@ new_Resident_Role=default-roles-mosip,PARTNER_ADMIN roles.111995=PARTNER_ADMIN,default-roles-mosip -keycloak_UserName = admin -keycloak_Password = 5IB9nczmbn +#keycloak_UserName = admin +#keycloak_Password = -keycloak-external-url=https://iam.dev-staging.mosip.net +keycloak-external-url= mosip_testrig_client_id=mosip-testrig-client -mosip_testrig_client_secret=dNouUmVGpumrT2BX +mosip_testrig_client_secret= keycloak-realm-id=mosip @@ -187,26 +187,26 @@ dialect=org.hibernate.dialect.PostgreSQLDialect show_sql=true current_session_context_class=thread #audit details -audit_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_audit -audit_username=postgres -audit_password=G7zMqBaSJg -audit_default_schema=audit +#audit_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_audit +#audit_username=postgres +#audit_password=G7zMqBaSJg +#audit_default_schema=audit #ida-partner details DB_PORT= -installation-domain= -partner_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_ida -partner_username=postgres -partner_password=G7zMqBaSJg -partner_default_schema=partner -reportLogPath=automationLogAndReport +#installation-domain= +#partner_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_ida +#partner_username=postgres +#partner_password=G7zMqBaSJg +#partner_default_schema=partner +#reportLogPath=automationLogAndReport #--------minio proprties---------------- s3-user-key=minioadmin -s3-user-secret=minioadmin +s3-user-secret= s3-host=http://minio.minio:9000 s3-account=automation s3-region=null # supported values yes or no -push-reports-to-s3=no +push-reports-to-s3=yes enableDebug=no # supported values are 1 to 8 threadCount=9 @@ -216,14 +216,14 @@ langselect=0 postgresqlUser=postgresql db-port=5432 -db-server=api-internal.dev-staging.mosip.net +db-server= hibernate.connection.driver_class=org.postgresql.Driver hibernate.connection.pool_size=1 hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect hibernate.show_sql=true hibernate.current_session_context_class=thread db-su-user=postgres -postgresql-password=d52kjJuxp2 +#postgresql-password=d52kjJuxp2 pms_db_schema=pms km_db_schema=keymgr master_db_schema=master @@ -288,13 +288,13 @@ scenariosToExecute= #-- supported values yes or no useExternalScenarioSheet=no -partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 -master_default_schema=master -reportIgnoredTestCases=no +#partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 +#master_default_schema=master +reportIgnoredTestCases= servicesNotDeployed= actuatorMasterDataEndpoint=/v1/masterdata/actuator/env resident_esignet=v1/esignet/actuator/health esignetMockBaseURL=esignet-insurance. slack-webhook-url= -serverErrorsToMonitor=IDA-MLC-018 +serverErrorsToMonitor= regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties new file mode 100644 index 000000000..230ee4bf0 --- /dev/null +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel_dev-staging.properties @@ -0,0 +1,300 @@ +#Kernel resource uris +#Make sure all resource apis are covered +authclientidsecretkeyURL=/v1/authmanager/authenticate/clientidsecretkey +authentication=/v1/authmanager/authenticate/useridPwd +authenticationInternal=/v1/authmanager/authenticate/internal/useridPwd +keycloakAuthURL=/auth/realms/master/protocol/openid-connect/token +auditLog_URI = /v1/auditmanager/audits +CentetMachineUserMappingToMasterData_uri= /v1/masterdata/registrationmachineusermappings +EmailNotification_URI= /v1/notifier/email/send +encrypt_URI=/v1/keymanager/encrypt +decrypt_URI=/v1/keymanager/decrypt +FetchApplication_URI=/v1/masterdata/applicationtypes +FetchApplication_lang_URI=/v1/masterdata/applicationtypes/{langcode} +FetchApplication_id_lang_URI=/v1/masterdata/applicationtypes/{code}/{langcode} +FetchBiometricAttribute_URI=/v1/masterdata/getbiometricattributesbyauthtype/{langcode}/{biometrictypecode} +FetchBiometricAuthType_URI=/v1/masterdata/biometrictypes/{langcode} +FetchBlackListedWord_URI=/v1/masterdata/blacklistedwords/{langcode} +FetchDevice_lang_URI = /v1/masterdata/devices/{languagecode} +FetchDevice_id_lang_URI = /v1/masterdata/devices/{languagecode}/{deviceType} +FetchDeviceSpec_lang_URI = /v1/masterdata/devicespecifications/{langcode} +FetchDeviceSpec_id_lang_URI = /v1/masterdata/devicespecifications/{langcode}/{devicetypecode} +FetchDocumentCategories_URI = /v1/masterdata/documentcategories/{langcode} +FetchDocumentCategories_URI_withcodeAndLangCode = /v1/masterdata/documentcategories/{code}/{langcode} +FetchDocumentTypes_URI = /v1/masterdata/documenttypes/{documentcategorycode}/{langcode} +FetchGenderType_URI = /v1/masterdata/gendertypes +FetchGenderType_id_lang_URI = /v1/masterdata/gendertypes/{langcode} +FetchHolidays_URI = /v1/masterdata/holidays +FetchHolidays_id_URI = /v1/masterdata/holidays/{holidayid} +FetchHolidays_id_lang_URI = /v1/masterdata/holidays/{holidayid}/{langcode} +FetchIDlist_URI = /v1/masterdata/idtypes/{langcode} +FetchLocationHierarchy_URI_withlangCode = /v1/masterdata/locations/{langcode} +FetchLocationHierarchy_URI_locationcode = /v1/masterdata/locations/{locationcode}/{langcode} +FetchLocationHierarchy_URI_hierarchyname = /v1/masterdata/locations/locationhierarchy/{hierarchyname} +FetchMachine_URI=/v1/masterdata/machines +FetchMachine_lang_URI=/v1/masterdata/machines/{langcode} +FetchMachine_id_lang_URI=/v1/masterdata/machines/{id}/{langcode} +FetchMachineHistory_URI = /v1/masterdata/machineshistories/{id}/{langcode}/{effdatetimes} +FetchRegCent_URI = /v1/masterdata/registrationcenters +FetchRegCent_id_lang_URI = /v1/masterdata/registrationcenters/{id}/{langcode} +FetchRegCent_loc_lang_URI = /v1/masterdata/getlocspecificregistrationcenters/{langcode}/{locationcode} +FetchRegCent_hir_name_lang_URI = /v1/masterdata/registrationcenters/{langcode}/{hierarchylevel}/{name} +FetchRegCent_prox_lang_URI = /v1/masterdata/getcoordinatespecificregistrationcenters/{langcode}/{longitude}/{latitude}/{proximitydistance} +FetchRegCentHistory_URI = /v1/masterdata/registrationcentershistory/{registrationCenterId}/{langcode}/{effectiveDate} +FetchRegCentHolidays_URI = /v1/masterdata/getregistrationcenterholidays/{langcode}/{registrationcenterid}/{year} +FetchRegcentMachUserMaping_URI = /v1/masterdata/getregistrationmachineusermappinghistory/{effdtimes}/{registrationcenterid}/{machineid}/{userid} +FetchRejectionReason_URI = /v1/masterdata/packetrejectionreasons/{reasoncategorycode}/{langcode} +FetchTemplate_URI = /v1/masterdata/templates +FetchTemplate_lang_URI = /v1/masterdata/templates/{langcode} +FetchTemplate_id_lang_URI = /v1/masterdata/templates/{langcode}/{templatetypecode} +FetchTitle_URI = /v1/masterdata/title/{langcode} +fetchAllTemplate = /v1/masterdata/templates/templatetypecodes/{code} +getApplicantType = /v1/masterdata/getApplicantType +fetchDeviceHistory = /v1/masterdata/deviceshistories/{id}/{langcode}/{effdatetimes} +getDocType_DocCatByAppID = /v1/masterdata/applicanttype/{applicantId}/languages +getDocTypeDocCatByLangCode = /v1/masterdata/validdocuments/{languagecode} +fetchImmediateChildLocation = /v1/masterdata/locations/immediatechildren/{locationcode}/{langcode} +getIndividualType = /v1/masterdata/individualtypes +getRoles = /v1/syncdata/roles +fetchRegCenter = /v1/masterdata/registrationcenters/validate/{id}/{langCode}/{timestamp} +fetchRegistrationCenterDeviceHistory = /v1/masterdata/registrationcenterdevicehistory/{regcenterid}/{deviceid}/{effdatetimes} +getusersBasedOnRegCenter = /v1/syncdata/userdetails/{regid} +licKeyGenerator = /v1/keymanager/license/generate +mapLicenseKey = /v1/keymanager/license/permission +fetchmapLicenseKey = /v1/keymanager/license/permission +OTPGeneration = /v1/otpmanager/otp/generate +OTPValidation = /v1/otpmanager/otp/validate +otpNotifier = /v1/otpnotifier/otp/send +RIDGenerator_URI = /v1/ridgenerator/generate/rid/{centerid}/{machineid} +SmsNotification_URI = /v1/notifier/sms/send +syncConf = /v1/syncdata/configs +fetchIncrementalData = /v1/syncjob/syncjobdef +fetchmasterdata = /v1/syncdata/masterdata +fetchmasterdatawithRID = /v1/syncdata/masterdata/{regcenterId} +SyncPublicKeyToRegClient_URI = /v1/keymanager/publickey/ +uingenerator = /v1/idgenerator/uin +validateGenderByName = /v1/masterdata/gendertypes/validate/{gendername} +validateLocationByName = /v1/masterdata/locations/validate/{locationname} +tokenIdGenerator_URI = /v1/keymanager/{uin}/{partnercode} +getRIDByUserId = /v1/authmanager/rid/{appid}/{userid} +syncMdatawithKeyIndex = /v1/syncdata/clientsettings +syncMdatawithRegCentIdKeyIndex = /v1/syncdata/clientsettings/{regcenterid} +uploadpublickey = /v1/syncdata/tpm/publickey +getUserHistory = /v1/masterdata/users/{id}/{eff_dtimes} +sendOtp = /v1/authmanager/authenticate/sendotp +useridOTP = /v1/authmanager/authenticate/useridOTP +#preregSendOtp = /preregistration/v1/login/sendOtp +preregSendOtp = /preregistration/v1/login/sendOtp/langcode +preregValidateOtp = /preregistration/v1/login/validateOtp +zoneMappingUrl=/v1/masterdata/zoneuser +zoneNameUrl=/v1/masterdata/zones/zonename +zoneMappingActivateUrl=/v1/masterdata/zoneuser +userCenterMappingUrl=/v1/masterdata/usercentermapping +bulkUploadUrl=/v1/admin/bulkupload +deleteMockAbisExpectations=v1/mock-abis-service/config/expectation +# OTP Details +OTPTimeOut = 181 +attempt = 10 +ConfigParameters=mosip.kernel.rid.length,mosip.kernel.uin.length,mosip.kernel.sms.country.code,mosip.kernel.sms.number.length,mosip.kernel.otp.default-length,mosip.kernel.otp.expiry-time,mosip.kernel.otp.key-freeze-time,mosip.kernel.otp.validation-attempt-threshold,mosip.kernel.otp.min-key-length,mosip.kernel.otp.max-key-length,mosip.kernel.licensekey.length,mosip.supported-languages +#Below users are used for authentication +#PARTNER +#Dont change the partner id +pmsAuthInternal=true +mosip_pms_app_id=partner +partner_password=mosip123 +partner_userName=111997 +partner_user_password=mosip123 +mosip_pms_client_id=mosip-pms-client +mosip_pms_client_secret=P9gZ2ggfOkaCIh0i +policytest_password=mosip123 +policytest_userName=111998 +#RESIDENT & IDA +mosip_resident_app_id=resident +mosip_resident_client_id=mosip-resident-client +mosip_resident_client_secret=eNuh5PT1n1su76uO +#IDREPO +mosip_idrepo_app_id=idrepo +mosip_idrepo_client_id=mosip-idrepo-client +mosip_idrepo_client_secret=MztmjErLZDCaifRy + + + +#admin +mosip_admin_app_id=admin +admin_password=Techno@123 +admin_userName=solid0 + + +mosip_admin_client_id=mosip-admin-client +mosip_admin_client_secret=jraA5R0XIWwbYYQc + +admin_zone_appid=admin +admin_zone_password=mosip123 +admin_zone_userName=globaladmin +admin_zone_clientId=mosip-admin-client +admin_zone_clientSecret=jraA5R0XIWwbYYQc + +mosip_regclient_app_id=registrationclient +mosip_reg_client_id=mosip-reg-client +mosip_reg_client_secret=N2ppib7TrSb2vxXm + +#regproc +mosip_regprocclient_app_id=regproc +mosip_regproc_client_id=mosip-regproc-client +mosip_regproc_client_secret=IMEXRmebs2ZnRtHs + + +#This credentials are used to execute auth demo service +AuthClientID=mosip-resident-client +AuthClientSecret=eNuh5PT1n1su76uO + +AuthAppID=resident +mosip_hotlist_app_id=hotlist +mosip_hotlist_client_id=mosip-hotlist-client +mosip_hotlist_client_secret=q3YolCTspBBPd1qs + + + + +###Keycloak_User-Creation_Properties +#Dontchange the partner user_111997 + +new_Resident_User=111995 +new_Resident_Password=mosip123 +new_Resident_Role=default-roles-mosip,PARTNER_ADMIN +roles.111995=PARTNER_ADMIN,default-roles-mosip + + +keycloak_UserName = admin +keycloak_Password = 5IB9nczmbn + +keycloak-external-url=https://iam.dev-staging.mosip.net +mosip_testrig_client_id=mosip-testrig-client +mosip_testrig_client_secret=dNouUmVGpumrT2BX + + +keycloak-realm-id=mosip +iam-users-to-create=111997,111998,220005,111992,globaladmin +#iam-users-to-create=111997,220005,111992 +iam-users-password=mosip123,mosip123,mosip123,mosip123,mosip123 +roles=GLOBAL_ADMIN,ID_AUTHENTICATION,REGISTRATION_ADMIN,REGISTRATION_SUPERVISOR,ZONAL_ADMIN,AUTH_PARTNER,PARTNER_ADMIN,PMS_ADMIN,POLICYMANAGER,REGISTRATION_SUPERVISOR,DATA_READ +roles.111997=AUTH_PARTNER,PARTNER_ADMIN,PMS_ADMIN,POLICYMANAGER,REGISTRATION_SUPERVISOR + +##DB_Connectivity +driver_class=org.postgresql.Driver +pool_size=1 +dialect=org.hibernate.dialect.PostgreSQLDialect +show_sql=true +current_session_context_class=thread +#audit details +audit_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_audit +audit_username=postgres +audit_password=G7zMqBaSJg +audit_default_schema=audit +#ida-partner details +DB_PORT= +installation-domain= +partner_url=jdbc:postgresql://api-internal.dev-staging.mosip.net:30090/mosip_ida +partner_username=postgres +partner_password=G7zMqBaSJg +partner_default_schema=partner +reportLogPath=automationLogAndReport +#--------minio proprties---------------- +s3-user-key=minioadmin +s3-user-secret=minioadmin +s3-host=http://minio.minio:9000 +s3-account=automation +s3-region=null +# supported values yes or no +push-reports-to-s3=no +enableDebug=no +# supported values are 1 to 8 +threadCount=9 +# supported values are 0 ,1, 2 based on number of env languages +langselect=0 +#----------------------------------Database properties----------------------------------------------------------# + +postgresqlUser=postgresql +db-port=5432 +db-server=api-internal.dev-staging.mosip.net +hibernate.connection.driver_class=org.postgresql.Driver +hibernate.connection.pool_size=1 +hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +hibernate.show_sql=true +hibernate.current_session_context_class=thread +db-su-user=postgres +postgresql-password=d52kjJuxp2 +pms_db_schema=pms +km_db_schema=keymgr +master_db_schema=master +audit_db_schema=audit +ida_db_schema=ida + +authDemoServiceBaseURL=http://localhost +authDemoServicePort=8082 + +#######NEWLY ADDED ############################################################################## +mosip.test.persona.datapath=/profile_resource/ +mosip.test.persona.fingerprintdatapath=/profile_resource/fp_data +mosip.test.persona.irisdatapath=/profile_resource/iris_data/ +mosip.test.persona.locationsdatapath=/profile_resource/location_data +mosip.test.persona.namesdatapath=/profile_resource/names_data +mosip.test.persona.facedatapath=/profile_resource/face_data +mosip.test.persona.documentsdatapath=/profile_resource/documents_data/templates/ +##neeha added below +mosip.test.persona.templatesdatapath=/profile_resource/templates_data +mosip.test.temp=/packets/ +templateIDMeta=/profile_resource/templates_data/IDMetaInfo.json +mountPath=../mountvolume +#mountPath=/home/mosip/mountvolume +mountPathForScenario=D:/centralized/mountvolume +packetUtilityBaseUrl=http://localhost:8080/v1/packetcreator +#packetUtilityBaseUrl=http://dev.mosip.net:8080 + + +#######NEWLY ADDED ############################################################################## +usePreConfiguredOtp=true +usePreConfiguredEmail=prereg-dsl9@gmail.com +otpTargetEmail=prereg-dsl9@gmail.com +preconfiguredOtp=111111 +email_otp=111111 +uploaddocument=preregistration/v1/documents/ +updatePreRegStatus=preregistration/v1/applications/prereg/status/ +mosip.test.prereg.centerid=10005 +#mosip.test.prereg.centerid=automatic +ridStageStatus=v1/admin/packetstatusupdate + +auditActuatorEndpoint=/v1/auditmanager/actuator/info +actuatorAdminEndpoint=/v1/admin/actuator/env +currentUserURI=/#/uinservices/viewhistory +actuatorRegprocEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env +actuatorEndpoint=/resident/v1/actuator/env +actuatorIDAEndpoint=/idauthentication/v1/actuator/env +tokenEndpoint=/v1/esignet/oauth/token +validateBindingEndpoint=esignet-binding +esignetWellKnownEndPoint=/v1/esignet/oidc/.well-known/openid-configuration +#To run in Docker +#authCertsPath=/home/mosip/authcerts +#To run locally +authCertsPath= +reportExpirationInDays=3 + +# ---- Add scenarios to skip from automation and server side ------------------------------------- +# supported values "S-scnearioNumber" for server side and "A-scnearioNumber" for automation +scenariosToSkip= +#-- Add scenarios to include in the the execution list------ +# -- Empty if we want to execute all the scenarios--- +scenariosToExecute= +#-- supported values yes or no +useExternalScenarioSheet=no + +partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 +master_default_schema=master +reportIgnoredTestCases=no +servicesNotDeployed= +actuatorMasterDataEndpoint=/v1/masterdata/actuator/env +resident_esignet=v1/esignet/actuator/health +esignetMockBaseURL=esignet-insurance. +slack-webhook-url= +serverErrorsToMonitor=IDA-MLC-018 +regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env \ No newline at end of file From 79540cf63dd7da00387799bdc1015e9c8c87af1c Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Fri, 28 Jun 2024 12:34:02 +0530 Subject: [PATCH 37/57] MOSIP-33996 Signed-off-by: Pankaj Godiyal --- .../src/main/resources/config/Kernel.properties | 2 +- .../ivv-orchestrator/src/main/resources/config/scenarios.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties index 7007d4371..84007d2ce 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties @@ -288,7 +288,7 @@ scenariosToExecute= #-- supported values yes or no useExternalScenarioSheet=no -#partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 +partnerUrlSuffix= #master_default_schema=master reportIgnoredTestCases= servicesNotDeployed= diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json index 073d6cd5e..0752d49ce 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json @@ -10265,7 +10265,7 @@ } }, { - "Scenario": "88", + "Scenario": "#88", "Tag": "Postive_Test", "Persona": "ResidentMaleAdult", "Group": "NA", From 75ab01296021ba229de5a95f83ac97ee79b2395d Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Wed, 10 Jul 2024 11:49:00 +0530 Subject: [PATCH 38/57] MOSIP-34074 Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/core/base/BaseStep.java | 2 - .../ivv-orchestrator/pom.xml | 41 ++-- .../ivv/e2e/methods/ActivateDeactivate.java | 28 ++- .../ivv/e2e/methods/ApproveRejectPacket.java | 42 ++--- .../ivv/e2e/methods/AssignPacketToUser.java | 4 + .../ivv/e2e/methods/BioAuthentication.java | 90 ++++----- .../e2e/methods/BioEsignetAuthentication.java | 99 +++++----- .../ivv/e2e/methods/BookAppointment.java | 29 +-- .../e2e/methods/BookSpecificSlotForPrid.java | 50 ++--- .../ivv/e2e/methods/BulkUploadPacket.java | 33 ++-- .../ivv/e2e/methods/CancelAppointment.java | 55 +++--- .../dslrig/ivv/e2e/methods/CancelBooking.java | 77 ++++---- .../dslrig/ivv/e2e/methods/Center.java | 87 +++++---- .../e2e/methods/CheckCredentialStatus.java | 11 +- .../ivv/e2e/methods/CheckForBDBAbsence.java | 36 ++-- .../ivv/e2e/methods/CheckForBDBPresence.java | 44 ++--- .../e2e/methods/CheckMultipleRidStatus.java | 81 ++++---- .../ivv/e2e/methods/CheckPridStatus.java | 27 +-- .../dslrig/ivv/e2e/methods/CheckRIDStage.java | 7 +- .../dslrig/ivv/e2e/methods/CheckStatus.java | 26 +-- .../dslrig/ivv/e2e/methods/CheckTags.java | 5 + .../ivv/e2e/methods/ClearDeviceCertCache.java | 7 +- .../e2e/methods/ClonePersonaAndUpdate.java | 44 +++-- .../ivv/e2e/methods/ConfigureMockAbis.java | 36 ++-- .../dslrig/ivv/e2e/methods/CorruptPacket.java | 8 +- .../ivv/e2e/methods/CredentialRequest.java | 176 ++++++++--------- .../ivv/e2e/methods/DeleteApplication.java | 4 + .../dslrig/ivv/e2e/methods/DeleteHoliday.java | 5 + .../ivv/e2e/methods/DeleteMockExpect.java | 10 +- .../ivv/e2e/methods/DemoAuthentication.java | 178 +++++++----------- .../ivv/e2e/methods/DiscardAppointment.java | 26 +-- .../ivv/e2e/methods/DiscardBooking.java | 74 ++++---- .../dslrig/ivv/e2e/methods/DownloadCard.java | 122 ++++++------ .../dslrig/ivv/e2e/methods/EkycBio.java | 110 +++++------ .../ivv/e2e/methods/EkycBioWithVid.java | 95 +++++----- .../dslrig/ivv/e2e/methods/EkycDemo.java | 177 +++++++++-------- .../dslrig/ivv/e2e/methods/EkycOtp.java | 72 ++++--- .../e2e/methods/EsignetAuthentication.java | 29 ++- .../e2e/methods/GenerateAndUploadPacket.java | 31 +-- ...GenerateAndUploadPacketSkippingPrereg.java | 51 ++--- ...dPacketSkippingPreregWithInvalidCbeff.java | 32 ++-- .../e2e/methods/GenerateAuthCertifcates.java | 25 +-- .../dslrig/ivv/e2e/methods/GenerateVID.java | 11 +- .../e2e/methods/GenerateVIDWithoutOTP.java | 18 +- .../ivv/e2e/methods/GetAdditionalReqId.java | 32 ++-- .../ivv/e2e/methods/GetBioModalityHash.java | 12 +- .../ivv/e2e/methods/GetBlocklistedWord.java | 17 +- .../dslrig/ivv/e2e/methods/GetEmailByUIN.java | 62 +++--- .../ivv/e2e/methods/GetIdentityByRid.java | 91 +++++---- .../ivv/e2e/methods/GetPacketTemplate.java | 11 +- .../dslrig/ivv/e2e/methods/GetPhoneByUIN.java | 14 +- .../dslrig/ivv/e2e/methods/GetPingHealth.java | 7 +- .../ivv/e2e/methods/GetResidentData.java | 16 +- .../dslrig/ivv/e2e/methods/GetUINByRid.java | 12 +- .../ivv/e2e/methods/HolidayDeclaration.java | 98 +++++----- .../dslrig/ivv/e2e/methods/Machine.java | 68 ++++--- .../ivv/e2e/methods/MasterdataDelete.java | 21 ++- .../methods/MultiFactorAuthentication.java | 93 +++++---- .../ivv/e2e/methods/MultiProductRemap.java | 5 + .../ivv/e2e/methods/OAuthDetailsRequest.java | 6 +- .../dslrig/ivv/e2e/methods/OidcClient.java | 7 +- .../OperatorOnboardAuthentication.java | 81 ++++---- .../ivv/e2e/methods/OtpAuthentication.java | 48 +++-- .../dslrig/ivv/e2e/methods/Packetcreator.java | 56 +++--- .../dslrig/ivv/e2e/methods/Packetsync.java | 25 +-- .../dslrig/ivv/e2e/methods/PostMockMv.java | 34 ++-- .../dslrig/ivv/e2e/methods/PreRegister.java | 27 ++- .../ivv/e2e/methods/RandomDataAssign.java | 5 +- .../dslrig/ivv/e2e/methods/ReadPreReq.java | 4 + .../ivv/e2e/methods/ReprocessPacket.java | 33 +--- .../ivv/e2e/methods/ResetContextData.java | 65 ++++--- .../ivv/e2e/methods/RidSyncRejected.java | 87 +++++---- .../dslrig/ivv/e2e/methods/Ridsync.java | 89 ++++----- .../dslrig/ivv/e2e/methods/SendOtp.java | 11 +- .../dslrig/ivv/e2e/methods/SetContext.java | 16 +- .../testrig/dslrig/ivv/e2e/methods/Skip.java | 4 + .../dslrig/ivv/e2e/methods/SwitchContext.java | 4 + .../dslrig/ivv/e2e/methods/SyncData.java | 7 +- .../ivv/e2e/methods/UpdateApplication.java | 1 - .../methods/UpdateBioExceptionInPersona.java | 30 +-- .../e2e/methods/UpdateDemoOrBioDetails.java | 12 +- .../methods/UpdateMachineInPrereqData.java | 4 + .../ivv/e2e/methods/UpdatePreRegStatus.java | 4 + .../methods/UpdateResidentWithGuardian.java | 4 + ...ateResidentWithGuardianSkippingPreReg.java | 4 + .../e2e/methods/UpdateResidentWithRID.java | 4 + .../e2e/methods/UpdateResidentWithUIN.java | 4 + .../ivv/e2e/methods/UpdateUINDetail.java | 4 + .../ivv/e2e/methods/UploadDocuments.java | 4 + .../methods/UploadPacketWithInvalidHash.java | 4 + .../testrig/dslrig/ivv/e2e/methods/User.java | 26 ++- .../dslrig/ivv/e2e/methods/UserInfo.java | 5 +- .../dslrig/ivv/e2e/methods/ValidateOtp.java | 4 + .../testrig/dslrig/ivv/e2e/methods/Wait.java | 10 +- .../methods/WaitTillReprocessorInterval.java | 4 + .../ivv/e2e/methods/WritePersonaData.java | 5 +- .../dslrig/ivv/e2e/methods/WritePreReq.java | 9 +- .../ivv/orchestrator/BaseTestCaseUtil.java | 4 +- .../dslrig/ivv/orchestrator/Orchestrator.java | 20 +- .../ivv/orchestrator/PacketUtility.java | 32 ++-- .../resources/config/application.properties | 11 +- .../resources/idaData/BioAuth/BioAuth.yml | 22 ++- .../BioAuth/BioAuthIdentityEncrypt.hbs | 10 +- .../resources/idaData/BioAuth/bioAuth.hbs | 57 +++--- .../idaData/BioAuth/bioAuthResult.hbs | 16 +- .../resources/idaData/DemoAuth/DemoAuth.yml | 23 ++- .../resources/idaData/DemoAuth/DemoKYC.yml | 22 ++- .../resources/idaData/DemoAuth/demoAuth.hbs | 24 ++- .../idaData/DemoAuth/demoAuthResult.hbs | 17 +- .../idaData/DemoAuth/demoEkycResult.hbs | 22 +-- .../resources/idaData/DemoAuth/ekycDemo.hbs | 23 +++ .../resources/idaData/EkycBio/EkycBio.yml | 29 ++- ...Encrypt.hbs => EkycBioIdentityEncrypt.hbs} | 8 +- .../resources/idaData/EkycBio/ekycBio.hbs | 53 +++--- .../idaData/EkycBio/ekycBioResult.hbs | 22 +-- .../resources/idaData/EkycOtp/EkycOtp.yml | 30 ++- .../EkycOtp/EkycotpIdentityEncrypt.json | 4 +- .../resources/idaData/EkycOtp/ekycOtp.hbs | 26 ++- .../idaData/EkycOtp/ekycOtpResult.hbs | 23 +-- .../resources/idaData/EkycOtp/sendOtpRes.hbs | 4 +- .../MultiFactorAuth/MultiFactorAuth.yml | 33 +++- .../MultiFactorAuth/multiFactorAuth.hbs | 60 +++--- .../MultiFactorAuth/multiFactorAuthResult.hbs | 17 +- .../resources/idaData/OtpAuth/OtpAuth.yml | 29 ++- .../idaData/OtpAuth/OtpIdentityEncrypt.json | 4 +- .../resources/idaData/OtpAuth/otpAuth.hbs | 25 ++- .../idaData/OtpAuth/otpAuthResult.hbs | 17 +- .../resources/idaData/OtpAuth/sendOtpRes.hbs | 5 +- .../service/CertificateService.java | 2 - .../service/CommandsService.java | 2 - .../packetcreator/service/CryptoUtil.java | 2 - .../service/PreregSyncService.java | 1 + .../dataprovider/BiometricDataProvider.java | 15 +- 133 files changed, 2267 insertions(+), 1972 deletions(-) create mode 100644 mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/ekycDemo.hbs rename mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/{EkycIdentityEncrypt.hbs => EkycBioIdentityEncrypt.hbs} (89%) diff --git a/mosip-acceptance-tests/ivv-core/src/main/java/io/mosip/testrig/dslrig/ivv/core/base/BaseStep.java b/mosip-acceptance-tests/ivv-core/src/main/java/io/mosip/testrig/dslrig/ivv/core/base/BaseStep.java index 8f4bedc92..daef72196 100644 --- a/mosip-acceptance-tests/ivv-core/src/main/java/io/mosip/testrig/dslrig/ivv/core/base/BaseStep.java +++ b/mosip-acceptance-tests/ivv-core/src/main/java/io/mosip/testrig/dslrig/ivv/core/base/BaseStep.java @@ -5,7 +5,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import com.aventstack.extentreports.ExtentTest; import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.PathNotFoundException; @@ -18,7 +17,6 @@ import io.mosip.testrig.dslrig.ivv.core.dtos.Store; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.core.utils.ErrorMiddleware; -import io.mosip.testrig.dslrig.ivv.core.utils.Utils; public class BaseStep { private static final Logger logger = LoggerFactory.getLogger(BaseStep.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/pom.xml b/mosip-acceptance-tests/ivv-orchestrator/pom.xml index e03dd80b7..78285c4a0 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/pom.xml +++ b/mosip-acceptance-tests/ivv-orchestrator/pom.xml @@ -134,46 +134,46 @@ apitest-esignet 1.2.1-SNAPSHOT - - + + io.mosip.authentication apitest-auth 1.2.1-SNAPSHOT - - + + io.mosip.idrepo apitest-idrepo 1.2.1-SNAPSHOT - - + + io.mosip.masterdata apitest-masterdata 1.2.1-SNAPSHOT - + io.mosip.mimoto apitest-mimoto 1.2.1-SNAPSHOT - - + + io.mosip.partner apitest-pms 1.2.1-SNAPSHOT - + io.mosip.prereg apitest-prereg 1.2.1-SNAPSHOT - + io.mosip.resident apitest-resident 1.2.1-SNAPSHOT - + com.slack.api slack-api-client @@ -209,6 +209,7 @@ 2.10.1 + @@ -216,6 +217,22 @@ sonar + + + 5.0.6.RELEASE + + 2.0.2.RELEASE + 2.0.7.RELEASE + 5.0.5.RELEASE + 2.0.0.RELEASE + + 2.0.7 + 1.5.20 + 2.9.2 + + 3.6.2 + 3.7.0 + . src/main/java/**,src/main/resources/** ${sonar.coverage.exclusions} diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ActivateDeactivate.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ActivateDeactivate.java index 64ad6187c..a1cf372c3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ActivateDeactivate.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ActivateDeactivate.java @@ -6,6 +6,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -18,23 +20,19 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; import io.restassured.response.Response; +@Scope("prototype") +@Component public class ActivateDeactivate extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(ActivateDeactivate.class); KernelAuthentication kernelAuthLib = new KernelAuthentication(); ActivateDeactivateHelper helper = new ActivateDeactivateHelper(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); else logger.setLevel(Level.ERROR); } - - // Machine [type=machine@@value=10002@@machineSpecId=1001@@zoneCode=SAL@@status=true] - // RegCenter [type=regcenter@@value=10001@@locationCode=14023@@zoneCode=SAL@@status=true] - // Operator [type=operator@@value=110124@@status=true] - // Device [type=device@@id=1001@@status=true] - // Device-LTS [type=devicelts@@value=1001@@status=true] @Override public void run() throws RigInternalError { @@ -57,9 +55,9 @@ public void run() throws RigInternalError { } } } else { - this.hasError=true; + this.hasError = true; throw new RigInternalError(helper.missingInputParameter()); - + } String token = kernelAuthLib.getTokenByRole("admin"); @@ -77,7 +75,7 @@ public void run() throws RigInternalError { } JSONObject jsonResp = new JSONObject(getMachineResponse.getBody().asString()); Boolean machineStatus = packetUtility.activateDeActiveMachine(jsonResp.toString(), - prop.getProperty("machineSpecId"), value, prop.getProperty("zoneCode"), token, status,step); + prop.getProperty("machineSpecId"), value, prop.getProperty("zoneCode"), token, status, step); if (!(machineStatus == Boolean.parseBoolean(status))) { String message = (status.equals("true")) ? "Activate machine" : "DeActivate machine"; throw new RigInternalError("Unable to " + message); @@ -141,7 +139,7 @@ public void run() throws RigInternalError { } JSONObject jsonRegcenterResp = new JSONObject(getregCenterResponse.getBody().asString()); Boolean regCenterStatus = packetUtility.activateDeActiveRegCenter(jsonRegcenterResp.toString(), value, - prop.getProperty("locationCode"), prop.getProperty("zoneCode"), token, status,step); + prop.getProperty("locationCode"), prop.getProperty("zoneCode"), token, status, step); if (!(regCenterStatus == Boolean.parseBoolean(status))) { String message = (status.equals("true")) ? "Activate RegCenter" : "DeActivate RegCenter"; throw new RigInternalError("Unable to " + message); @@ -150,18 +148,18 @@ public void run() throws RigInternalError { helper.deActivateRegCenter(prop, token); } break; - + case E2EConstants.DEVICE: JSONObject jsonResp = helper.filterRecordByColumnName(filterColumnName, filterByValue, Boolean.valueOf(status), token); String deiceJsonReq = helper.buildDeviceRequest(jsonResp, Boolean.valueOf(status)); url = endPoint + props.getProperty("devices"); Response deviceResponse = packetUtility.putReqestWithCookiesAndBody(url, deiceJsonReq, token, - "Device activate/deactivate",step); + "Device activate/deactivate", step); if (deviceResponse.getBody().asString().toLowerCase().contains("errorcode")) throw new RigInternalError("Failed to activate/deactivate device"); break; - + case E2EConstants.DEVICElTS: url = endPoint + props.getProperty("devices"); HashMap queryParam = new HashMap<>(); @@ -174,7 +172,7 @@ public void run() throws RigInternalError { (Boolean.valueOf(status)) ? "Unable to Activate device" : "Unable to Deactivate Device"); break; default: - this.hasError=true; + this.hasError = true; throw new RigInternalError( type + "is not supported only allowed [machine/operator/partner/device/regcenter]"); } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ApproveRejectPacket.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ApproveRejectPacket.java index a69b57ca3..47ac7e9ac 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ApproveRejectPacket.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ApproveRejectPacket.java @@ -5,6 +5,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.dto.TestCaseDTO; @@ -14,63 +16,61 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class ApproveRejectPacket extends BaseTestCaseUtil implements StepInterface { private static final String DECISSIONDATA_YML = "preReg/approveRejectPacket/decissionData.yml"; public static Logger logger = Logger.getLogger(ApproveRejectPacket.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); else logger.setLevel(Level.ERROR); } - + @Override public void run() throws RigInternalError { - String status_Code=null; + String status_Code = null; if (step.getParameters() == null || step.getParameters().isEmpty()) { logger.error("Parameter is missing from DSL step"); - assertTrue(false,"StatusCode paramter is missing in step: "+step.getName()); + assertTrue(false, "StatusCode paramter is missing in step: " + step.getName()); } else { - status_Code =step.getParameters().get(0); + status_Code = step.getParameters().get(0); } - SimplePostForAutoGenId simplePostForAutoGenId= new SimplePostForAutoGenId(); + SimplePostForAutoGenId simplePostForAutoGenId = new SimplePostForAutoGenId(); Object[] casesList = simplePostForAutoGenId.getYmlTestData(DECISSIONDATA_YML); Object[] testCaseList = filterTestCases(casesList); - simplePostForAutoGenId.idKeyName="regId"; + simplePostForAutoGenId.idKeyName = "regId"; logger.info("No. of TestCases in Yml file : " + testCaseList.length); try { for (Object object : testCaseList) { TestCaseDTO test = (TestCaseDTO) object; - for(String keys:step.getScenario().getManualVerificationRid().keySet()) { - test.setInput(test.getInput() - .replace("$mvUsrId$", keys) + for (String keys : step.getScenario().getManualVerificationRid().keySet()) { + test.setInput(test.getInput().replace("$mvUsrId$", keys) .replace("$regId$", step.getScenario().getManualVerificationRid().get(keys)) .replace("$statusCode$", status_Code)); - test.setOutput(test.getOutput() - .replace("$mvUsrId$", keys) - .replace("$statusCode$", status_Code) - ); + test.setOutput(test.getOutput().replace("$mvUsrId$", keys).replace("$statusCode$", status_Code)); } - Reporter.log(""+test.getTestCaseName()+ ""); + Reporter.log("" + test.getTestCaseName() + ""); long startTime = System.currentTimeMillis(); - logger.info(this.getClass().getSimpleName()+" starts at..."+startTime +" MilliSec"); + logger.info(this.getClass().getSimpleName() + " starts at..." + startTime + " MilliSec"); simplePostForAutoGenId.test(test); long stopTime = System.currentTimeMillis(); long elapsedTime = stopTime - startTime; - logger.info("Time taken to execute "+ this.getClass().getSimpleName()+": " +elapsedTime +" MilliSec"); + logger.info( + "Time taken to execute " + this.getClass().getSimpleName() + ": " + elapsedTime + " MilliSec"); JSONObject response = new JSONObject(simplePostForAutoGenId.response.asString()); - if(!response.get("response").toString().equals("null")) - { + if (!response.get("response").toString().equals("null")) { JSONObject responseJson = new JSONObject(response.get("response").toString()); - step.getScenario().setStatusCode( responseJson.get("statusCode").toString()); + step.getScenario().setStatusCode(responseJson.get("statusCode").toString()); step.getScenario().getPridsAndRids().clear(); step.getScenario().getPridsAndRids().put(null, responseJson.get("regId").toString()); } } } catch (Exception e) { - this.hasError=true; + this.hasError = true; logger.error(e.getMessage()); throw new RigInternalError("Failed at decission data(approved or reject) Response validation"); } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/AssignPacketToUser.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/AssignPacketToUser.java index f9135ee1c..6ac63fe43 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/AssignPacketToUser.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/AssignPacketToUser.java @@ -5,6 +5,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.dto.TestCaseDTO; @@ -14,6 +16,8 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class AssignPacketToUser extends BaseTestCaseUtil implements StepInterface { private static final String ASSIGNDATA_YML = "preReg/assignPacketToUser/assignData.yml"; public static Logger logger = Logger.getLogger(AssignPacketToUser.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioAuthentication.java index 5e468d0aa..46d7be648 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioAuthentication.java @@ -9,6 +9,10 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -22,17 +26,21 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner; +@Scope("prototype") +@Component public class BioAuthentication extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(BioAuthentication.class); private static final String BIOMETRIC_FACE = "idaData/BioAuth/BioAuth.yml"; Properties deviceProp = null; Properties uinResidentDataPathFinalProps = new Properties(); - BioAuth bioAuth = new BioAuth(); String bioResponse = null; List idType = BaseTestCase.getSupportedIdTypesValueFromActuator(); List casesListUIN = null; List casesListVID = null; - + + @Autowired + private BioAuth bioAuth; + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -42,9 +50,6 @@ public class BioAuthentication extends BaseTestCaseUtil implements StepInterface @Override public void run() throws RigInternalError { - // AuthPartnerProcessor.startProcess(); - // step.getScenario().getUinPersonaProp().put("9683481379", - // "C:\\Users\\Sohan.Dey\\Downloads\\residents_10857486596570242644\\7660996440.json"); String deviceInfoFilePath = null; String uins = null; @@ -53,7 +58,7 @@ public void run() throws RigInternalError { List vidList = null; if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Parameter is missing from DSL step"); -this.hasError=true; + this.hasError = true; throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); } else { deviceInfoFilePath = step.getParameters().get(0); @@ -61,9 +66,11 @@ public void run() throws RigInternalError { deviceInfoFilePath = TestRunner.getExternalResourcePath() + props.getProperty("ivv.path.deviceinfo.folder") + deviceInfoFilePath + ".properties"; deviceProp = AdminTestUtil.getproperty(deviceInfoFilePath); - } else - {this.hasError=true;throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step"); - }} + } else { + this.hasError = true; + throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step"); + } + } if (step.getParameters().size() == 2) { uins = step.getParameters().get(1); if (!StringUtils.isBlank(uins)) @@ -102,10 +109,10 @@ public void run() throws RigInternalError { String personFilePathvalue = null; if (step.getScenario().getUinPersonaProp().containsKey(uin)) personFilePathvalue = step.getScenario().getUinPersonaProp().getProperty(uin); - else - { - this.hasError=true;throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); - } + else { + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); + } String bioType = null, bioSubType = null; List modalityList = new ArrayList<>(); @@ -132,22 +139,17 @@ public void run() throws RigInternalError { modalityKeyTogetBioValue = bioSubType; break; default: - this.hasError=true; + this.hasError = true; throw new RigInternalError("Given BIO Type in device property file is not valid"); } } - bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList,step); - - //System.out.println("bioMetricValue= " + bioResponse); + bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList, step); String fileName = BIOMETRIC_FACE; bioAuth.isInternal = false; - Object[] casesListUIN = null; // bioAuth.getYmlTestData(fileName); - Object[] casesListVID = null; // bioAuth.getYmlTestData(fileName); - // Get the id types from server -// if idtypes.contains "UIN" { casesListUIN = bioAuth.getYmlTestData(fileName); -// if idtypes.contains "VID" { casesListVID = bioAuth.getYmlTestData(fileName); + Object[] casesListUIN = null; + Object[] casesListVID = null; if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("UIN") || BaseTestCase.getSupportedIdTypesValueFromActuator().contains("uin")) { @@ -173,7 +175,8 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") bioValue = Base64.getEncoder().encodeToString(decodedBioMetricValue); if (bioValue == null || bioValue.length() < 100) { - this.hasError=true; throw new RigInternalError( + this.hasError = true; + throw new RigInternalError( "Not able to get the bio value for field " + modalityToLog + " from persona"); } if (idType.contains("UIN") || idType.contains("uin")) { @@ -183,7 +186,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") if (casesListUIN != null) { for (Object object : casesListUIN) { TestCaseDTO test = (TestCaseDTO) object; - packetUtility.bioAuth(modalityToLog, bioValue, uin, deviceProp, test, bioAuth,step); + packetUtility.bioAuth(modalityToLog, bioValue, uin, deviceProp, test, bioAuth, step); } } @@ -191,12 +194,16 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } for (String vid : vidList) { + Object[] testObj = bioAuth.getYmlTestData(BIOMETRIC_FACE); + TestCaseDTO test = (TestCaseDTO) testObj[0]; + String input = test.getInput(); String personFilePathvalue = null; if (step.getScenario().getVidPersonaProp().containsKey(vid)) personFilePathvalue = step.getScenario().getVidPersonaProp().getProperty(vid); - else - {this.hasError=true;throw new RigInternalError("Persona doesn't exist for the given VID " + vid); - } + else { + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given VID " + vid); + } String bioType = null, bioSubType = null; List modalityList = new ArrayList<>(); String modalityToLog = null; @@ -222,21 +229,18 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") modalityKeyTogetBioValue = bioSubType; break; default: - this.hasError=true;throw new RigInternalError("Given BIO Type in device property file is not valid"); + this.hasError = true; + throw new RigInternalError("Given BIO Type in device property file is not valid"); } } - bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList,step); - - //System.out.println("bioMetricValue= " + bioResponse); - + bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList, step); String fileName = BIOMETRIC_FACE; bioAuth.isInternal = false; - Object[] casesListUIN = null; // bioAuth.getYmlTestData(fileName); - Object[] casesListVID = null; // bioAuth.getYmlTestData(fileName); - // Get the id types from server -// if idtypes.contains "UIN" { casesListUIN = bioAuth.getYmlTestData(fileName); -// if idtypes.contains "VID" { casesListVID = bioAuth.getYmlTestData(fileName); + Object[] casesListUIN = null; + Object[] casesListVID = null; + + input = JsonPrecondtion.parseAndReturnJsonContent(input, "VID", "individualIdType"); if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("UIN") || BaseTestCase.getSupportedIdTypesValueFromActuator().contains("uin")) { @@ -261,21 +265,21 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") byte[] decodedBioMetricValue = Base64.getUrlDecoder().decode(bioValue); bioValue = Base64.getEncoder().encodeToString(decodedBioMetricValue); - if (bioValue == null || bioValue.length() < 100) - {this.hasError=true;throw new RigInternalError( + if (bioValue == null || bioValue.length() < 100) { + this.hasError = true; + throw new RigInternalError( "Not able to get the bio value for field " + modalityToLog + " from persona"); - } + } if (idType.contains("VID") || idType.contains("vid")) { casesListVID = bioAuth.getYmlTestData(fileName); } if (casesListVID != null) { for (Object object : casesListVID) { - TestCaseDTO test = (TestCaseDTO) object; - packetUtility.bioAuth(modalityToLog, bioValue, vid, deviceProp, test, bioAuth,step); + test.setInput(input); + packetUtility.bioAuth(modalityToLog, bioValue, vid, deviceProp, test, bioAuth, step); } } - } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioEsignetAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioEsignetAuthentication.java index 89864947f..ce40f4551 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioEsignetAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BioEsignetAuthentication.java @@ -8,6 +8,8 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.AdminTestUtil; import io.mosip.testrig.apirig.dto.TestCaseDTO; @@ -22,6 +24,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner; +@Scope("prototype") +@Component public class BioEsignetAuthentication extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(BioEsignetAuthentication.class); private static final String AuthenticateUser = "idaData/BioAuthEsignet/BioAuthEsignet.yml"; @@ -29,7 +33,7 @@ public class BioEsignetAuthentication extends BaseTestCaseUtil implements StepIn Properties uinResidentDataPathFinalProps = new Properties(); EsignetBioAuth esignetBioAuth = new EsignetBioAuth(); String bioResponse = null; - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -39,7 +43,7 @@ public class BioEsignetAuthentication extends BaseTestCaseUtil implements StepIn @Override public void run() throws RigInternalError, FeatureNotSupportedError { - + // check if esignet is installed on the target system if (ConfigManager.isInServiceNotDeployedList("eSignet")) { throw new FeatureNotSupportedError("eSignet is not deployed. Hence skipping the step"); @@ -55,12 +59,11 @@ public void run() throws RigInternalError, FeatureNotSupportedError { Object[] casesListUIN = null; Object[] casesListVID = null; List idType = BaseTestCase.getSupportedIdTypesValueFromActuator(); - - if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); + this.hasError = true; + throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); } else { deviceInfoFilePath = step.getParameters().get(0); if (!StringUtils.isBlank(deviceInfoFilePath)) { @@ -68,8 +71,10 @@ public void run() throws RigInternalError, FeatureNotSupportedError { + props.getProperty("ivv.path.deviceinfo.folder") + deviceInfoFilePath + ".properties"; deviceProp = AdminTestUtil.getproperty(deviceInfoFilePath); } else { - this.hasError=true; throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step"); - }} + this.hasError = true; + throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step"); + } + } if (step.getParameters().size() == 4) { // "e2e_BioEsignetAuthentication(faceDevice,$$uin,$$personaFilePath,$$transactionId,$$vid)" uins = step.getParameters().get(1); if (!StringUtils.isBlank(uins)) @@ -108,7 +113,8 @@ public void run() throws RigInternalError, FeatureNotSupportedError { if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("transactionId parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("transactionId paramter is missing in step: " + step.getName()); + this.hasError = true; + throw new RigInternalError("transactionId paramter is missing in step: " + step.getName()); } else { transactionId1 = (String) step.getScenario().getOidcClientProp().get("transactionId1"); // transactionId1 = step.getParameters().get(3); @@ -119,7 +125,8 @@ public void run() throws RigInternalError, FeatureNotSupportedError { if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("transactionId parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("transactionId paramter is missing in step: " + step.getName()); + this.hasError = true; + throw new RigInternalError("transactionId paramter is missing in step: " + step.getName()); } else { transactionId2 = (String) step.getScenario().getOidcClientProp().get("transactionId2"); // transactionId2 = step.getParameters().get(5); @@ -132,10 +139,10 @@ public void run() throws RigInternalError, FeatureNotSupportedError { String personFilePathvalue = null; if (step.getScenario().getUinPersonaProp().containsKey(uin)) personFilePathvalue = step.getScenario().getUinPersonaProp().getProperty(uin); - else - { - this.hasError=true;throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); - } + else { + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); + } String bioType = null, bioSubType = null; List modalityList = new ArrayList<>(); @@ -162,14 +169,12 @@ public void run() throws RigInternalError, FeatureNotSupportedError { modalityKeyTogetBioValue = bioSubType; break; default: - this.hasError=true;throw new RigInternalError("Given BIO Type in device property file is not valid"); + this.hasError = true; + throw new RigInternalError("Given BIO Type in device property file is not valid"); } } - bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList,step); - - //System.out.println("bioMetricValue= " + bioResponse); - + bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList, step); String fileName = AuthenticateUser; esignetBioAuth.isInternal = false; Object[] casesList = esignetBioAuth.getYmlTestData(fileName); @@ -179,26 +184,23 @@ public void run() throws RigInternalError, FeatureNotSupportedError { casesListUIN = esignetBioAuth.getYmlTestData(fileName); - } - - else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") + } else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") || BaseTestCase.getSupportedIdTypesValueFromActuator().contains("vid")) { casesListVID = esignetBioAuth.getYmlTestData(fileName); - } - - else { + } else { casesListUIN = esignetBioAuth.getYmlTestData(fileName); casesListVID = esignetBioAuth.getYmlTestData(fileName); } - if (bioResponse != null && !bioResponse.isEmpty() && modalityKeyTogetBioValue != null) { String bioValue = JsonPrecondtion.getValueFromJson(bioResponse, modalityKeyTogetBioValue); - if (bioValue == null || bioValue.length() < 100) - {this.hasError=true;throw new RigInternalError( + if (bioValue == null || bioValue.length() < 100) { + this.hasError = true; + throw new RigInternalError( "Not able to get the bio value for field " + modalityToLog + " from persona"); - - }if (idType.contains("UIN") || idType.contains("uin")) { + + } + if (idType.contains("UIN") || idType.contains("uin")) { casesListUIN = esignetBioAuth.getYmlTestData(fileName); } @@ -206,12 +208,13 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") for (Object object : casesList) { TestCaseDTO test = (TestCaseDTO) object; - String input = test.getInput(); - - input = JsonPrecondtion.parseAndReturnJsonContent(input, step.getScenario().getOidcClientProp().getProperty("urlEncodedResp1"), "encodedHash"); - + String input = test.getInput(); + + input = JsonPrecondtion.parseAndReturnJsonContent(input, + step.getScenario().getOidcClientProp().getProperty("urlEncodedResp1"), "encodedHash"); + packetUtility.esignetBioAuth(modalityToLog, bioValue, uin, transactionId1, deviceProp, test, - esignetBioAuth,input,step); + esignetBioAuth, input, step); } } @@ -222,10 +225,10 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") String personFilePathvalue = null; if (step.getScenario().getVidPersonaProp().containsKey(vid)) personFilePathvalue = step.getScenario().getVidPersonaProp().getProperty(vid); - else - { - this.hasError=true;throw new RigInternalError("Persona doesn't exist for the given UIN " + vid); - } + else { + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given UIN " + vid); + } String bioType = null, bioSubType = null; List modalityList = new ArrayList<>(); @@ -252,13 +255,14 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") modalityKeyTogetBioValue = bioSubType; break; default: - this.hasError=true;throw new RigInternalError("Given BIO Type in device property file is not valid"); + this.hasError = true; + throw new RigInternalError("Given BIO Type in device property file is not valid"); } } - bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList,step); + bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList, step); - //System.out.println("bioMetricValue= " + bioResponse); + // System.out.println("bioMetricValue= " + bioResponse); String fileName = AuthenticateUser; esignetBioAuth.isInternal = false; @@ -284,10 +288,12 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") if (bioResponse != null && !bioResponse.isEmpty() && modalityKeyTogetBioValue != null) { String bioValue = JsonPrecondtion.getValueFromJson(bioResponse, modalityKeyTogetBioValue); - if (bioValue == null || bioValue.length() < 100) - {this.hasError=true;throw new RigInternalError( + if (bioValue == null || bioValue.length() < 100) { + this.hasError = true; + throw new RigInternalError( "Not able to get the bio value for field " + modalityToLog + " from persona"); - }if (idType.contains("VID") || idType.contains("vid")) { + } + if (idType.contains("VID") || idType.contains("vid")) { casesListVID = esignetBioAuth.getYmlTestData(fileName); } @@ -296,9 +302,10 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") for (Object object : casesList) { TestCaseDTO test = (TestCaseDTO) object; String input = test.getInput(); - input = JsonPrecondtion.parseAndReturnJsonContent(input, step.getScenario().getOidcClientProp().getProperty("urlEncodedResp2"), "encodedHash"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, + step.getScenario().getOidcClientProp().getProperty("urlEncodedResp2"), "encodedHash"); packetUtility.esignetBioAuth(modalityToLog, bioValue, vid, transactionId2, deviceProp, test, - esignetBioAuth, input,step); + esignetBioAuth, input, step); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookAppointment.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookAppointment.java index 89b889904..6e02d687f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookAppointment.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookAppointment.java @@ -2,16 +2,20 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class BookAppointment extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(BookAppointment.class); boolean bookOnHolidays = Boolean.FALSE; - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -24,27 +28,30 @@ public void run() throws RigInternalError { Boolean isForChildPacket = false; if (!step.getParameters().isEmpty() && step.getParameters().size() == 1) { bookOnHolidays = Boolean.parseBoolean(step.getParameters().get(0)); - + for (String resDataPath : step.getScenario().getResidentPathsPrid().keySet()) { - packetUtility.bookAppointment(step.getScenario().getResidentPathsPrid().get(resDataPath), 1, step.getScenario().getCurrentStep(), bookOnHolidays,step); + packetUtility.bookAppointment(step.getScenario().getResidentPathsPrid().get(resDataPath), 1, + step.getScenario().getCurrentStep(), bookOnHolidays, step); } - }else if(!step.getParameters().isEmpty() && step.getParameters().size() >= 2) { //"$$var=e2e_bookAppointment(false,$$prid)" + } else if (!step.getParameters().isEmpty() && step.getParameters().size() >= 2) { // "$$var=e2e_bookAppointment(false,$$prid)" bookOnHolidays = Boolean.parseBoolean(step.getParameters().get(0)); String prid = step.getParameters().get(1); - int slotNumber= Integer.parseInt(step.getParameters().get(2)); + int slotNumber = Integer.parseInt(step.getParameters().get(2)); if (prid.startsWith("$$")) { prid = step.getScenario().getVariables().get(prid); - packetUtility.bookAppointment(prid, slotNumber, step.getScenario().getCurrentStep(), bookOnHolidays,step); + packetUtility.bookAppointment(prid, slotNumber, step.getScenario().getCurrentStep(), bookOnHolidays, + step); } - } - else if (!step.getParameters().isEmpty() && step.getParameters().size() == 2) { // used for child packet processing + } else if (!step.getParameters().isEmpty() && step.getParameters().size() == 2) { // used for child packet + // processing bookOnHolidays = Boolean.parseBoolean(step.getParameters().get(0)); isForChildPacket = Boolean.parseBoolean(step.getParameters().get(1)); - int slotNumber= Integer.parseInt(step.getParameters().get(2)); + int slotNumber = Integer.parseInt(step.getParameters().get(2)); if (isForChildPacket && step.getScenario().getPrid_updateResident() != null) - packetUtility.bookAppointment(step.getScenario().getPrid_updateResident(), slotNumber, step.getScenario().getCurrentStep(), bookOnHolidays,step); + packetUtility.bookAppointment(step.getScenario().getPrid_updateResident(), slotNumber, + step.getScenario().getCurrentStep(), bookOnHolidays, step); } else { - this.hasError=true; + this.hasError = true; throw new RigInternalError("Input parmeter is missiing [true/false]"); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookSpecificSlotForPrid.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookSpecificSlotForPrid.java index 8d4859029..f125ccf8c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookSpecificSlotForPrid.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BookSpecificSlotForPrid.java @@ -6,6 +6,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -14,14 +16,15 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class BookSpecificSlotForPrid extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(BookSpecificSlotForPrid.class); - String appointment_date =""; - //String pre_registration_id =""; - String registration_center_id =""; - String time_slot_from =""; - String time_slot_to =""; - + String appointment_date = ""; + String registration_center_id = ""; + String time_slot_from = ""; + String time_slot_to = ""; + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -31,15 +34,14 @@ public class BookSpecificSlotForPrid extends BaseTestCaseUtil implements StepInt @Override public void run() throws RigInternalError { - if (step.getParameters() == null || step.getParameters().isEmpty() ||step.getParameters().size()<3) { + if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 3) { logger.error("Parameter is missing from DSL step"); - assertTrue(false,"Paramter is missing in step: "+step.getName()); + assertTrue(false, "Paramter is missing in step: " + step.getName()); } else { - appointment_date =step.getParameters().get(0); - //pre_registration_id =step.getParameters().get(1); - registration_center_id =step.getParameters().get(1); - time_slot_from =step.getParameters().get(2); - time_slot_to =step.getParameters().get(3); + appointment_date = step.getParameters().get(0); + registration_center_id = step.getParameters().get(1); + time_slot_from = step.getParameters().get(2); + time_slot_to = step.getParameters().get(3); } for (String resDataPath : step.getScenario().getResidentPathsPrid().keySet()) { String prid = step.getScenario().getResidentPathsPrid().get(resDataPath); @@ -47,25 +49,27 @@ public void run() throws RigInternalError { bookSlotForPrid(prid); } else { - this.hasError=true; throw new RigInternalError("PRID cannot be null or empty"); - }} + this.hasError = true; + throw new RigInternalError("PRID cannot be null or empty"); + } + } } - + private void bookSlotForPrid(String prid) throws RigInternalError { - String url = baseUrl + props.getProperty("bookSpecificSlotForPrid")+prid; + String url = baseUrl + props.getProperty("bookSpecificSlotForPrid") + prid; JSONObject jsonReq = new JSONObject(); jsonReq.put(E2EConstants.APPOINTMENT_DATE, appointment_date); jsonReq.put(E2EConstants.PRE_REGISTRATION_ID, prid); jsonReq.put(E2EConstants.REGISTRATION_CENTER_ID, registration_center_id); jsonReq.put(E2EConstants.TIME_SLOT_FROM, time_slot_from); jsonReq.put(E2EConstants.TIME_SLOT_TO, time_slot_to); - Response response =postRequestWithQueryParamAndBody(url,jsonReq.toString(),step.getScenario().getCurrentStep(),"BookSlotForPrid",step); - if (!response.getBody().asString().toLowerCase() - .contains("appointment booked successfully")) - { + Response response = postRequestWithQueryParamAndBody(url, jsonReq.toString(), + step.getScenario().getCurrentStep(), "BookSlotForPrid", step); + if (!response.getBody().asString().toLowerCase().contains("appointment booked successfully")) { - this.hasError=true;throw new RigInternalError("Unable to Book Appointment for Prid :"+prid); - } + this.hasError = true; + throw new RigInternalError("Unable to Book Appointment for Prid :" + prid); + } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BulkUploadPacket.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BulkUploadPacket.java index c97c9c57f..ab2f510bf 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BulkUploadPacket.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/BulkUploadPacket.java @@ -6,6 +6,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONArray; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -14,9 +16,11 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; import io.restassured.response.Response; +@Scope("prototype") +@Component public class BulkUploadPacket extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(BulkUploadPacket.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -34,19 +38,22 @@ public void run() throws RigInternalError { for (String id : personaIdValue.stringPropertyNames()) { String value = personaIdValue.get(id).toString(); if (step.getScenario().getResidentPersonaIdPro().get(value) == null) { - logger.error("Persona id : [" + value + "] is not present is the system");this.hasError=true; + logger.error("Persona id : [" + value + "] is not present is the system"); + this.hasError = true; throw new RigInternalError("Persona id : [" + value + "] is not present is the system"); } String personaPath = step.getScenario().getResidentPersonaIdPro().get(value).toString(); String templatePath = step.getScenario().getResidentTemplatePaths().get(personaPath); - if (StringUtils.isBlank(templatePath)) - {this.hasError=true;throw new RigInternalError( - "Template path is not present in the system for persona id : [" + value + "]");} - String packetPath = step.getScenario().getTemplatePacketPath().get(templatePath); + if (StringUtils.isBlank(templatePath)) { + this.hasError = true; + throw new RigInternalError( + "Template path is not present in the system for persona id : [" + value + "]"); + } + String packetPath = step.getScenario().getTemplatePacketPath().get(templatePath); if (packetPath != null && !packetPath.isEmpty()) packetPathArray.put(packetPath); } - }else if(!step.getParameters().isEmpty() && step.getParameters().size()>1) { // "e2e_bulkUploadPacket($$zipPacketPath,$$zipPacketPath2)" + } else if (!step.getParameters().isEmpty() && step.getParameters().size() > 1) { // "e2e_bulkUploadPacket($$zipPacketPath,$$zipPacketPath2)" String _zipPacketPath = null; for (int i = 0; i < step.getParameters().size(); i++) { _zipPacketPath = step.getParameters().get(i); @@ -61,10 +68,12 @@ public void run() throws RigInternalError { packetPathArray.put(packetPath); } String url = baseUrl + props.getProperty("bulkupload"); - Response response = packetUtility.postRequestWithQueryParamAndBody(url, packetPathArray.toString(),step.getScenario().getCurrentStep(),"BulkUpload",step); - if (!response.getBody().asString().toLowerCase().contains("success")) - { - this.hasError=true;throw new RigInternalError("Unable to perform bulkupload from packet utility"); - }} + Response response = packetUtility.postRequestWithQueryParamAndBody(url, packetPathArray.toString(), + step.getScenario().getCurrentStep(), "BulkUpload", step); + if (!response.getBody().asString().toLowerCase().contains("success")) { + this.hasError = true; + throw new RigInternalError("Unable to perform bulkupload from packet utility"); + } + } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelAppointment.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelAppointment.java index 3fc5db125..f489be4a9 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelAppointment.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelAppointment.java @@ -4,6 +4,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -11,58 +13,59 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class CancelAppointment extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(CheckStatus.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); else logger.setLevel(Level.ERROR); } - + @Override public void run() throws RigInternalError { - String cancelStatus =null; + String cancelStatus = null; if (step.getParameters() == null || step.getParameters().isEmpty()) { logger.error("Parameter is missing from DSL step"); - assertTrue(false,"Paramter is missing in step: "+step.getName()); + assertTrue(false, "Paramter is missing in step: " + step.getName()); } else { - cancelStatus =step.getParameters().get(0); + cancelStatus = step.getParameters().get(0); String prid1 = step.getParameters().get(1); if (prid1.startsWith("$$")) { prid1 = step.getScenario().getVariables().get(prid1); + } + if (prid1 != null) + cancelAppointment(prid1, cancelStatus); + else { + this.hasError = true; + throw new RigInternalError("PRID cannot be null or empty"); + } } - if(prid1!=null) - cancelAppointment(prid1,cancelStatus); - else - { - this.hasError=true;throw new RigInternalError("PRID cannot be null or empty"); - }} } - private void cancelAppointment(String prid,String cancelStatus) throws RigInternalError { - String message=null; - switch(cancelStatus.toLowerCase()) { + private void cancelAppointment(String prid, String cancelStatus) throws RigInternalError { + String message = null; + switch (cancelStatus.toLowerCase()) { case "cancel": - message="appointment for the selected application has been successfully cancelled"; + message = "appointment for the selected application has been successfully cancelled"; break; case "nonexisting": - message="no data found for the requested pre-registration id"; + message = "no data found for the requested pre-registration id"; break; default: logger.error("Parameter not supported"); } - //String url = BaseTestCase.ApplnURI + props.getProperty("cancelAppointment") + prid; - String url = baseUrl+ props.getProperty("cancelAppointment") + prid; - - - Response response = putRequest(url, "CancelAppointment",step); - if (!response.getBody().asString().toLowerCase() - .contains(message)) - { - this.hasError=true;throw new RigInternalError("Unable to CancelAppointment"); - }} + String url = baseUrl + props.getProperty("cancelAppointment") + prid; + + Response response = putRequest(url, "CancelAppointment", step); + if (!response.getBody().asString().toLowerCase().contains(message)) { + this.hasError = true; + throw new RigInternalError("Unable to CancelAppointment"); + } + } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelBooking.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelBooking.java index dc2a67712..e67d6b2d3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelBooking.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CancelBooking.java @@ -9,6 +9,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -18,9 +20,11 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class CancelBooking extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(CancelBooking.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -30,70 +34,72 @@ public class CancelBooking extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError { - String bookingStatus =null; + String bookingStatus = null; if (step.getParameters() == null || step.getParameters().isEmpty()) { logger.error("Parameter is missing from DSL step"); - assertTrue(false,"Paramter is missing in step: "+step.getName()); + assertTrue(false, "Paramter is missing in step: " + step.getName()); } else { - bookingStatus =step.getParameters().get(0); + bookingStatus = step.getParameters().get(0); } for (String resDataPath : step.getScenario().getResidentPathsPrid().keySet()) { String prid = step.getScenario().getResidentPathsPrid().get(resDataPath); if (!StringUtils.isEmpty(prid)) { Map retrieveBookingByPrid = retrieveBookingByPrid(prid); - if(!retrieveBookingByPrid.isEmpty() && bookingStatus!=null) - cancelBookingByPrid(retrieveBookingByPrid,prid,bookingStatus); - } else - { - this.hasError=true;throw new RigInternalError("PRID cannot be null or empty"); - }} + if (!retrieveBookingByPrid.isEmpty() && bookingStatus != null) + cancelBookingByPrid(retrieveBookingByPrid, prid, bookingStatus); + } else { + this.hasError = true; + throw new RigInternalError("PRID cannot be null or empty"); + } + } } - private void cancelBookingByPrid(Map retrieveBookingByPrid,String prid,String bookingStatus) throws RigInternalError { - String message=null; - switch(bookingStatus.toLowerCase()) { + private void cancelBookingByPrid(Map retrieveBookingByPrid, String prid, String bookingStatus) + throws RigInternalError { + String message = null; + switch (bookingStatus.toLowerCase()) { case "cancel": - message="appointment for the selected application has been successfully cancelled"; + message = "appointment for the selected application has been successfully cancelled"; break; case "bookingNotFound": - message="booking data not found"; + message = "booking data not found"; break; default: - logger.error("["+bookingStatus+"]"+" Parameter not supported"); + logger.error("[" + bookingStatus + "]" + " Parameter not supported"); } - String url = baseUrl + props.getProperty("cancelBookingByPrid")+prid; + String url = baseUrl + props.getProperty("cancelBookingByPrid") + prid; JSONObject jsonReq = new JSONObject(); jsonReq.put(E2EConstants.APPOINTMENT_DATE, retrieveBookingByPrid.get("appointment_date")); jsonReq.put(E2EConstants.PRE_REGISTRATION_ID, retrieveBookingByPrid.get("pre_registration_id")); jsonReq.put(E2EConstants.REGISTRATION_CENTER_ID, retrieveBookingByPrid.get("registration_center_id")); jsonReq.put(E2EConstants.TIME_SLOT_FROM, retrieveBookingByPrid.get("time_slot_from")); jsonReq.put(E2EConstants.TIME_SLOT_TO, retrieveBookingByPrid.get("time_slot_to")); - Response response =postRequestWithQueryParamAndBody(url,jsonReq.toString(),step.getScenario().getCurrentStep(),"CancelBookingByPrid",step); - if (!response.getBody().asString().toLowerCase() - .contains(message)) - { - this.hasError=true; throw new RigInternalError("Unable to CancelAppointment"); - }} + Response response = postRequestWithQueryParamAndBody(url, jsonReq.toString(), + step.getScenario().getCurrentStep(), "CancelBookingByPrid", step); + if (!response.getBody().asString().toLowerCase().contains(message)) { + this.hasError = true; + throw new RigInternalError("Unable to CancelAppointment"); + } + } private Map retrieveBookingByPrid(String prid) throws RigInternalError { - Map bookingMetadata=new HashMap(); + Map bookingMetadata = new HashMap(); step.getScenario().getCurrentStep().put("preregId", prid); String url = baseUrl + props.getProperty("retrieveBookingbyPrid"); - Response response = getRequestWithQueryParam(url,step.getScenario().getCurrentStep(),"RetrieveBookingByPrid",step); - if(response.getBody().asString().equalsIgnoreCase("{}")) { - logger.info("booking data not found for prid : "+prid); + Response response = getRequestWithQueryParam(url, step.getScenario().getCurrentStep(), "RetrieveBookingByPrid", + step); + if (response.getBody().asString().equalsIgnoreCase("{}")) { + logger.info("booking data not found for prid : " + prid); return bookingMetadata; + } else if (!response.getBody().asString().contains(prid)) { + this.hasError = true; + throw new RigInternalError("Unable to RetrieveBooking for Prid: " + prid); } - else if (!response.getBody().asString().contains(prid)) - { - this.hasError=true;throw new RigInternalError("Unable to RetrieveBooking for Prid: " + prid); - } JSONObject jsonResp = new JSONObject(response.getBody().asString()); - bookingMetadata=getBookingDetail(jsonResp); + bookingMetadata = getBookingDetail(jsonResp); return bookingMetadata; } - - + private Map getBookingDetail(JSONObject jsonResponse) { String response = jsonResponse.toString(); Map bookingMetadata = new HashMap<>(); @@ -104,8 +110,7 @@ private Map getBookingDetail(JSONObject jsonResponse) { JsonPrecondtion.getValueFromJson(response, "bookingMetadata.registration_center_id")); bookingMetadata.put("appointment_date", JsonPrecondtion.getValueFromJson(response, "bookingMetadata.appointment_date")); - bookingMetadata.put("pre_registration_id", - JsonPrecondtion.getValueFromJson(response, "preRegistrationId")); + bookingMetadata.put("pre_registration_id", JsonPrecondtion.getValueFromJson(response, "preRegistrationId")); return bookingMetadata; } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Center.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Center.java index 6a9ef311a..cc8c3313c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Center.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Center.java @@ -4,6 +4,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.BaseTestCase; @@ -17,94 +19,91 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.CenterHelper; import io.mosip.testrig.dslrig.ivv.orchestrator.UserHelper; +@Scope("prototype") +@Component public class Center extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(Center.class); - UserHelper userHelper=new UserHelper(); - SimplePost simplepost=new SimplePost() ; - PatchWithPathParam patchwithpathparam=new PatchWithPathParam(); - SimplePut simpleput=new SimplePut(); - PutWithPathParam putwithpathparam=new PutWithPathParam(); - CenterHelper centerHelper=new CenterHelper(); - + UserHelper userHelper = new UserHelper(); + SimplePost simplepost = new SimplePost(); + PatchWithPathParam patchwithpathparam = new PatchWithPathParam(); + SimplePut simpleput = new SimplePut(); + PutWithPathParam putwithpathparam = new PutWithPathParam(); + CenterHelper centerHelper = new CenterHelper(); + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); else logger.setLevel(Level.ERROR); } - - //GetWithParam + @Override public void run() throws RigInternalError { String id = null; - int centerCount=0; - Boolean activeFlag=false; + int centerCount = 0; + Boolean activeFlag = false; String calltype = null; - HashMap map=new HashMap(); - + HashMap map = new HashMap(); + if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Method Type[POST/GET/PUT/PATCH] parameter is missing from DSL step"); { - this.hasError=true; - throw new RigInternalError("Method Type[POST/GET/PUT/PATCH] parameter is missing from DSL step: " + step.getName()); + this.hasError = true; + throw new RigInternalError( + "Method Type[POST/GET/PUT/PATCH] parameter is missing from DSL step: " + step.getName()); } } else { - calltype = step.getParameters().get(0); + calltype = step.getParameters().get(0); } - if(step.getParameters().size() >= 2) { - id = step.getParameters().get(1); - if (id.startsWith("$$")) { - map = step.getScenario().getVariables(); - }} + if (step.getParameters().size() >= 2) { + id = step.getParameters().get(1); + if (id.startsWith("$$")) { + map = step.getScenario().getVariables(); + } + } - if(step.getParameters().size() >= 3) { + if (step.getParameters().size() >= 3) { centerCount = Integer.parseInt(step.getParameters().get(2)); - } - - if(step.getParameters().size() >= 4) { + } + + if (step.getParameters().size() >= 4) { String activecheck = step.getParameters().get(3); - if (activecheck.contains("t") || activecheck.contains("T")) - activeFlag=true; + if (activecheck.contains("t") || activecheck.contains("T")) + activeFlag = true; } switch (calltype) { case "CREATE": - String holidayLocationCode=centerHelper.getLocationCodeHoliday(); - String thirdlevelpostalcode=centerHelper.getThirdlevelpostalcodekey();//implement - String postalCode=centerHelper.getPostalCode(thirdlevelpostalcode); - //String zone=userHelper.getZoneOfUser(map.get("user")); - String zone=userHelper.getLeafZones(); - String centerId=centerHelper.centerCreate(zone,holidayLocationCode,postalCode); - //centerHelper.centerUpdate(centerId,zone); - centerHelper.centerStatusUpdate(centerId,activeFlag); - map.put("centerId"+centerCount, centerId); - + String holidayLocationCode = centerHelper.getLocationCodeHoliday(); + String thirdlevelpostalcode = centerHelper.getThirdlevelpostalcodekey();// implement + String postalCode = centerHelper.getPostalCode(thirdlevelpostalcode); + String zone = userHelper.getLeafZones(); + String centerId = centerHelper.centerCreate(zone, holidayLocationCode, postalCode); + centerHelper.centerStatusUpdate(centerId, activeFlag); + map.put("centerId" + centerCount, centerId); map.put("zoneCode", zone); map.put("langCode", BaseTestCase.languageCode); if (step.getOutVarName() != null) step.getScenario().getVariables().putAll(map); break; case "ACTIVE_FLAG": - centerHelper.centerStatusUpdate(map.get("centerId"+centerCount),activeFlag); + centerHelper.centerStatusUpdate(map.get("centerId" + centerCount), activeFlag); break; case "UPDATE_NONLANG": break; case "UPDATE_LANG": - + break; case "DCOM": - centerHelper.centerDcom(map.get("centerId"+centerCount)); + centerHelper.centerDcom(map.get("centerId" + centerCount)); break; - + default: break; } } - } - - diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckCredentialStatus.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckCredentialStatus.java index 4f9060b4b..9aa7af752 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckCredentialStatus.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckCredentialStatus.java @@ -2,6 +2,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.utils.AdminTestException; @@ -13,6 +15,8 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class CheckCredentialStatus extends BaseTestCaseUtil implements StepInterface { private static final String check_status_YML = "preReg/credentialStatus/credentialStatus.yml"; public static Logger logger = Logger.getLogger(CheckCredentialStatus.class); @@ -27,12 +31,10 @@ public class CheckCredentialStatus extends BaseTestCaseUtil implements StepInter @SuppressWarnings("static-access") @Override public void run() throws RigInternalError { - if (!step.getParameters().isEmpty() && step.getParameters().size() == 1) { // "$$var=e2e_credentialRequest($$requestId)" + if (!step.getParameters().isEmpty() && step.getParameters().size() == 1) { String _requestId = step.getParameters().get(0); if (_requestId.startsWith("$$")) { _requestId = step.getScenario().getVariables().get(_requestId); - // if ( step.getScenario().getUinReqIds() == null) - // neeha step.getScenario().getUinReqIds() = new HashMap<>(); step.getScenario().getUinReqIds().clear(); step.getScenario().getUinReqIds().put("requestId", _requestId); } @@ -56,7 +58,6 @@ public void run() throws RigInternalError { Thread.sleep(Long.parseLong(props.getProperty("waitTime"))); TestCaseDTO test = (TestCaseDTO) object; test.setInput(test.getInput().replace("$requestId$", requestid)); -// test.setOutput(test.getOutput().replace("$requestId$", requestid)); Reporter.log("" + test.getTestCaseName() + ""); long startTime = System.currentTimeMillis(); @@ -74,8 +75,6 @@ public void run() throws RigInternalError { logger.error("Failed at checking Credential status with error: " + e.getMessage()); } } - // assertTrue(getWithPathParam.response.asString().contains("printing"), "Failed - // at credential issuance status check Response validation"); if (!getWithPathParam.response.getBody().asString().toLowerCase().contains("printed") && !getWithPathParam.response.getBody().asString().toLowerCase().contains("printing")) { this.hasError = true; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBAbsence.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBAbsence.java index a9bad72e8..d0bd3b5e6 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBAbsence.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBAbsence.java @@ -12,7 +12,8 @@ import org.json.JSONArray; import org.json.JSONObject; - +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.apache.log4j.Level; import org.apache.log4j.Logger; import io.mosip.testrig.apirig.dto.TestCaseDTO; @@ -24,6 +25,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class CheckForBDBAbsence extends BaseTestCaseUtil implements StepInterface { private static final Logger logger = Logger.getLogger(CheckForBDBAbsence.class); private static final String CheckForBDB = "idaData/RetrieveBioDocumentByID/RetrieveBioDocumentByID.yml"; @@ -61,27 +64,22 @@ public void run() throws RigInternalError { try { checkForBDB.test(test); - Response response = checkForBDB.response; - JSONObject responseJson = new JSONObject(response.asString()); - JSONObject responseData = responseJson.getJSONObject("response"); - JSONArray responseArray = responseData.getJSONArray("documents"); - - String bioData = responseArray.getJSONObject(0).getString("value"); - -// String cleanedString = cleanBase64String(bioData); - - Base64.Decoder decoder = Base64.getUrlDecoder(); - - // Decode the base64 encoded string. - byte[] decodedBytes = decoder.decode(bioData); + Response response = checkForBDB.response; + JSONObject responseJson = new JSONObject(response.asString()); + JSONObject responseData = responseJson.getJSONObject("response"); + JSONArray responseArray = responseData.getJSONArray("documents"); - // Convert the decoded bytes to a string. - decodedString = new String(decodedBytes); + String bioData = responseArray.getJSONObject(0).getString("value"); + Base64.Decoder decoder = Base64.getUrlDecoder(); - logger.info(decodedString); + // Decode the base64 encoded string. + byte[] decodedBytes = decoder.decode(bioData); - BIR bir = null; - Map finalMap = new HashMap<>(); + // Convert the decoded bytes to a string. + decodedString = new String(decodedBytes); + logger.info(decodedString); + BIR bir = null; + Map finalMap = new HashMap<>(); bir = CbeffValidator.getBIRFromXML(decodedBytes); boolean isXmlValid = CbeffValidator.validateXML(bir); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBPresence.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBPresence.java index 5155439b8..9d9acb145 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBPresence.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckForBDBPresence.java @@ -12,7 +12,8 @@ import org.json.JSONArray; import org.json.JSONObject; - +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.apache.log4j.Level; import org.apache.log4j.Logger; import io.mosip.testrig.apirig.dto.TestCaseDTO; @@ -24,6 +25,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class CheckForBDBPresence extends BaseTestCaseUtil implements StepInterface { private static final Logger logger = Logger.getLogger(CheckForBDBPresence.class); private static final String CheckForBDB = "idaData/RetrieveBioDocumentByID/RetrieveBioDocumentByID.yml"; @@ -46,7 +49,7 @@ public void run() throws RigInternalError { Object[] testObj = checkForBDB.getYmlTestData(CheckForBDB); TestCaseDTO test = (TestCaseDTO) testObj[0]; String[] modalityArray = null; - boolean isExceptionFlag =false; + boolean isExceptionFlag = false; if (step.getParameters().size() == 3) { uins = step.getParameters().get(0); if (uins.startsWith("$$")) { @@ -62,25 +65,25 @@ public void run() throws RigInternalError { try { checkForBDB.test(test); - Response response = checkForBDB.response; - JSONObject responseJson = new JSONObject(response.asString()); - JSONObject responseData = responseJson.getJSONObject("response"); - JSONArray responseArray = responseData.getJSONArray("documents"); + Response response = checkForBDB.response; + JSONObject responseJson = new JSONObject(response.asString()); + JSONObject responseData = responseJson.getJSONObject("response"); + JSONArray responseArray = responseData.getJSONArray("documents"); - String bioData = responseArray.getJSONObject(0).getString("value"); - Base64.Decoder decoder = Base64.getUrlDecoder(); + String bioData = responseArray.getJSONObject(0).getString("value"); + Base64.Decoder decoder = Base64.getUrlDecoder(); - // Decode the base64 encoded string. - byte[] decodedBytes = decoder.decode(bioData); + // Decode the base64 encoded string. + byte[] decodedBytes = decoder.decode(bioData); - // Convert the decoded bytes to a string. - decodedString = new String(decodedBytes); + // Convert the decoded bytes to a string. + decodedString = new String(decodedBytes); - logger.info(decodedString); + logger.info(decodedString); - BIR bir = null; - Map finalMap = new HashMap<>(); - int modalitySize =0; + BIR bir = null; + Map finalMap = new HashMap<>(); + int modalitySize = 0; bir = CbeffValidator.getBIRFromXML(decodedBytes); @@ -104,12 +107,11 @@ else if (key.contains("EXCEPTION") && !finalMap.get(key).contains("Exception")) foundBDBInCbeff.add(key); } modalitySize = modalityArray.length; - - if(isExceptionFlag) - modalitySize = modalitySize+1; - - if ( foundBDBInCbeff.size() != modalitySize) { + if (isExceptionFlag) + modalitySize = modalitySize + 1; + + if (foundBDBInCbeff.size() != modalitySize) { this.hasError = true; throw new RigInternalError( "Modalities present in modalityArray and foundBDBInCbeff are not matching"); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckMultipleRidStatus.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckMultipleRidStatus.java index a0e7cfb3d..02d0edf1e 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckMultipleRidStatus.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckMultipleRidStatus.java @@ -10,6 +10,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; @@ -23,12 +25,14 @@ import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class CheckMultipleRidStatus extends BaseTestCaseUtil implements StepInterface { private static final String check_status_YML = "preReg/checkStatus/checkstatus.yml"; public static Logger logger = Logger.getLogger(CheckMultipleRidStatus.class); public HashMap tempPridAndRid = null; public HashMap ridStatusMap = new LinkedHashMap<>(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -37,37 +41,37 @@ public class CheckMultipleRidStatus extends BaseTestCaseUtil implements StepInte } @Override - public void run() throws RigInternalError { - String status_param =null; + public void run() throws RigInternalError { + String status_param = null; if (step.getParameters() == null || step.getParameters().isEmpty()) { logger.error("Parameter is missing from DSL step"); - assertTrue(false,"StatusCode paramter is missing in step: "+step.getName()); + assertTrue(false, "StatusCode paramter is missing in step: " + step.getName()); } else { - status_param =step.getParameters().get(0); + status_param = step.getParameters().get(0); } checkStatus(status_param); } - + public void checkStatus(String status_param) throws RigInternalError { - String status_Message=null; - switch(status_param.toLowerCase()) { + String status_Message = null; + switch (status_param.toLowerCase()) { case E2EConstants.PROCESSED: - status_Message=status_param; + status_Message = status_param; break; case E2EConstants.REJECTED: - status_Message=E2EConstants.REJECTED_MSG; + status_Message = E2EConstants.REJECTED_MSG; break; case E2EConstants.FAILED: - status_Message=E2EConstants.FAILED_MSG; + status_Message = E2EConstants.FAILED_MSG; break; default: - this.hasError=true; + this.hasError = true; throw new RigInternalError("Parameter not supported only allowed are [processed/rejected/failed]"); } - if(tempPridAndRid ==null) - tempPridAndRid =step.getScenario().getPridsAndRids() ; - - try { + if (tempPridAndRid == null) + tempPridAndRid = step.getScenario().getPridsAndRids(); + + try { for (String rid : this.tempPridAndRid.values()) { boolean packetProcessed = false; SimplePost postScript = new SimplePost(); @@ -88,48 +92,49 @@ public void checkStatus(String status_param) throws RigInternalError { Reporter.log("" + test.getTestCaseName() + ""); long startTime = System.currentTimeMillis(); logger.info(this.getClass().getSimpleName() + " starts at..." + startTime + " MilliSec"); - logger.info(this.getClass().getSimpleName()+" Rid :"+rid); + logger.info(this.getClass().getSimpleName() + " Rid :" + rid); postScript.test(test); - ridStatusMap.put(rid, JsonPrecondtion.getValueFromJson(postScript.response.getBody().asString(), "response.ridStatus")); + ridStatusMap.put(rid, JsonPrecondtion.getValueFromJson(postScript.response.getBody().asString(), + "response.ridStatus")); long stopTime = System.currentTimeMillis(); long elapsedTime = stopTime - startTime; - logger.info("Time taken to execute "+ this.getClass().getSimpleName()+": " +elapsedTime +" MilliSec"); + logger.info("Time taken to execute " + this.getClass().getSimpleName() + ": " + elapsedTime + + " MilliSec"); packetProcessed = true; - if(tempPridAndRid.size() > 1) - status_Message="processed"; - } catch (AuthenticationTestException | AdminTestException e) { - logger.error("Failed at checking Packet status with error: " + e.getMessage()); - status=postScript.response.getBody().asString().toLowerCase(); - ridStatusMap.put(rid, JsonPrecondtion.getValueFromJson(postScript.response.getBody().asString(), "response.ridStatus")); - if(tempPridAndRid.size()==1) { - if(!ridStatusMap.containsValue(E2EConstants.UNDER_PROCESSING_MSG)) - { + if (tempPridAndRid.size() > 1) + status_Message = "processed"; + } catch (AuthenticationTestException | AdminTestException e) { + logger.error("Failed at checking Packet status with error: " + e.getMessage()); + status = postScript.response.getBody().asString().toLowerCase(); + ridStatusMap.put(rid, JsonPrecondtion.getValueFromJson(postScript.response.getBody().asString(), + "response.ridStatus")); + if (tempPridAndRid.size() == 1) { + if (!ridStatusMap.containsValue(E2EConstants.UNDER_PROCESSING_MSG)) { - this.hasError=true;throw new RigInternalError(ridStatusMap.get(rid)); - } + this.hasError = true; + throw new RigInternalError(ridStatusMap.get(rid)); } } } - } + } + } } catch (InterruptedException e) { logger.error("Failed due to thread sleep: " + e.getMessage()); Thread.currentThread().interrupt(); } - List valuesList =ridStatusMap.values().stream().collect(Collectors.toList()); - if(tempPridAndRid != null) { + List valuesList = ridStatusMap.values().stream().collect(Collectors.toList()); + if (tempPridAndRid != null) { if (tempPridAndRid.size() > 1) { if (valuesList.size() != new HashSet(ridStatusMap.values()).size()) assertTrue(false, "Testcase is failed"); else assertTrue(true, "Testcase is passed"); - }else if( tempPridAndRid.size()==1 && !valuesList.contains(status_Message.toUpperCase())) + } else if (tempPridAndRid.size() == 1 && !valuesList.contains(status_Message.toUpperCase())) assertTrue(false, "Testcase is failed"); - } - else { + } else { logger.info("tempPridAndRid is Null"); } - - + } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckPridStatus.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckPridStatus.java index edc205ae7..e22ac5f85 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckPridStatus.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckPridStatus.java @@ -8,6 +8,8 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.BaseTestCase; @@ -16,9 +18,11 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class CheckPridStatus extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(CheckStatus.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -39,10 +43,10 @@ public void run() throws RigInternalError { String prid = step.getScenario().getResidentPathsPrid().get(resDataPath); if (!StringUtils.isEmpty(prid)) checkPridStatus(prid, pridStatus); - else - { - this.hasError=true;throw new RigInternalError("PRID cannot be null or empty"); - } + else { + this.hasError = true; + throw new RigInternalError("PRID cannot be null or empty"); + } } } @@ -53,14 +57,15 @@ private void checkPridStatus(String prid, String pridStatus) throws RigInternalE status = pridStatus.toLowerCase(); } else { - this.hasError=true;throw new RigInternalError("DSL argument cannot be null or empty or not supported"); + this.hasError = true; + throw new RigInternalError("DSL argument cannot be null or empty or not supported"); } String url = BaseTestCase.ApplnURI + props.getProperty("checkPridStatus") + prid; - Response response = getRequest(url, "CheckPridStatus",step); - if (!response.getBody().asString().toLowerCase().contains(status)) - { - this.hasError=true;throw new RigInternalError("Falied to check status of prid :" + prid); - } + Response response = getRequest(url, "CheckPridStatus", step); + if (!response.getBody().asString().toLowerCase().contains(status)) { + this.hasError = true; + throw new RigInternalError("Falied to check status of prid :" + prid); + } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckRIDStage.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckRIDStage.java index 7ba11996c..13fe4004a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckRIDStage.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckRIDStage.java @@ -4,6 +4,8 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -11,6 +13,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class CheckRIDStage extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(CheckRIDStage.class); @@ -47,9 +51,6 @@ public void run() throws RigInternalError { while (counter < Integer.parseInt(props.getProperty("loopCount"))) { Response response = getRequest(baseUrl + props.getProperty("ridStatus") + ridStage, "Get Stages by rid", step); - - // Check these two keys statusCode, transactionTypeCode - res = new JSONObject(response.getBody().asString()); arr = res.getJSONObject("response").getJSONArray("packetStatusUpdateList"); for (Object myObject : arr) { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java index e17ff7a2f..d7ceca0c2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckStatus.java @@ -9,8 +9,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; -import org.testng.Reporter; - +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.dtos.Scenario; @@ -18,6 +18,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class CheckStatus extends BaseTestCaseUtil implements StepInterface { private String getRidStatusUrl = "/resident/status/"; public static Logger logger = Logger.getLogger(CheckStatus.class); @@ -45,18 +47,17 @@ public void run() throws RigInternalError { tempPridAndRid = step.getScenario().getPridsAndRids(); checkStatus(_ridStatusParam, _expectedRidProcessed, step); } else { - if (step.getParameters().size() >= 2) { // "$$var=e2e_checkStatus(processed,$$rid)" + if (step.getParameters().size() >= 2) { _ridStatusParam = step.getParameters().get(0); String _rid = step.getParameters().get(1); if (_rid.startsWith("$$")) { - _rid = step.getScenario().getVariables().get(_rid); // 11000000101010101000000000 + _rid = step.getScenario().getVariables().get(_rid); if (_rid == null) logger.info("RID is null"); if (tempPridAndRid == null) { tempPridAndRid = new HashMap<>(); - tempPridAndRid.put("rid", _rid); // 11000000101010101000000000 - if (step.getParameters().size() > 3) { // "$$var=e2e_checkStatus(processed,$$rid,$$rid2,any)" in - // case of BulkUpload + tempPridAndRid.put("rid", _rid); + if (step.getParameters().size() > 3) { String _rid2 = step.getParameters().get(2); _expectedRidProcessed = step.getParameters().get(3); if (_rid2.startsWith("$$")) { @@ -74,13 +75,6 @@ public void run() throws RigInternalError { public void checkStatus(String _ridStatusParam, String _expectedRidProcessed, Scenario.Step step) throws RigInternalError { String waitTime = props.getProperty("waitTime"); - /* - * List allowedParam = Arrays.asList("processed", "rejected", "failed", - * "reregister"); if (!(allowedParam.contains(_ridStatusParam.toLowerCase()))) { - * this.hasError = true; throw new RigInternalError("Parameter : " + - * _ridStatusParam + - * "not supported only allowed are [processed/rejected/failed/reregister]"); } - */ try { for (String rid : tempPridAndRid.values()) { int counter = 0; @@ -103,10 +97,6 @@ public void checkStatus(String _ridStatusParam, String _expectedRidProcessed, Sc ridStatus = response.asString().toLowerCase(); } ridStatusMap.put(rid, ridStatus); - /* - * if (!ridStatus.contains(_ridStatusParam.toLowerCase())) throw new - * RigInternalError("Failed at Packet Processing"); - */ } if (ridStatusMap.size() == 1) { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckTags.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckTags.java index 7cee545b4..ce16a9c32 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckTags.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CheckTags.java @@ -3,6 +3,9 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; @@ -20,6 +23,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class CheckTags extends BaseTestCaseUtil implements StepInterface { private static final Logger logger = Logger.getLogger(CheckTags.class); KernelAuthentication kernelAuthLib = new KernelAuthentication(); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClearDeviceCertCache.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClearDeviceCertCache.java index 7b804f382..768ae387a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClearDeviceCertCache.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClearDeviceCertCache.java @@ -2,12 +2,17 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class ClearDeviceCertCache extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(ClearDeviceCertCache.class); @@ -22,7 +27,7 @@ public class ClearDeviceCertCache extends BaseTestCaseUtil implements StepInterf public void run() throws RigInternalError { Response response = null; - String clearDeviceCertCache = baseUrl + props.getProperty("clearDeviceCertCache"); + String clearDeviceCertCache = baseUrl + props.getProperty("clearDeviceCertCache"); response = getRequest(clearDeviceCertCache, "Clear device cert from mock mds cache", step); if (response != null && response.getStatusCode() == 200) { String responseString = response.getBody().asString(); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClonePersonaAndUpdate.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClonePersonaAndUpdate.java index 3a22261c3..72f4b1262 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClonePersonaAndUpdate.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ClonePersonaAndUpdate.java @@ -8,6 +8,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; @@ -18,9 +20,11 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class ClonePersonaAndUpdate extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(ClonePersonaAndUpdate.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -35,7 +39,8 @@ public void run() throws RigInternalError { String originalPersonaPath = null; if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Method Type[POST/GET/PUT/PATCH] parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError( + this.hasError = true; + throw new RigInternalError( "Method Type[POST/GET/PUT/PATCH] parameter is missing from DSL step: " + step.getName()); } if (step.getParameters().size() >= 2 && step.getParameters().get(0).startsWith("$$")) { @@ -46,30 +51,29 @@ public void run() throws RigInternalError { ObjectMapper mapper = new ObjectMapper(); File source = new File(originalPersonaPath); try { - Map root = mapper.readValue(source, Map.class); + Map root = mapper.readValue(source, Map.class); logger.info(root); Map jsonNamefirstlang = (Map) root.get("name"); - + Map jsonNameseclang = (Map) root.get("name_seclang"); - logger.info("Before jsonNamefirstlang " +jsonNamefirstlang); - logger.info("Before jsonNameseclang " +jsonNameseclang); - + logger.info("Before jsonNamefirstlang " + jsonNamefirstlang); + logger.info("Before jsonNameseclang " + jsonNameseclang); - if(jsonNamefirstlang!=null) { - for (String list : arr) - jsonNamefirstlang.put(list, jsonNamefirstlang.get(list).toString().substring(0, - jsonNamefirstlang.get(list).toString().length() - 2)); + if (jsonNamefirstlang != null) { + for (String list : arr) + jsonNamefirstlang.put(list, jsonNamefirstlang.get(list).toString().substring(0, + jsonNamefirstlang.get(list).toString().length() - 2)); } - if(jsonNameseclang!=null) { - for (String list : arr) - jsonNameseclang.put(list, jsonNameseclang.get(list).toString().substring(0, - jsonNameseclang.get(list).toString().length() - 2)); + if (jsonNameseclang != null) { + for (String list : arr) + jsonNameseclang.put(list, jsonNameseclang.get(list).toString().substring(0, + jsonNameseclang.get(list).toString().length() - 2)); } - - logger.info("After jsonNamefirstlang " +jsonNamefirstlang); - logger.info("After jsonNameseclang " +jsonNameseclang); - - try (FileWriter file = new FileWriter(source,Charset.forName("utf-8"))) { + + logger.info("After jsonNamefirstlang " + jsonNamefirstlang); + logger.info("After jsonNameseclang " + jsonNameseclang); + + try (FileWriter file = new FileWriter(source, Charset.forName("utf-8"))) { String serializedJsonString = mapper.writeValueAsString(root); file.write(serializedJsonString); file.flush(); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ConfigureMockAbis.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ConfigureMockAbis.java index 1fc101509..b00626a4c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ConfigureMockAbis.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ConfigureMockAbis.java @@ -10,6 +10,8 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -17,10 +19,12 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; +@Scope("prototype") +@Component public class ConfigureMockAbis extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(ConfigureMockAbis.class); boolean isFound = false; - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -43,28 +47,24 @@ public void run() throws RigInternalError { String failureReason = null; long waitTimeFromActuator = 0; -// Long waitTime = DEFAULT_WAIT_TIME; - - // "e2e_configureMockAbis(-1,Right IndexFinger,true,Right - // IndexFinger,$$personaFilePath,$$modalityHashValue,-1,@@Duplicate)" - if (step.getParameters().size() >= 9 && step.getParameters().get(8).contains("true")) { waitTimeFromActuator = PacketUtility.getActuatorDelay(); delaysec = TIME_IN_MILLISEC * waitTimeFromActuator; } - - if (step.getParameters().size() == 4) { /// id=878787877 + if (step.getParameters().size() == 4) { personaId = step.getParameters().get(0); if (!personaId.equals("-1")) { if (step.getScenario().getResidentPersonaIdPro().get(personaId) == null) { logger.error("Persona id : [" + personaId + "] is not present is the system"); - this.hasError=true;throw new RigInternalError("Persona id : [" + personaId + "] is not present is the system"); + this.hasError = true; + throw new RigInternalError("Persona id : [" + personaId + "] is not present is the system"); } personaPath = step.getScenario().getResidentPersonaIdPro().get(personaId).toString(); if (StringUtils.isBlank(personaPath)) { - this.hasError=true; + this.hasError = true; throw new RigInternalError( - "PersonaPath is not present in the system for persona id : [" + personaId + "]");} + "PersonaPath is not present in the system for persona id : [" + personaId + "]"); + } } else { for (String personaid : step.getScenario().getResidentPersonaIdPro().stringPropertyNames()) { personaId = personaid; @@ -79,7 +79,8 @@ public void run() throws RigInternalError { personaPath = step.getScenario().getVariables().get(personaPath); isFound = true; } - } else {this.hasError=true; + } else { + this.hasError = true; throw new RigInternalError( "missing input param [personaid,List modalitySubType,duplicate,List hashModality]"); } @@ -99,7 +100,6 @@ public void run() throws RigInternalError { delaysec = Long.parseLong(step.getParameters().get(6)); } - if (step.getParameters().size() >= 7) { if (step.getParameters().get(7).contains("@@")) { @@ -113,15 +113,14 @@ public void run() throws RigInternalError { JSONArray jsonOutterReq = buildMockRequest(personaPath, duplicate, hashModality, modalitysubTypeList, personaId, delaysec, statusCode, failureReason); packetUtility.setMockabisExpectaion(jsonOutterReq, step.getScenario().getCurrentStep(), step); - // hashtable.clear(); } private JSONArray buildMockRequest(String personaPath, boolean duplicate, List hashModality, - List modalitysubTypeList, String personaId, long delaySec, String statusCode, String failureReason) { + List modalitysubTypeList, String personaId, long delaySec, String statusCode, + String failureReason) { Map modalityHashValueMap = new HashMap<>(); if (isFound) { - // $$modalityHashValue modalityHashValueMap.clear(); String _hashValue = step.getParameters().get(5); if (_hashValue.startsWith("$$")) @@ -161,11 +160,6 @@ private JSONArray buildMockRequest(String personaPath, boolean duplicate, List 0) - * hashModality.stream().forEach(hashModal -> - * refHashs.put(modalityHashValueMap.get(hashModal))); - */ if (!hashModality.isEmpty() && hashModality.size() > 0) { for (String hash : hashModality) { refHashs.put(modalityHashValueMap.get(hash)); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CorruptPacket.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CorruptPacket.java index b87bc3abd..09fd3316a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CorruptPacket.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CorruptPacket.java @@ -5,6 +5,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -12,6 +14,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class CorruptPacket extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(CorruptPacket.class); @@ -32,7 +36,7 @@ public void run() throws RigInternalError { for (String packetPath : step.getScenario().getTemplatePacketPath().values()) { corruptPacket(packetPath, offset, dataToEncdoeInBase64); } - } else if (!step.getParameters().isEmpty() && step.getParameters().size() == 3) { // "$$var=e2e_corruptPacket(1024,Hello Auto,$$zipPacketPath)" + } else if (!step.getParameters().isEmpty() && step.getParameters().size() == 3) { offset = step.getParameters().get(0); dataToEncdoeInBase64 = step.getParameters().get(1); String _zipPacketPath = step.getParameters().get(2); @@ -46,8 +50,6 @@ public void run() throws RigInternalError { } private void corruptPacket(String packetPath, String offset, String dataToEncdoeInBase64) throws RigInternalError { - //uri=baseUrl + "/ping&module="+modules; - //http://localhost:8080/writeFile?offset=1024/api-internal.qa-121_context String url = baseUrl + props.getProperty("writeFile") + offset; JSONObject jsonReq = new JSONObject(); jsonReq.put("filePath", packetPath); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CredentialRequest.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CredentialRequest.java index 2b3a5ec4a..d4554729a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CredentialRequest.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/CredentialRequest.java @@ -3,6 +3,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.utils.AdminTestException; @@ -15,11 +17,13 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; -public class CredentialRequest extends BaseTestCaseUtil implements StepInterface { +@Scope("prototype") +@Component +public class CredentialRequest extends BaseTestCaseUtil implements StepInterface { private static final String CredentialIssue_YML = "preReg/credentialIssue/credentialIssue.yml"; private static final String CredentialIssueWithoutOtp_YML = "preReg/credentialIssue/credentialIssuewithoutotp.yml"; public static Logger logger = Logger.getLogger(CredentialRequest.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -27,17 +31,15 @@ public class CredentialRequest extends BaseTestCaseUtil implements StepInterfac logger.setLevel(Level.ERROR); } - @SuppressWarnings("static-access") + @SuppressWarnings("static-access") @Override - public void run() throws RigInternalError { - String emailId =""; - if (!step.getParameters().isEmpty() && step.getParameters().size() == 2) { // "$$requestId=e2e_credentialRequest($$uin)" + public void run() throws RigInternalError { + String emailId = ""; + if (!step.getParameters().isEmpty() && step.getParameters().size() == 2) { String _uin = step.getParameters().get(0); if (_uin.startsWith("$$")) { _uin = step.getScenario().getVariables().get(_uin); - // if (step.getScenario().getUinReqIds() == null) - // neeha step.getScenario().getUinReqIds() = new HashMap<>(); step.getScenario().getUinReqIds().clear(); step.getScenario().getUinReqIds().put(_uin, "uin"); } @@ -46,96 +48,96 @@ public void run() throws RigInternalError { if (step.getParameters().size() == 2 && step.getParameters().get(1).startsWith("$$")) { emailId = step.getParameters().get(1); - if (emailId.startsWith("$$")) { // "$$requestId=e2e_credentialRequest($$uin,$$email)" + if (emailId.startsWith("$$")) { emailId = step.getScenario().getVariables().get(emailId); } } - try { + try { Thread.sleep(30000); } catch (InterruptedException e) { logger.error(e.getMessage()); Thread.currentThread().interrupt(); } - - String fileName = ""; - - if(emailId==null || emailId.isEmpty()) { - - fileName = CredentialIssueWithoutOtp_YML; - SimplePost postwithoutotp= new SimplePost(); - Object[] casesList = postwithoutotp.getYmlTestData(fileName); - Object[] testCaseList = filterTestCases(casesList); - logger.info("No. of TestCases in Yml file : " + testCaseList.length); - try { - for (Object object : testCaseList) { - for(String uin: this.step.getScenario().getUinReqIds().keySet()) { - - TestCaseDTO test = (TestCaseDTO) object; - test.setInput(test.getInput().replace("$UIN$", uin).replace("$UIN$", uin)); - test.setOutput(test.getOutput().replace("$UIN$", uin)); - Reporter.log(""+test.getTestCaseName()+ ""); - - long startTime = System.currentTimeMillis(); - logger.info(this.getClass().getSimpleName()+" starts at..."+startTime +" MilliSec"); - postwithoutotp.test(test); - long stopTime = System.currentTimeMillis(); - long elapsedTime = stopTime - startTime; - logger.info("Time taken to execute "+ this.getClass().getSimpleName()+": " +elapsedTime +" MilliSec"); - JSONObject response = new JSONObject(postwithoutotp.response.asString()); - if(!response.get("response").toString().equals("null")) - { - JSONObject responseJson = new JSONObject(response.get("response").toString()); - this.step.getScenario().getUinReqIds().put(uin, responseJson.get("requestId").toString()); - if(step.getOutVarName()!=null) - step.getScenario().getVariables().put(step.getOutVarName(), responseJson.get("requestId").toString()); - } - } - } - } catch (AuthenticationTestException | AdminTestException e) { - logger.error(e.getMessage()); - this.hasError=true; - //assertFalse(true, "Failed at credential issuance Response validation"); - throw new RigInternalError("Failed at credential issuance Response validation"); - } - }else { - - fileName = CredentialIssue_YML; - PostWithBodyWithOtpGenerate postWithOtp= new PostWithBodyWithOtpGenerate(); - Object[] casesList = postWithOtp.getYmlTestData(fileName); - Object[] testCaseList = filterTestCases(casesList); - logger.info("No. of TestCases in Yml file : " + testCaseList.length); - try { - for (Object object : testCaseList) { - for(String uin: this.step.getScenario().getUinReqIds().keySet()) { - - TestCaseDTO test = (TestCaseDTO) object; - test.setInput(test.getInput().replace("$UIN$", uin).replace("$UIN$", uin)); - test.setInput(test.getInput().replace("$OTP$", emailId).replace("$OTP$", emailId)); - test.setOutput(test.getOutput().replace("$UIN$", uin)); - Reporter.log(""+test.getTestCaseName()+ ""); - - long startTime = System.currentTimeMillis(); - logger.info(this.getClass().getSimpleName()+" starts at..."+startTime +" MilliSec"); - postWithOtp.test(test); - long stopTime = System.currentTimeMillis(); - long elapsedTime = stopTime - startTime; - logger.info("Time taken to execute "+ this.getClass().getSimpleName()+": " +elapsedTime +" MilliSec"); - JSONObject response = new JSONObject(postWithOtp.response.asString()); - if(!response.get("response").toString().equals("null")) - { - JSONObject responseJson = new JSONObject(response.get("response").toString()); - this.step.getScenario().getUinReqIds().put(uin, responseJson.get("requestId").toString()); - if(step.getOutVarName()!=null) - step.getScenario().getVariables().put(step.getOutVarName(), responseJson.get("requestId").toString()); + + String fileName = ""; + + if (emailId == null || emailId.isEmpty()) { + + fileName = CredentialIssueWithoutOtp_YML; + SimplePost postwithoutotp = new SimplePost(); + Object[] casesList = postwithoutotp.getYmlTestData(fileName); + Object[] testCaseList = filterTestCases(casesList); + logger.info("No. of TestCases in Yml file : " + testCaseList.length); + try { + for (Object object : testCaseList) { + for (String uin : this.step.getScenario().getUinReqIds().keySet()) { + + TestCaseDTO test = (TestCaseDTO) object; + test.setInput(test.getInput().replace("$UIN$", uin).replace("$UIN$", uin)); + test.setOutput(test.getOutput().replace("$UIN$", uin)); + Reporter.log("" + test.getTestCaseName() + ""); + + long startTime = System.currentTimeMillis(); + logger.info(this.getClass().getSimpleName() + " starts at..." + startTime + " MilliSec"); + postwithoutotp.test(test); + long stopTime = System.currentTimeMillis(); + long elapsedTime = stopTime - startTime; + logger.info("Time taken to execute " + this.getClass().getSimpleName() + ": " + elapsedTime + + " MilliSec"); + JSONObject response = new JSONObject(postwithoutotp.response.asString()); + if (!response.get("response").toString().equals("null")) { + JSONObject responseJson = new JSONObject(response.get("response").toString()); + this.step.getScenario().getUinReqIds().put(uin, responseJson.get("requestId").toString()); + if (step.getOutVarName() != null) + step.getScenario().getVariables().put(step.getOutVarName(), + responseJson.get("requestId").toString()); + } } } + } catch (AuthenticationTestException | AdminTestException e) { + logger.error(e.getMessage()); + this.hasError = true; + throw new RigInternalError("Failed at credential issuance Response validation"); + } + } else { + + fileName = CredentialIssue_YML; + PostWithBodyWithOtpGenerate postWithOtp = new PostWithBodyWithOtpGenerate(); + Object[] casesList = postWithOtp.getYmlTestData(fileName); + Object[] testCaseList = filterTestCases(casesList); + logger.info("No. of TestCases in Yml file : " + testCaseList.length); + try { + for (Object object : testCaseList) { + for (String uin : this.step.getScenario().getUinReqIds().keySet()) { + + TestCaseDTO test = (TestCaseDTO) object; + test.setInput(test.getInput().replace("$UIN$", uin).replace("$UIN$", uin)); + test.setInput(test.getInput().replace("$OTP$", emailId).replace("$OTP$", emailId)); + test.setOutput(test.getOutput().replace("$UIN$", uin)); + Reporter.log("" + test.getTestCaseName() + ""); + + long startTime = System.currentTimeMillis(); + logger.info(this.getClass().getSimpleName() + " starts at..." + startTime + " MilliSec"); + postWithOtp.test(test); + long stopTime = System.currentTimeMillis(); + long elapsedTime = stopTime - startTime; + logger.info("Time taken to execute " + this.getClass().getSimpleName() + ": " + elapsedTime + + " MilliSec"); + JSONObject response = new JSONObject(postWithOtp.response.asString()); + if (!response.get("response").toString().equals("null")) { + JSONObject responseJson = new JSONObject(response.get("response").toString()); + this.step.getScenario().getUinReqIds().put(uin, responseJson.get("requestId").toString()); + if (step.getOutVarName() != null) + step.getScenario().getVariables().put(step.getOutVarName(), + responseJson.get("requestId").toString()); + } + } + } + } catch (AuthenticationTestException | AdminTestException e) { + logger.error(e.getMessage()); + this.hasError = true; + throw new RigInternalError("Failed at credential issuance Response validation"); } - } catch (AuthenticationTestException | AdminTestException e) { - logger.error(e.getMessage()); - this.hasError=true; - //assertFalse(true, "Failed at credential issuance Response validation"); - throw new RigInternalError("Failed at credential issuance Response validation"); } } - } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteApplication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteApplication.java index d6cb6de7f..754df5d53 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteApplication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteApplication.java @@ -3,6 +3,8 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -10,6 +12,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class DeleteApplication extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(DeleteApplication.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteHoliday.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteHoliday.java index d398cc7ca..9276ac0fc 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteHoliday.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteHoliday.java @@ -2,6 +2,9 @@ import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; @@ -9,6 +12,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.GlobalConstants; import io.restassured.response.Response; +@Scope("prototype") +@Component public class DeleteHoliday extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(DeleteHoliday.class); String holidayId = ""; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteMockExpect.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteMockExpect.java index 09a4fa9f2..5014c301a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteMockExpect.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DeleteMockExpect.java @@ -2,6 +2,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -9,9 +11,11 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class DeleteMockExpect extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(CheckRIDStage.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -21,8 +25,8 @@ public class DeleteMockExpect extends BaseTestCaseUtil implements StepInterface @Override public void run() throws RigInternalError { - + String url = baseUrl + props.getProperty("deleteMockExpectation"); - Response response = deleteRequest(url, "deleteMockExpectation",step); + Response response = deleteRequest(url, "deleteMockExpectation", step); } } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java index 12a047c00..915dd510a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DemoAuthentication.java @@ -1,6 +1,5 @@ package io.mosip.testrig.dslrig.ivv.e2e.methods; -import java.security.NoSuchAlgorithmException; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; @@ -14,6 +13,9 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.AdminTestException; import io.mosip.testrig.apirig.dto.TestCaseDTO; @@ -21,16 +23,20 @@ import io.mosip.testrig.apirig.utils.AuthenticationTestException; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.BaseTestCase; -import io.mosip.testrig.apirig.testscripts.DemoAuthSimplePostForAutoGenId; +import io.mosip.testrig.apirig.testscripts.DemoAuth; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class DemoAuthentication extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(DemoAuthentication.class); private static final String DEMOPATH = "idaData/DemoAuth/DemoAuth.yml"; - DemoAuthSimplePostForAutoGenId demoAuth = new DemoAuthSimplePostForAutoGenId(); + + @Autowired + private DemoAuth demoAuth; static { if (ConfigManager.IsDebugEnabled()) @@ -55,10 +61,6 @@ public void run() throws RigInternalError { Object[] casesListVID = null; String updateAgeFlag = null; - // AuthPartnerProcessor.startProcess(); - // step.getScenario().getUinPersonaProp().put("2759239619", - // "C:\\Users\\NEEHAR~1.GAR\\AppData\\Local\\Temp\\residents_2140454779925252334\\498484984849848.json"); - if (step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Parameter is missing from DSL step"); this.hasError = true; @@ -70,10 +72,10 @@ public void run() throws RigInternalError { } if (step.getParameters().size() == 2) { - uins = step.getParameters().get(1); // "e2e_demoAuthentication(name,$$uin,$$personaFilePath,$$vid)" + uins = step.getParameters().get(1); if (!StringUtils.isBlank(uins)) uinList = new ArrayList<>(Arrays.asList(uins.split("@@"))); - } else if (step.getParameters().size() > 2) { // "e2e_demoAuthentication(name,$$uin,$$personaFilePath)" + } else if (step.getParameters().size() > 2) { uins = step.getParameters().get(1); _personFilePath = step.getParameters().get(2); if (uins.startsWith("$$") && _personFilePath.startsWith("$$")) { @@ -85,10 +87,10 @@ public void run() throws RigInternalError { uinList = new ArrayList<>(step.getScenario().getUinPersonaProp().stringPropertyNames()); if (step.getParameters().size() == 2) { - vids = step.getParameters().get(1); // "e2e_demoAuthentication(name,$$uin,$$personaFilePath,$$vid)" + vids = step.getParameters().get(1); if (!StringUtils.isBlank(vids)) vidList = new ArrayList<>(Arrays.asList(vids.split("@@"))); - } else if (step.getParameters().size() > 2) { // "e2e_demoAuthentication(name,$$uin,$$personaFilePath,$$vid)" + } else if (step.getParameters().size() > 2) { vids = step.getParameters().get(3); _personFilePath = step.getParameters().get(2); if (vids.startsWith("$$") && _personFilePath.startsWith("$$")) { @@ -102,13 +104,9 @@ public void run() throws RigInternalError { if (step.getParameters().size() > 4) updateAgeFlag = step.getParameters().get(4); - Object[] testObj = demoAuth.getYmlTestData(DEMOPATH); - TestCaseDTO test = (TestCaseDTO) testObj[0]; - // test.setEndPoint(test.getEndPoint().replace("$PartnerKey$", - // props.getProperty("partnerKey"))); - for (String uin : uinList) { String personFilePathvalue = null; + if (step.getParameters().size() > 2) { personFilePathvalue = _personFilePath; } else if (step.getScenario().getUinPersonaProp().containsKey(uin)) @@ -124,15 +122,12 @@ public void run() throws RigInternalError { List addressFetchList = new ArrayList(); addressFetchList.add(E2EConstants.DEMOADDRESSFETCH); addressResponse = packetUtility.retrieveBiometric(personFilePathvalue, addressFetchList, step); + Object[] testObj = demoAuth.getYmlTestData(DEMOPATH); + TestCaseDTO test = (TestCaseDTO) testObj[0]; String input = test.getInput(); input = JsonPrecondtion.parseAndReturnJsonContent(input, uin, "individualId"); JSONObject inputJson = new JSONObject(input); - /* - * if(inputJson.has("identityRequest")) { identityRequest = - * inputJson.get("identityRequest").toString(); } - */ - // JSONObject identityReqJson = new JSONObject(identityRequest); for (String demoField : demofieldList) { String demoFieldValueKey = null; String demoValue = null; @@ -142,16 +137,15 @@ public void run() throws RigInternalError { demoFieldValueKey = E2EConstants.DEMODOB; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values - - if (updateAgeFlag != null && updateAgeFlag.contains("ageDecrease") ) { + + if (updateAgeFlag != null && updateAgeFlag.contains("ageDecrease")) { demoValue = decreaseAge(demoValue); - } - else { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); - LocalDate birthDate = LocalDate.parse(demoValue, formatter); - LocalDate currentDate = LocalDate.now(); + } else { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); + LocalDate birthDate = LocalDate.parse(demoValue, formatter); + LocalDate currentDate = LocalDate.now(); - demoValue = String.valueOf(ChronoUnit.YEARS.between(birthDate, currentDate)); + demoValue = String.valueOf(ChronoUnit.YEARS.between(birthDate, currentDate)); } if (demoValue == null) { @@ -160,7 +154,7 @@ public void run() throws RigInternalError { "Unable to get the Demo value for field " + demoField + " from Persona"); } - inputJson.put(demoField, demoValue); + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); break; case E2EConstants.DEMOEMAIL: @@ -172,7 +166,7 @@ public void run() throws RigInternalError { throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); } - inputJson.put(demoField, demoValue); + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); break; case E2EConstants.DEMOYMLPHONE: @@ -184,7 +178,7 @@ public void run() throws RigInternalError { throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); } - inputJson.put(demoField, demoValue); + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); break; case E2EConstants.DEMOADDRESSFETCH: @@ -225,7 +219,7 @@ public void run() throws RigInternalError { addressLine3Obj.put("language", BaseTestCase.getLanguageList().get(0)); addressLine3Obj.put("value", addLine3); addressLine3Array.put(addressLine3Obj); - inputJson.put(E2EConstants.DEMOADDRESSLINE3, addressLine3Array); + inputJson.getJSONObject("identityRequest").put(E2EConstants.DEMOADDRESSLINE3, addressLine3Array); break; case E2EConstants.DEMONAME: @@ -247,7 +241,7 @@ public void run() throws RigInternalError { nameObj.put("language", BaseTestCase.getLanguageList().get(0)); nameObj.put("value", fullname); nameArray.put(nameObj); - inputJson.put(demoField, nameArray); + inputJson.getJSONObject("identityRequest").put(demoField, nameArray); break; case E2EConstants.DEMOGENDER: @@ -264,7 +258,7 @@ public void run() throws RigInternalError { throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); } - inputJson.put(demoField, genArray); + inputJson.getJSONObject("identityRequest").put(demoField, genArray); break; default: @@ -298,21 +292,13 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") if (casesListUIN != null) { for (Object object : casesListUIN) { test = (TestCaseDTO) object; - test.setEndPoint(test.getEndPoint().replace("$PartnerKey$", partnerKeyUrl)); - test.setEndPoint(test.getEndPoint().replace("$PartnerName$", partnerId)); - test.setEndPoint(test.getEndPoint().replace("uinnumber", uin)); test.setInput(inputJson.toString()); try { - try { - demoAuth.test(test); - } catch (NoSuchAlgorithmException e) { - logger.error(e.getMessage()); - } + demoAuth.test(test); } catch (AuthenticationTestException | AdminTestException e) { - + logger.error(e.getMessage()); this.hasError = true; throw new RigInternalError(e.getMessage()); - } } } @@ -321,6 +307,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") for (String vid : vidList) { String personFilePathvalue = null; + if (step.getParameters().size() > 2) { personFilePathvalue = _personFilePath; } else if (step.getScenario().getVidPersonaProp().containsKey(vid)) @@ -337,14 +324,12 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") List addressFetchList = new ArrayList(); addressFetchList.add(E2EConstants.DEMOADDRESSFETCH); addressResponse = packetUtility.retrieveBiometric(personFilePathvalue, addressFetchList, step); + Object[] testObj = demoAuth.getYmlTestData(DEMOPATH); + TestCaseDTO test = (TestCaseDTO) testObj[0]; String input = test.getInput(); input = JsonPrecondtion.parseAndReturnJsonContent(input, vid, "individualId"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, "VID", "individualIdType"); JSONObject inputJson = new JSONObject(input); - /* - * if(inputJson.has("identityRequest")) { identityRequest = - * inputJson.get("identityRequest").toString(); } - */ - // JSONObject identityReqJson = new JSONObject(identityRequest); for (String demoField : demofieldList) { String demoFieldValueKey = null; String demoValue = null; @@ -355,26 +340,24 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") demoFieldValueKey = E2EConstants.DEMODOB; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values - - if (updateAgeFlag != null && updateAgeFlag.contains("ageDecrease") ) { + + if (updateAgeFlag != null && updateAgeFlag.contains("ageDecrease")) { demoValue = decreaseAge(demoValue); - } - else { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); - LocalDate birthDate = LocalDate.parse(demoValue, formatter); - LocalDate currentDate = LocalDate.now(); + } else { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); + LocalDate birthDate = LocalDate.parse(demoValue, formatter); + LocalDate currentDate = LocalDate.now(); - demoValue = String.valueOf(ChronoUnit.YEARS.between(birthDate, currentDate)); + demoValue = String.valueOf(ChronoUnit.YEARS.between(birthDate, currentDate)); } - if (demoValue == null) { + if (demoValue == null) { this.hasError = true; throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); } - inputJson.put(demoField, demoValue); + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); break; - case E2EConstants.DEMOEMAIL: demoFieldValueKey = E2EConstants.DEMOEMAIL; @@ -385,7 +368,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); } - inputJson.put(demoField, demoValue); + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); break; case E2EConstants.DEMOYMLPHONE: @@ -397,7 +380,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); } - inputJson.put(demoField, demoValue); + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); break; case E2EConstants.DEMOADDRESSFETCH: @@ -437,7 +420,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") addressLine3Obj.put("language", BaseTestCase.getLanguageList().get(0)); addressLine3Obj.put("value", addLine3); addressLine3Array.put(addressLine3Obj); - inputJson.put(E2EConstants.DEMOADDRESSLINE3, addressLine3Array); + inputJson.getJSONObject("identityRequest").put(E2EConstants.DEMOADDRESSLINE3, addressLine3Array); break; case E2EConstants.DEMONAME: @@ -459,7 +442,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") nameObj.put("language", BaseTestCase.getLanguageList().get(0)); nameObj.put("value", fullname); nameArray.put(nameObj); - inputJson.put(demoField, nameArray); + inputJson.getJSONObject("identityRequest").put(demoField, nameArray); break; case E2EConstants.DEMOGENDER: @@ -476,7 +459,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); } - inputJson.put(demoField, genArray); + inputJson.getJSONObject("identityRequest").put(demoField, genArray); break; default: @@ -510,21 +493,14 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") if (casesListVID != null) { for (Object object : casesListVID) { test = (TestCaseDTO) object; - test.setEndPoint(test.getEndPoint().replace("$PartnerKey$", partnerKeyUrl)); - test.setEndPoint(test.getEndPoint().replace("$PartnerName$", partnerId)); - test.setEndPoint(test.getEndPoint().replace("uinnumber", vid)); test.setInput(inputJson.toString()); + try { - try { - demoAuth.test(test); - } catch (NoSuchAlgorithmException e) { - logger.error(e.getMessage()); - } + demoAuth.test(test); } catch (AuthenticationTestException | AdminTestException e) { - + logger.error(e.getMessage()); this.hasError = true; throw new RigInternalError(e.getMessage()); - } } } @@ -534,41 +510,33 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } public static String decreaseAge(String dateString) { - // Assuming dateString comes in the format "YYYY/MM/DD" - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); - LocalDate birthDate = LocalDate.parse(dateString, formatter); - LocalDate currentDate = LocalDate.now(); - - long currentAge = ChronoUnit.YEARS.between(birthDate, currentDate); - - // If the age is less than 1 year, we cannot decrease it - if (currentAge < 1) { - return "0"; // Return "0" as a string - } + // Assuming dateString comes in the format "YYYY/MM/DD" + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); + LocalDate birthDate = LocalDate.parse(dateString, formatter); + LocalDate currentDate = LocalDate.now(); - Random random = new Random(); - int yearsToSubtract = random.nextInt((int) currentAge) + 1; // Random number between 1 and currentAge + long currentAge = ChronoUnit.YEARS.between(birthDate, currentDate); - int decreasedAge = (int) currentAge - yearsToSubtract; - - // Convert the decreased age to a string and return it - return String.valueOf(decreasedAge); + // If the age is less than 1 year, we cannot decrease it + if (currentAge < 1) { + return "0"; // Return "0" as a string + } + Random random = new Random(); + int yearsToSubtract = random.nextInt((int) currentAge) + 1; // Random number between 1 and currentAge + int decreasedAge = (int) currentAge - yearsToSubtract; + return String.valueOf(decreasedAge); } - - public static String increaseAge(String dateString) { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); - LocalDate birthDate = LocalDate.parse(dateString, formatter); - - Random random = new Random(); - int yearsToAdd = random.nextInt(10) + 1; - LocalDate newDate = birthDate.plusYears(yearsToAdd); - - LocalDate currentDate = LocalDate.now(); - long newAge = ChronoUnit.YEARS.between(newDate, currentDate); - return String.valueOf(newAge); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); + LocalDate birthDate = LocalDate.parse(dateString, formatter); + Random random = new Random(); + int yearsToAdd = random.nextInt(10) + 1; + LocalDate newDate = birthDate.plusYears(yearsToAdd); + LocalDate currentDate = LocalDate.now(); + long newAge = ChronoUnit.YEARS.between(newDate, currentDate); + return String.valueOf(newAge); } } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardAppointment.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardAppointment.java index b732e2a12..01046c3c3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardAppointment.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardAppointment.java @@ -6,6 +6,9 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testscripts.DeleteWithParam; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -13,10 +16,12 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class DiscardAppointment extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(DiscardAppointment.class); DeleteWithParam discardAppointment = new DeleteWithParam(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -26,23 +31,20 @@ public class DiscardAppointment extends BaseTestCaseUtil implements StepInterfac @Override public void run() throws RigInternalError { - String bookingStatus =null; + String bookingStatus = null; if (step.getParameters() == null || step.getParameters().isEmpty()) { logger.error("Parameter is missing from DSL step"); - assertTrue(false,"Paramter is missing in step: "+step.getName()); + assertTrue(false, "Paramter is missing in step: " + step.getName()); } else { String prid = step.getParameters().get(0); if (prid.startsWith("$$")) { prid = step.getScenario().getVariables().get(prid); - } - - //String url = BaseTestCase.ApplnURI + props.getProperty("discardAppoinment")+"/"+prid1; - String url = baseUrl + props.getProperty("discardAppoinment")+"/"+prid; - HashMap map=new HashMap(); - map.put("preRegistrationId", prid); - //Response response =deleteRequestWithoutStep(url, "Discard booking"); - Response response =deleteRequest(url, "Discard booking",step); - logger.info(response.toString()); + } + String url = baseUrl + props.getProperty("discardAppoinment") + "/" + prid; + HashMap map = new HashMap(); + map.put("preRegistrationId", prid); + Response response = deleteRequest(url, "Discard booking", step); + logger.info(response.toString()); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardBooking.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardBooking.java index 5c264ebeb..9a3364675 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardBooking.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DiscardBooking.java @@ -8,6 +8,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -17,9 +19,11 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class DiscardBooking extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(DiscardBooking.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -29,68 +33,69 @@ public class DiscardBooking extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError { - String bookingStatus =null; + String bookingStatus = null; if (step.getParameters() == null || step.getParameters().isEmpty()) { logger.error("Parameter is missing from DSL step"); - assertTrue(false,"Paramter is missing in step: "+step.getName()); + assertTrue(false, "Paramter is missing in step: " + step.getName()); } else { - //bookingStatus =step.getParameters().get(0); String prid1 = step.getParameters().get(0); if (prid1.startsWith("$$")) { prid1 = step.getScenario().getVariables().get(prid1); - } - - String url = baseUrl + props.getProperty("discardBooking"); - //https://api-internal.dev3.mosip.net/preregistration/v1/appointment?preRegistrationId=111 - HashMap map=new HashMap(); - map.put("preRegistrationId", prid1); - Response response =deleteRequestWithQueryParam(url, map, "Discard booking",step); - //throw new RigInternalError("PRID cannot be null or empty"); + } + + String url = baseUrl + props.getProperty("discardBooking"); + HashMap map = new HashMap(); + map.put("preRegistrationId", prid1); + Response response = deleteRequestWithQueryParam(url, map, "Discard booking", step); } } - private void cancelBookingByPrid(Map retrieveBookingByPrid,String prid,String bookingStatus) throws RigInternalError { - String message=null; - switch(bookingStatus.toLowerCase()) { + private void cancelBookingByPrid(Map retrieveBookingByPrid, String prid, String bookingStatus) + throws RigInternalError { + String message = null; + switch (bookingStatus.toLowerCase()) { case "cancel": - message="appointment for the selected application has been successfully cancelled"; + message = "appointment for the selected application has been successfully cancelled"; break; case "bookingNotFound": - message="booking data not found"; + message = "booking data not found"; break; default: - logger.error("["+bookingStatus+"]"+" Parameter not supported"); + logger.error("[" + bookingStatus + "]" + " Parameter not supported"); } - String url = baseUrl + props.getProperty("cancelBookingByPrid")+prid; + String url = baseUrl + props.getProperty("cancelBookingByPrid") + prid; JSONObject jsonReq = new JSONObject(); jsonReq.put(E2EConstants.APPOINTMENT_DATE, retrieveBookingByPrid.get("appointment_date")); jsonReq.put(E2EConstants.PRE_REGISTRATION_ID, retrieveBookingByPrid.get("pre_registration_id")); jsonReq.put(E2EConstants.REGISTRATION_CENTER_ID, retrieveBookingByPrid.get("registration_center_id")); jsonReq.put(E2EConstants.TIME_SLOT_FROM, retrieveBookingByPrid.get("time_slot_from")); jsonReq.put(E2EConstants.TIME_SLOT_TO, retrieveBookingByPrid.get("time_slot_to")); - Response response =postRequestWithQueryParamAndBody(url,jsonReq.toString(),step.getScenario().getCurrentStep(),"CancelBookingByPrid",step); - if (!response.getBody().asString().toLowerCase() - .contains(message)) - {this.hasError=true; throw new RigInternalError("Unable to CancelAppointment"); - }} + Response response = postRequestWithQueryParamAndBody(url, jsonReq.toString(), + step.getScenario().getCurrentStep(), "CancelBookingByPrid", step); + if (!response.getBody().asString().toLowerCase().contains(message)) { + this.hasError = true; + throw new RigInternalError("Unable to CancelAppointment"); + } + } private Map retrieveBookingByPrid(String prid) throws RigInternalError { - Map bookingMetadata=new HashMap(); + Map bookingMetadata = new HashMap(); step.getScenario().getCurrentStep().put("preregId", prid); String url = baseUrl + props.getProperty("retrieveBookingbyPrid"); - Response response = getRequestWithQueryParam(url,step.getScenario().getCurrentStep(), "RetrieveBookingByPrid",step); - if(response.getBody().asString().equalsIgnoreCase("{}")) { - logger.info("booking data not found for prid : "+prid); + Response response = getRequestWithQueryParam(url, step.getScenario().getCurrentStep(), "RetrieveBookingByPrid", + step); + if (response.getBody().asString().equalsIgnoreCase("{}")) { + logger.info("booking data not found for prid : " + prid); return bookingMetadata; + } else if (!response.getBody().asString().contains(prid)) { + this.hasError = true; + throw new RigInternalError("Unable to RetrieveBooking for Prid: " + prid); } - else if (!response.getBody().asString().contains(prid)) - {this.hasError=true;throw new RigInternalError("Unable to RetrieveBooking for Prid: " + prid);} JSONObject jsonResp = new JSONObject(response.getBody().asString()); - bookingMetadata=getBookingDetail(jsonResp); + bookingMetadata = getBookingDetail(jsonResp); return bookingMetadata; } - - + private Map getBookingDetail(JSONObject jsonResponse) { String response = jsonResponse.toString(); Map bookingMetadata = new HashMap<>(); @@ -101,8 +106,7 @@ private Map getBookingDetail(JSONObject jsonResponse) { JsonPrecondtion.getValueFromJson(response, "bookingMetadata.registration_center_id")); bookingMetadata.put("appointment_date", JsonPrecondtion.getValueFromJson(response, "bookingMetadata.appointment_date")); - bookingMetadata.put("pre_registration_id", - JsonPrecondtion.getValueFromJson(response, "preRegistrationId")); + bookingMetadata.put("pre_registration_id", JsonPrecondtion.getValueFromJson(response, "preRegistrationId")); return bookingMetadata; } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DownloadCard.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DownloadCard.java index b8e85b99c..4cf640d48 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DownloadCard.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/DownloadCard.java @@ -5,6 +5,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -17,88 +19,84 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; import io.mosip.testrig.dslrig.ivv.orchestrator.TestResources; +@Scope("prototype") +@Component public class DownloadCard extends BaseTestCaseUtil implements StepInterface { private static final String downLoadCard_YML = "preReg/downloadCard/downloadCard.yml"; private static final String PDFFILEPATH = "preReg/downloadCard"; static Logger logger = Logger.getLogger(DownloadCard.class); - String fileNameValue=null; - + String fileNameValue = null; + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); else logger.setLevel(Level.ERROR); } - @SuppressWarnings("static-access") + + @SuppressWarnings("static-access") @Override - public void run() throws RigInternalError { - if(!step.getParameters().isEmpty() && step.getParameters().size()==1) { //"$$var=e2e_downloadCard($$requestId)" - String _requestId=step.getParameters().get(0); - if(_requestId.startsWith("$$")) { + public void run() throws RigInternalError { + if (!step.getParameters().isEmpty() && step.getParameters().size() == 1) { + String _requestId = step.getParameters().get(0); + if (_requestId.startsWith("$$")) { _requestId = step.getScenario().getVariables().get(_requestId); -// if (step.getScenario().getUinReqIds() == null) -// step.getScenario().getUinReqIds() = new HashMap<>(); step.getScenario().getUinReqIds().clear(); step.getScenario().getUinReqIds().put("requestId", _requestId); - } - } - String fileName = downLoadCard_YML; - GetWithParamForDownloadCard getWithPathParam= new GetWithParamForDownloadCard(); - Object[] casesList = getWithPathParam.getYmlTestData(fileName); + } + } + String fileName = downLoadCard_YML; + GetWithParamForDownloadCard getWithPathParam = new GetWithParamForDownloadCard(); + Object[] casesList = getWithPathParam.getYmlTestData(fileName); Object[] testCaseList = filterTestCases(casesList); logger.info("No. of TestCases in Yml file : " + testCaseList.length); - - for (Object object : testCaseList) { - for(String requestid: this.step.getScenario().getUinReqIds().values()) { - try { - TestCaseDTO test = (TestCaseDTO) object; - test.setInput(test.getInput().replace("$requestId$", requestid)); - test.setOutput(test.getOutput().replace("$requestId$", requestid)); - Reporter.log(""+test.getTestCaseName()+ ""); - long startTime = System.currentTimeMillis(); - logger.info(this.getClass().getSimpleName()+" starts at..."+startTime +" MilliSec"); - getWithPathParam.test(test); - long stopTime = System.currentTimeMillis(); - long elapsedTime = stopTime - startTime; - logger.info("Time taken to execute "+ this.getClass().getSimpleName()+": " +elapsedTime +" MilliSec"); - // checking pdf file size - //assertTrue(getWithPathParam.pdf.length>0); - if(getWithPathParam.pdf.length>0) { - download(getWithPathParam.pdf,requestid); - } - else {this.hasError=true; - throw new RigInternalError("downloaded pdf size is less than 0"); - } - } catch (AdminTestException e) { - logger.error("Failed at downloading card: "+e.getMessage()); - //assertFalse(true, "Failed at downloading card"); - this.hasError=true;throw new RigInternalError("Failed at downloading card"); - } - catch (Exception e) { - logger.error("Failed at downloading card: "+e.getMessage()); - //assertFalse(true, "Failed at downloading card"); - this.hasError=true;throw new RigInternalError("Failed at downloading card"); - } + for (Object object : testCaseList) { + for (String requestid : this.step.getScenario().getUinReqIds().values()) { + try { + TestCaseDTO test = (TestCaseDTO) object; + test.setInput(test.getInput().replace("$requestId$", requestid)); + test.setOutput(test.getOutput().replace("$requestId$", requestid)); + Reporter.log("" + test.getTestCaseName() + ""); + long startTime = System.currentTimeMillis(); + logger.info(this.getClass().getSimpleName() + " starts at..." + startTime + " MilliSec"); + getWithPathParam.test(test); + long stopTime = System.currentTimeMillis(); + long elapsedTime = stopTime - startTime; + logger.info("Time taken to execute " + this.getClass().getSimpleName() + ": " + elapsedTime + + " MilliSec"); + if (getWithPathParam.pdf.length > 0) { + download(getWithPathParam.pdf, requestid); + } else { + this.hasError = true; + throw new RigInternalError("downloaded pdf size is less than 0"); + } + + } catch (AdminTestException e) { + logger.error("Failed at downloading card: " + e.getMessage()); + this.hasError = true; + throw new RigInternalError("Failed at downloading card"); + } catch (Exception e) { + logger.error("Failed at downloading card: " + e.getMessage()); + this.hasError = true; + throw new RigInternalError("Failed at downloading card"); + } } } - - } - - - private void download(byte[] pdfFile,String requestid) { - FileOutputStream fos = null; - try { - - fos = new FileOutputStream(TestResources.getResourcePath()+PDFFILEPATH+"/"+requestid+".pdf"); - fos.write(pdfFile); - } catch (IOException e ) { - logger.error("Failed to download the pdf Exception: "+e.getMessage()); - } - finally { + + } + + private void download(byte[] pdfFile, String requestid) { + FileOutputStream fos = null; + try { + + fos = new FileOutputStream(TestResources.getResourcePath() + PDFFILEPATH + "/" + requestid + ".pdf"); + fos.write(pdfFile); + } catch (IOException e) { + logger.error("Failed to download the pdf Exception: " + e.getMessage()); + } finally { PacketUtility.closeOutputStream(fos); } - } - + } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBio.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBio.java index 2d9a95e9e..7d03a901e 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBio.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBio.java @@ -9,6 +9,10 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -22,17 +26,21 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner; +@Scope("prototype") +@Component public class EkycBio extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(EkycBio.class); private static final String BIOMETRIC_FACE = "idaData/EkycBio/EkycBio.yml"; - Properties deviceProp =null; + Properties deviceProp = null; Properties uinResidentDataPathFinalProps = new Properties(); - BioAuth bioAuth = new BioAuth(); String bioResponse = null; List idType = BaseTestCase.getSupportedIdTypesValueFromActuator(); List casesListUIN = null; List casesListVID = null; - + + @Autowired + private BioAuth bioAuth; + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -42,16 +50,14 @@ public class EkycBio extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError { - //AuthPartnerProcessor.startProcess(); - //step.getScenario().getUinPersonaProp().put("9719375326","C:\\Users\\Sohan.Dey\\AppData\\Local\\Temp\\residents_182289324539364480\\3337515223.json"); - //step.getScenario().getUinPersonaProp().put("7209149850", "C:\\Users\\username\\AppData\\Local\\Temp\\residents_629388943910840643\\604866048660486.json"); String deviceInfoFilePath = null; String uins = null; String vids = null; List uinList = null; List vidList = null; if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { - logger.error("Parameter is missing from DSL step");this.hasError=true; + logger.error("Parameter is missing from DSL step"); + this.hasError = true; throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); } else { deviceInfoFilePath = step.getParameters().get(0); @@ -60,8 +66,10 @@ public void run() throws RigInternalError { + props.getProperty("ivv.path.deviceinfo.folder") + deviceInfoFilePath + ".properties"; deviceProp = AdminTestUtil.getproperty(deviceInfoFilePath); } else { - this.hasError=true; throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step"); - }} + this.hasError = true; + throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step"); + } + } if (step.getParameters().size() == 2) { uins = step.getParameters().get(1); if (!StringUtils.isBlank(uins)) @@ -100,10 +108,10 @@ public void run() throws RigInternalError { String personFilePathvalue = null; if (step.getScenario().getUinPersonaProp().containsKey(uin)) personFilePathvalue = step.getScenario().getUinPersonaProp().getProperty(uin); - else - { - this.hasError=true;throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); - } + else { + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); + } String bioType = null, bioSubType = null; List modalityList = new ArrayList<>(); @@ -130,49 +138,38 @@ public void run() throws RigInternalError { modalityKeyTogetBioValue = bioSubType; break; default: - this.hasError=true;throw new RigInternalError("Given BIO Type in device property file is not valid"); + this.hasError = true; + throw new RigInternalError("Given BIO Type in device property file is not valid"); } } - bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList,step); - - //System.out.println("bioMetricValue= " + bioResponse); - + bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList, step); String fileName = BIOMETRIC_FACE; bioAuth.isInternal = false; - Object[] casesListUIN = null; // bioAuth.getYmlTestData(fileName); - Object[] casesListVID = null; // bioAuth.getYmlTestData(fileName); - // Get the id types from server -// if idtypes.contains "UIN" { casesListUIN = bioAuth.getYmlTestData(fileName); -// if idtypes.contains "VID" { casesListVID = bioAuth.getYmlTestData(fileName); - + Object[] casesListUIN = null; + Object[] casesListVID = null; if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("UIN") || BaseTestCase.getSupportedIdTypesValueFromActuator().contains("uin")) { - casesListUIN = bioAuth.getYmlTestData(fileName); - } - - else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") + } else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") || BaseTestCase.getSupportedIdTypesValueFromActuator().contains("vid")) { casesListVID = bioAuth.getYmlTestData(fileName); - } - - else { + } else { casesListUIN = bioAuth.getYmlTestData(fileName); casesListVID = bioAuth.getYmlTestData(fileName); } - if (bioResponse != null && !bioResponse.isEmpty() && modalityKeyTogetBioValue != null) { String bioValue = JsonPrecondtion.getValueFromJson(bioResponse, modalityKeyTogetBioValue); byte[] decodedBioMetricValue = Base64.getUrlDecoder().decode(bioValue); bioValue = Base64.getEncoder().encodeToString(decodedBioMetricValue); - if (bioValue == null || bioValue.length() < 100) - {this.hasError=true;throw new RigInternalError( + if (bioValue == null || bioValue.length() < 100) { + this.hasError = true; + throw new RigInternalError( "Not able to get the bio value for field " + modalityToLog + " from persona"); - } + } if (idType.contains("UIN") || idType.contains("uin")) { casesListUIN = bioAuth.getYmlTestData(fileName); } @@ -180,7 +177,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") if (casesListUIN != null) { for (Object object : casesListUIN) { TestCaseDTO test = (TestCaseDTO) object; - packetUtility.bioAuth(modalityToLog, bioValue, uin, deviceProp, test, bioAuth,step); + packetUtility.bioAuth(modalityToLog, bioValue, uin, deviceProp, test, bioAuth, step); } } @@ -188,6 +185,9 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } for (String vid : vidList) { + Object[] testObj = bioAuth.getYmlTestData(BIOMETRIC_FACE); + TestCaseDTO test = (TestCaseDTO) testObj[0]; + String input = test.getInput(); String personFilePathvalue = null; if (step.getScenario().getVidPersonaProp().containsKey(vid)) personFilePathvalue = step.getScenario().getVidPersonaProp().getProperty(vid); @@ -219,57 +219,49 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") modalityKeyTogetBioValue = bioSubType; break; default: - this.hasError=true;throw new RigInternalError("Given BIO Type in device property file is not valid"); + this.hasError = true; + throw new RigInternalError("Given BIO Type in device property file is not valid"); } } - bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList,step); - - //System.out.println("bioMetricValue= " + bioResponse); + bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList, step); String fileName = BIOMETRIC_FACE; bioAuth.isInternal = false; - Object[] casesListUIN = null; // bioAuth.getYmlTestData(fileName); - Object[] casesListVID = null; // bioAuth.getYmlTestData(fileName); - // Get the id types from server -// if idtypes.contains "UIN" { casesListUIN = bioAuth.getYmlTestData(fileName); -// if idtypes.contains "VID" { casesListVID = bioAuth.getYmlTestData(fileName); + Object[] casesListUIN = null; + Object[] casesListVID = null; + + input = JsonPrecondtion.parseAndReturnJsonContent(input, "VID", "individualIdType"); if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("UIN") || BaseTestCase.getSupportedIdTypesValueFromActuator().contains("uin")) { casesListUIN = bioAuth.getYmlTestData(fileName); - } - - else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") + } else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") || BaseTestCase.getSupportedIdTypesValueFromActuator().contains("vid")) { casesListVID = bioAuth.getYmlTestData(fileName); - } - - else { + } else { casesListUIN = bioAuth.getYmlTestData(fileName); casesListVID = bioAuth.getYmlTestData(fileName); } - if (bioResponse != null && !bioResponse.isEmpty() && modalityKeyTogetBioValue != null) { String bioValue = JsonPrecondtion.getValueFromJson(bioResponse, modalityKeyTogetBioValue); - byte[] decodedBioMetricValue = Base64.getUrlDecoder().decode(bioValue); bioValue = Base64.getEncoder().encodeToString(decodedBioMetricValue); - - if (bioValue == null || bioValue.length() < 100) - {this.hasError=true;throw new RigInternalError( + if (bioValue == null || bioValue.length() < 100) { + this.hasError = true; + throw new RigInternalError( "Not able to get the bio value for field " + modalityToLog + " from persona"); - } + } if (idType.contains("VID") || idType.contains("vid")) { casesListVID = bioAuth.getYmlTestData(fileName); } if (casesListVID != null) { for (Object object : casesListVID) { - TestCaseDTO test = (TestCaseDTO) object; - packetUtility.bioAuth(modalityToLog, bioValue, vid, deviceProp, test, bioAuth,step); + test.setInput(input); + packetUtility.bioAuth(modalityToLog, bioValue, vid, deviceProp, test, bioAuth, step); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBioWithVid.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBioWithVid.java index 457d2ca98..b95c9fe44 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBioWithVid.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycBioWithVid.java @@ -10,6 +10,9 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -21,13 +24,15 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner; +@Scope("prototype") +@Component public class EkycBioWithVid extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(EkycBioWithVid.class); private static final String BIOMETRIC_FACE = "idaData/EkycBio/EkycBio.yml"; - Properties deviceProp =null; + Properties deviceProp = null; BioAuth bioAuth = new BioAuth(); String bioResponse = null; - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -37,28 +42,30 @@ public class EkycBioWithVid extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError { - //AuthPartnerProcessor.startProcess(); - String _personFilePath = null; - String deviceInfoFilePath = null; + String _personFilePath = null; + String deviceInfoFilePath = null; String vids = null; List vidList = null; if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); + this.hasError = true; + throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); } else { deviceInfoFilePath = step.getParameters().get(0); if (!StringUtils.isBlank(deviceInfoFilePath)) { deviceInfoFilePath = TestRunner.getExternalResourcePath() + props.getProperty("ivv.path.deviceinfo.folder") + deviceInfoFilePath + ".properties"; deviceProp = AdminTestUtil.getproperty(deviceInfoFilePath); - } else - {this.hasError=true;throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step"); - }} + } else { + this.hasError = true; + throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step"); + } + } if (step.getParameters().size() == 2) { vids = step.getParameters().get(1); if (!StringUtils.isBlank(vids)) vidList = new ArrayList<>(Arrays.asList(vids.split("@@"))); - }else if(step.getParameters().size()>2) { //"e2e_EkycBio(faceDevice,$$vid,$$personaFilePath)" + } else if (step.getParameters().size() > 2) { // "e2e_EkycBio(faceDevice,$$vid,$$personaFilePath)" vids = step.getParameters().get(1); _personFilePath = step.getParameters().get(2); if (vids.startsWith("$$") && _personFilePath.startsWith("$$")) { @@ -66,31 +73,28 @@ public void run() throws RigInternalError { _personFilePath = step.getScenario().getVariables().get(_personFilePath); vidList = new ArrayList<>(Arrays.asList(vids.split("@@"))); } - }else + } else vidList = new ArrayList<>(step.getScenario().getVidPersonaProp().stringPropertyNames()); for (String vid : vidList) { String personFilePathvalue = null; - if(step.getParameters().size()>2) { - personFilePathvalue=_personFilePath; + if (step.getParameters().size() > 2) { + personFilePathvalue = _personFilePath; + } else if (step.getScenario().getVidPersonaProp().containsKey(vid)) { + String uin = step.getScenario().getVidPersonaProp().get(vid).toString(); + personFilePathvalue = step.getScenario().getUinPersonaProp().get(uin).toString(); + } else { + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given VID " + vid); } - else if (step.getScenario().getVidPersonaProp().containsKey(vid)) - { - String uin =step.getScenario().getVidPersonaProp().get(vid).toString(); - personFilePathvalue= step.getScenario().getUinPersonaProp().get(uin).toString(); - //personFilePathvalue = vidAndstep.getScenario().getUinPersonaProp().getProperty(vid); - } - else - {this.hasError=true;throw new RigInternalError("Persona doesn't exist for the given VID " + vid); - } - String bioType=null, bioSubType=null; + String bioType = null, bioSubType = null; List modalityList = new ArrayList<>(); String modalityToLog = null; String modalityKeyTogetBioValue = null; - if(deviceProp != null) { - bioType= deviceProp.getProperty("bioType"); - bioSubType= deviceProp.getProperty("bioSubType"); - switch(bioType) { + if (deviceProp != null) { + bioType = deviceProp.getProperty("bioType"); + bioSubType = deviceProp.getProperty("bioSubType"); + switch (bioType) { case E2EConstants.FACEBIOTYPE: modalityList.add(E2EConstants.FACEFETCH); modalityToLog = bioType; @@ -98,8 +102,9 @@ else if (step.getScenario().getVidPersonaProp().containsKey(vid)) break; case E2EConstants.IRISBIOTYPE: modalityList.add(E2EConstants.IRISFETCH); - modalityToLog = bioSubType+"_"+bioType; - modalityKeyTogetBioValue = (bioSubType.equalsIgnoreCase("left"))? E2EConstants.LEFT_EYE:E2EConstants.RIGHT_EYE; + modalityToLog = bioSubType + "_" + bioType; + modalityKeyTogetBioValue = (bioSubType.equalsIgnoreCase("left")) ? E2EConstants.LEFT_EYE + : E2EConstants.RIGHT_EYE; break; case E2EConstants.FINGERBIOTYPE: modalityList.add(E2EConstants.FINGERFETCH); @@ -107,29 +112,31 @@ else if (step.getScenario().getVidPersonaProp().containsKey(vid)) modalityKeyTogetBioValue = bioSubType; break; default: - this.hasError=true; + this.hasError = true; throw new RigInternalError("Given BIO Type in device property file is not valid"); } } deviceProp.setProperty("individualIdType", "VID"); - bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList,step); + bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList, step); String fileName = BIOMETRIC_FACE; bioAuth.isInternal = false; Object[] casesList = bioAuth.getYmlTestData(fileName); - if (bioResponse != null && !bioResponse.isEmpty() && modalityKeyTogetBioValue!= null) { - String bioValue = JsonPrecondtion.getValueFromJson(bioResponse, modalityKeyTogetBioValue); - - byte[] decodedBioMetricValue = Base64.getUrlDecoder().decode(bioValue); - bioValue = Base64.getEncoder().encodeToString(decodedBioMetricValue); - - if(bioValue== null || bioValue.length()<100) - throw new RigInternalError("Not able to get the bio value for field "+modalityToLog+" from persona"); - for (Object object : casesList) { - TestCaseDTO test = (TestCaseDTO) object; - packetUtility.bioAuth(modalityToLog, bioValue, vid, deviceProp, test, bioAuth,step); + if (bioResponse != null && !bioResponse.isEmpty() && modalityKeyTogetBioValue != null) { + String bioValue = JsonPrecondtion.getValueFromJson(bioResponse, modalityKeyTogetBioValue); + + byte[] decodedBioMetricValue = Base64.getUrlDecoder().decode(bioValue); + bioValue = Base64.getEncoder().encodeToString(decodedBioMetricValue); + + if (bioValue == null || bioValue.length() < 100) + throw new RigInternalError( + "Not able to get the bio value for field " + modalityToLog + " from persona"); + for (Object object : casesList) { + TestCaseDTO test = (TestCaseDTO) object; + packetUtility.bioAuth(modalityToLog, bioValue, vid, deviceProp, test, bioAuth, step); } } - }}} - \ No newline at end of file + } + } +} diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycDemo.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycDemo.java index 846257dd5..1ab53eb16 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycDemo.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycDemo.java @@ -1,6 +1,5 @@ package io.mosip.testrig.dslrig.ivv.e2e.methods; -import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -10,23 +9,28 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.utils.AdminTestException; import io.mosip.testrig.apirig.utils.AuthenticationTestException; import io.mosip.testrig.apirig.testrunner.BaseTestCase; -import io.mosip.testrig.apirig.testscripts.DemoAuthSimplePostForAutoGenId; +import io.mosip.testrig.apirig.testscripts.DemoAuth; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class EkycDemo extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(EkycDemo.class); private static final String DEMOPATH = "idaData/DemoAuth/DemoKYC.yml"; - DemoAuthSimplePostForAutoGenId demoAuth = new DemoAuthSimplePostForAutoGenId(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -34,6 +38,9 @@ public class EkycDemo extends BaseTestCaseUtil implements StepInterface { logger.setLevel(Level.ERROR); } + @Autowired + private DemoAuth demoAuth; + @Override public void run() throws RigInternalError { String demofields = null; @@ -51,7 +58,7 @@ public void run() throws RigInternalError { if (step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Parameter is missing from DSL step"); - this.hasError=true; + this.hasError = true; throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); } else { demofields = step.getParameters().get(0); @@ -89,20 +96,17 @@ public void run() throws RigInternalError { } else vidList = new ArrayList<>(step.getScenario().getVidPersonaProp().stringPropertyNames()); - Object[] testObj = demoAuth.getYmlTestData(DEMOPATH); - TestCaseDTO test = (TestCaseDTO) testObj[0]; - for (String uin : uinList) { String personFilePathvalue = null; + if (step.getParameters().size() > 2) { personFilePathvalue = _personFilePath; } else if (step.getScenario().getUinPersonaProp().containsKey(uin)) personFilePathvalue = step.getScenario().getUinPersonaProp().getProperty(uin); - else - { - this.hasError=true; + else { + this.hasError = true; throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); - } + } List demoFetchList = new ArrayList(); demoFetchList.add(E2EConstants.DEMOFETCH); @@ -110,6 +114,9 @@ public void run() throws RigInternalError { List addressFetchList = new ArrayList(); addressFetchList.add(E2EConstants.DEMOADDRESSFETCH); addressResponse = packetUtility.retrieveBiometric(personFilePathvalue, addressFetchList, step); + + Object[] testObj = demoAuth.getYmlTestData(DEMOPATH); + TestCaseDTO test = (TestCaseDTO) testObj[0]; String input = test.getInput(); input = JsonPrecondtion.parseAndReturnJsonContent(input, uin, "individualId"); JSONObject inputJson = new JSONObject(input); @@ -122,13 +129,14 @@ public void run() throws RigInternalError { demoFieldValueKey = E2EConstants.DEMODOB; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); - if (demoValue == null) - {this.hasError=true; - throw new RigInternalError( + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - - }inputJson.put(demoField, demoValue); - + + } + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); + break; case E2EConstants.DEMOEMAIL: @@ -136,21 +144,23 @@ public void run() throws RigInternalError { demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); if (demoValue == null) { - this.hasError=true; + this.hasError = true; throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); } - inputJson.put(demoField, demoValue); + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); break; case E2EConstants.DEMOYMLPHONE: demoFieldValueKey = E2EConstants.DEMOPHONE; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values - if (demoValue == null) - {this.hasError=true;throw new RigInternalError( + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }inputJson.put(demoField, demoValue); + } + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); break; case E2EConstants.DEMOADDRESSFETCH: @@ -188,7 +198,7 @@ public void run() throws RigInternalError { addressLine3Obj.put("language", BaseTestCase.getLanguageList().get(0)); addressLine3Obj.put("value", addLine3); addressLine3Array.put(addressLine3Obj); - inputJson.put(E2EConstants.DEMOADDRESSLINE3, addressLine3Array); + inputJson.getJSONObject("identityRequest").put(E2EConstants.DEMOADDRESSLINE3, addressLine3Array); break; case E2EConstants.DEMONAME: @@ -199,16 +209,18 @@ public void run() throws RigInternalError { E2EConstants.DEMOFETCH + "." + E2EConstants.DEMOMNAME); lastNm = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + E2EConstants.DEMOLNAME); - if (firstNm == null || midNm == null || lastNm == null) - {this.hasError=true; throw new RigInternalError( + if (firstNm == null || midNm == null || lastNm == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }fullname = firstNm + " " + midNm + " " + lastNm; + } + fullname = firstNm + " " + midNm + " " + lastNm; JSONArray nameArray = new JSONArray(); JSONObject nameObj = new JSONObject(); nameObj.put("language", BaseTestCase.getLanguageList().get(0)); nameObj.put("value", fullname); nameArray.put(nameObj); - inputJson.put(demoField, nameArray); + inputJson.getJSONObject("identityRequest").put(demoField, nameArray); break; case E2EConstants.DEMOGENDER: @@ -223,11 +235,12 @@ public void run() throws RigInternalError { if (demoValue == null) throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - inputJson.put(demoField, genArray); + inputJson.getJSONObject("identityRequest").put(demoField, genArray); break; default: - this.hasError=true;throw new RigInternalError("Given DEMO doesn't match with the options in the script"); + this.hasError = true; + throw new RigInternalError("Given DEMO doesn't match with the options in the script"); } } @@ -247,29 +260,19 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") casesListUIN = demoAuth.getYmlTestData(DEMOPATH); casesListVID = demoAuth.getYmlTestData(DEMOPATH); } - - // inputJson.put("identityRequest", identityReqJson.toString()); - if (idType.contains("UIN") || idType.contains("uin")) { casesListUIN = demoAuth.getYmlTestData(DEMOPATH); } - if (casesListUIN != null) { for (Object object : casesListUIN) { test = (TestCaseDTO) object; - test.setEndPoint(test.getEndPoint().replace("$PartnerKey$", partnerKeyUrl)); - test.setEndPoint(test.getEndPoint().replace("$PartnerName$", partnerId)); - test.setEndPoint(test.getEndPoint().replace("uinnumber", uin)); test.setInput(inputJson.toString()); try { - try { - demoAuth.test(test); - } catch (NoSuchAlgorithmException e) { - logger.error(e.getMessage()); - } + demoAuth.test(test); } catch (AuthenticationTestException | AdminTestException e) { - this.hasError=true;throw new RigInternalError(e.getMessage()); - + logger.error(e.getMessage()); + this.hasError = true; + throw new RigInternalError(e.getMessage()); } } } @@ -278,21 +281,28 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") for (String vid : vidList) { String personFilePathvalue = null; + if (step.getParameters().size() > 2) { personFilePathvalue = _personFilePath; } else if (step.getScenario().getVidPersonaProp().containsKey(vid)) personFilePathvalue = step.getScenario().getVidPersonaProp().getProperty(vid); - else - {this.hasError=true;throw new RigInternalError("Persona doesn't exist for the given UIN " + vid); - } + else { + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given UIN " + vid); + } + List demoFetchList = new ArrayList(); demoFetchList.add(E2EConstants.DEMOFETCH); demoResponse = packetUtility.retrieveBiometric(personFilePathvalue, demoFetchList, step); List addressFetchList = new ArrayList(); addressFetchList.add(E2EConstants.DEMOADDRESSFETCH); addressResponse = packetUtility.retrieveBiometric(personFilePathvalue, addressFetchList, step); + Object[] testObj = demoAuth.getYmlTestData(DEMOPATH); + TestCaseDTO test = (TestCaseDTO) testObj[0]; + String input = test.getInput(); input = JsonPrecondtion.parseAndReturnJsonContent(input, vid, "individualId"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, "VID", "individualIdType"); JSONObject inputJson = new JSONObject(input); for (String demoField : demofieldList) { String demoFieldValueKey = null; @@ -303,20 +313,24 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") demoFieldValueKey = E2EConstants.DEMODOB; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values - if (demoValue == null) - {this.hasError=true;throw new RigInternalError( + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }inputJson.put(demoField, demoValue); + } + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); break; case E2EConstants.DEMOEMAIL: demoFieldValueKey = E2EConstants.DEMOEMAIL; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values - if (demoValue == null) - {this.hasError=true;throw new RigInternalError( + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }inputJson.put(demoField, demoValue); + } + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); break; case E2EConstants.DEMOYMLPHONE: @@ -324,9 +338,11 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values if (demoValue == null) { - this.hasError=true; throw new RigInternalError( + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }inputJson.put(demoField, demoValue); + } + inputJson.getJSONObject("identityRequest").put(demoField, demoValue); break; case E2EConstants.DEMOADDRESSFETCH: @@ -339,12 +355,14 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") addLine3 = JsonPrecondtion.JsonObjSimpleParsing(addressResponse, E2EConstants.DEMOADDRESSFETCH, E2EConstants.DEMOADDRESSLINE3); } catch (Exception e) { - this.hasError=true;throw new RigInternalError(e.getMessage()); + this.hasError = true; + throw new RigInternalError(e.getMessage()); } - if (addLine1 == null || addLine2 == null || addLine3 == null) - {this.hasError=true;throw new RigInternalError( + if (addLine1 == null || addLine2 == null || addLine3 == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - } + } JSONArray addressLine1Array = new JSONArray(); JSONObject addressLine1Obj = new JSONObject(); addressLine1Obj.put("language", BaseTestCase.getLanguageList().get(0)); @@ -364,7 +382,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") addressLine3Obj.put("language", BaseTestCase.getLanguageList().get(0)); addressLine3Obj.put("value", addLine3); addressLine3Array.put(addressLine3Obj); - inputJson.put(E2EConstants.DEMOADDRESSLINE3, addressLine3Array); + inputJson.getJSONObject("identityRequest").put(E2EConstants.DEMOADDRESSLINE3, addressLine3Array); break; case E2EConstants.DEMONAME: @@ -375,35 +393,40 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") E2EConstants.DEMOFETCH + "." + E2EConstants.DEMOMNAME); lastNm = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + E2EConstants.DEMOLNAME); - if (firstNm == null || midNm == null || lastNm == null) - {this.hasError=true;throw new RigInternalError( + if (firstNm == null || midNm == null || lastNm == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }fullname = firstNm + " " + midNm + " " + lastNm; + } + fullname = firstNm + " " + midNm + " " + lastNm; JSONArray nameArray = new JSONArray(); JSONObject nameObj = new JSONObject(); nameObj.put("language", BaseTestCase.getLanguageList().get(0)); nameObj.put("value", fullname); nameArray.put(nameObj); - inputJson.put(demoField, nameArray); + inputJson.getJSONObject("identityRequest").put(demoField, nameArray); break; case E2EConstants.DEMOGENDER: demoFieldValueKey = E2EConstants.DEMOGENDER; demoValue = JsonPrecondtion.getValueFromJson(demoResponse, - E2EConstants.DEMOFETCH + "." + demoFieldValueKey); // array fill all the values + E2EConstants.DEMOFETCH + "." + demoFieldValueKey); JSONArray genArray = new JSONArray(); JSONObject genderObj = new JSONObject(); genderObj.put("language", BaseTestCase.getLanguageList().get(0)); genderObj.put("value", demoValue); genArray.put(genderObj); - if (demoValue == null) - {this.hasError=true;throw new RigInternalError( + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError( "Unable to get the Demo value for field " + demoField + " from Persona"); - }inputJson.put(demoField, genArray); + } + inputJson.getJSONObject("identityRequest").put(demoField, genArray); break; default: - this.hasError=true;throw new RigInternalError("Given DEMO doesn't match with the options in the script"); + this.hasError = true; + throw new RigInternalError("Given DEMO doesn't match with the options in the script"); } } @@ -424,8 +447,6 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") casesListVID = demoAuth.getYmlTestData(DEMOPATH); } - // inputJson.put("identityRequest", identityReqJson.toString()); - if (idType.contains("VID") || idType.contains("vid")) { casesListVID = demoAuth.getYmlTestData(DEMOPATH); } @@ -433,19 +454,13 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") if (casesListVID != null) { for (Object object : casesListVID) { test = (TestCaseDTO) object; - test.setEndPoint(test.getEndPoint().replace("$PartnerKey$", partnerKeyUrl)); - test.setEndPoint(test.getEndPoint().replace("$PartnerName$", partnerId)); - test.setEndPoint(test.getEndPoint().replace("uinnumber", vid)); test.setInput(inputJson.toString()); try { - try { - demoAuth.test(test); - } catch (NoSuchAlgorithmException e) { - logger.error(e.getMessage()); - } + demoAuth.test(test); } catch (AuthenticationTestException | AdminTestException e) { - this.hasError=true;throw new RigInternalError(e.getMessage()); - + logger.error(e.getMessage()); + this.hasError = true; + throw new RigInternalError(e.getMessage()); } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycOtp.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycOtp.java index 6bb1c0271..a8c21baf2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycOtp.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EkycOtp.java @@ -7,6 +7,10 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -19,12 +23,13 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class EkycOtp extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(EkycOtp.class); private static final String EKYCOTP = "idaData/EkycOtp/EkycOtp.yml"; Properties uinResidentDataPathFinalProps = new Properties(); - OtpAuthNew otpauth = new OtpAuthNew(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -32,63 +37,52 @@ public class EkycOtp extends BaseTestCaseUtil implements StepInterface { logger.setLevel(Level.ERROR); } + @Autowired + private OtpAuthNew otpauth; + @Override public void run() throws RigInternalError, FeatureNotSupportedError { - // AuthPartnerProcessor.startProcess(); - // step.getScenario().getUinPersonaProp().put("7209149850", - // "C:\\Users\\username\\AppData\\Local\\Temp\\residents_629388943910840643\\604866048660486.json"); - String uins = null; String vids = null; List uinList = null; List idType = BaseTestCase.getSupportedIdTypesValueFromActuator(); List vidList = null; - String emailId =""; - - - + String emailId = ""; Object[] casesListUIN = null; Object[] casesListVID = null; if (step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); - } - - - //Fetching EMAIL - if (step.getParameters().size() == 5 && step.getParameters().get(4).startsWith("$$")) { - emailId = step.getParameters().get(4); + this.hasError = true; + throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); + } + if (step.getParameters().size() == 5 && step.getParameters().get(4).startsWith("$$")) { + emailId = step.getParameters().get(4); if (emailId.startsWith("$$")) { emailId = step.getScenario().getVariables().get(emailId); } - if(emailId==null ||(emailId!=null && emailId.isBlank())) { - //in somecases Email Id is not passed so Ekyc OTP is not supported + if (emailId == null || (emailId != null && emailId.isBlank())) { throw new FeatureNotSupportedError("Email id is Empty hence we cannot perform Ekyc OTP Authentication"); - + } } - // Fetching UIN - - if (step.getParameters().size() == 5) { // "e2e_ekycOtp(uin,$$uin,vid,$$vid,$$email)" + if (step.getParameters().size() == 5) { uins = step.getParameters().get(1); if (uins.startsWith("$$")) { uins = step.getScenario().getVariables().get(uins); uinList = new ArrayList<>(Arrays.asList(uins.split("@@"))); } - } else + } else uinList = new ArrayList<>(step.getScenario().getUinPersonaProp().stringPropertyNames()); - // Fetching VID - - if (step.getParameters().size() == 5) { // "e2e_ekycOtp(uin,$$uin,vid,$$vid,$$email)" + if (step.getParameters().size() == 5) { vids = step.getParameters().get(3); if (vids.startsWith("$$")) { vids = step.getScenario().getVariables().get(vids); vidList = new ArrayList<>(Arrays.asList(vids.split("@@"))); } - } else + } else vidList = new ArrayList<>(step.getScenario().getVidPersonaProp().stringPropertyNames()); if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("UIN") @@ -108,9 +102,6 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") casesListVID = otpauth.getYmlTestData(EKYCOTP); } - // test.setEndPoint(test.getEndPoint().replace("$PartnerKey$", - // props.getProperty("partnerKey"))); - for (String uin : uinList) { Object[] testObj = otpauth.getYmlTestData(EKYCOTP); TestCaseDTO test = (TestCaseDTO) testObj[0]; @@ -121,8 +112,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } input = JsonPrecondtion.parseAndReturnJsonContent(input, uin, "individualId"); - input = JsonPrecondtion.parseAndReturnJsonContent(input, emailId, "otp"); - + input = JsonPrecondtion.parseAndReturnJsonContent(input, uin, "sendOtp.individualId"); test.setEndPoint(test.getEndPoint().replace("$PartnerKey$", partnerKeyUrl)); test.setEndPoint(test.getEndPoint().replace("$PartnerName$", partnerId)); test.setEndPoint(test.getEndPoint().replace("uinnumber", uin)); @@ -130,13 +120,16 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") if (casesListUIN != null) { for (Object object : casesListUIN) { test.setInput(input); -// test = (TestCaseDTO) object; try { otpauth.test(test); } catch (AuthenticationTestException e) { + this.hasError = true; logger.error(e.getMessage()); + throw new RigInternalError("EkycOtp Auth failed "); } catch (AdminTestException e) { + this.hasError = true; logger.error(e.getMessage()); + throw new RigInternalError("EkycOtp Auth failed"); } } } @@ -153,7 +146,9 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } input = JsonPrecondtion.parseAndReturnJsonContent(input, vid, "individualId"); - input = JsonPrecondtion.parseAndReturnJsonContent(input, emailId, "otp"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, vid, "sendOtp.individualId"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, "VID", "individualIdType"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, "VID", "sendOtp.individualIdType"); test.setEndPoint(test.getEndPoint().replace("$PartnerKey$", partnerKeyUrl)); test.setEndPoint(test.getEndPoint().replace("$PartnerName$", partnerId)); @@ -162,13 +157,12 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") if (casesListVID != null) { for (Object object : casesListVID) { test.setInput(input); -// test = (TestCaseDTO) object; try { otpauth.test(test); - } catch (AuthenticationTestException e) { - logger.error(e.getMessage()); - } catch (AdminTestException e) { + } catch (AuthenticationTestException | AdminTestException e) { + this.hasError = true; logger.error(e.getMessage()); + throw new RigInternalError("EkycOtp Auth failed "); } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EsignetAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EsignetAuthentication.java index 637c94157..84e2fd65f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EsignetAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/EsignetAuthentication.java @@ -7,6 +7,9 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -20,6 +23,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.GlobalConstants; +@Scope("prototype") +@Component public class EsignetAuthentication extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(EsignetAuthentication.class); private static final String AuthenticateUserYml = "idaData/AuthenticateUser/AuthenticateUser.yml"; @@ -35,8 +40,6 @@ public class EsignetAuthentication extends BaseTestCaseUtil implements StepInter @Override public void run() throws RigInternalError, FeatureNotSupportedError { - - // check if esignet is installed on the target system if (ConfigManager.isInServiceNotDeployedList(GlobalConstants.ESIGNET)) { throw new FeatureNotSupportedError("eSignet is not deployed. Hence skipping the step"); } @@ -57,24 +60,23 @@ public void run() throws RigInternalError, FeatureNotSupportedError { TestCaseDTO test = (TestCaseDTO) testObj[0]; - if (step.getParameters().size() == 6) { emailId = step.getParameters().get(3); if (emailId.startsWith("$$")) { emailId = step.getScenario().getVariables().get(emailId); } - - if(emailId==null ||(emailId!=null && emailId.isBlank())) { - //in somecases Email Id is not passed so E-signet OTP Authentication is not supported - throw new FeatureNotSupportedError("Email id is Empty hence we cannot perform E-signet OTP Authentication"); - + + if (emailId == null || (emailId != null && emailId.isBlank())) { + throw new FeatureNotSupportedError( + "Email id is Empty hence we cannot perform E-signet OTP Authentication"); + } } - + if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("transactionId parameter is missing from DSL step"); - this.hasError=true; + this.hasError = true; throw new RigInternalError("transactionId paramter is missing in step: " + step.getName()); } else { transactionId1 = (String) step.getScenario().getOidcClientProp().get("transactionId1"); @@ -84,7 +86,7 @@ public void run() throws RigInternalError, FeatureNotSupportedError { if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("transa from DSL step"); - this.hasError=true; + this.hasError = true; throw new RigInternalError( "transactionId parameter is missingctionId paramter is missing in step: " + step.getName()); } else { @@ -93,7 +95,7 @@ public void run() throws RigInternalError, FeatureNotSupportedError { } if (step.getParameters().size() == 6 && step.getParameters().get(1).startsWith("$$")) { - uins = step.getParameters().get(1); //"e2e_IdpAuthentication($$transactionId1,$$uin,OTP,$$email,$$vid,$$transactionId2)" + uins = step.getParameters().get(1); if (uins.startsWith("$$")) { uins = step.getScenario().getVariables().get(uins); uinList = new ArrayList<>(Arrays.asList(uins.split("@@"))); @@ -124,9 +126,6 @@ public void run() throws RigInternalError, FeatureNotSupportedError { } - - - if (step.getParameters().size() == 6 && step.getParameters().get(2).contains("OTP")) { Object[] testObjForOtp = authenticateUser.getYmlTestData(OtpUserYml); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacket.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacket.java index 43bdc6c56..7fe8e8586 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacket.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacket.java @@ -2,15 +2,19 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class GenerateAndUploadPacket extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(GenerateAndUploadPacket.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -22,30 +26,35 @@ public class GenerateAndUploadPacket extends BaseTestCaseUtil implements StepInt public void run() throws RigInternalError { String responseStatus = "success"; Boolean isForChildPacket = false; - if (!step.getParameters().isEmpty() && step.getParameters().size() == 1) { // used for child packet processing + if (!step.getParameters().isEmpty() && step.getParameters().size() == 1) { isForChildPacket = Boolean.parseBoolean(step.getParameters().get(0)); - if (isForChildPacket && step.getScenario().getPrid_updateResident() != null && step.getScenario().getTemplatPath_updateResident() != null) - step.getScenario().setRid_updateResident(packetUtility.generateAndUploadPacket(step.getScenario().getPrid_updateResident(), - step.getScenario().getTemplatPath_updateResident(), step.getScenario().getCurrentStep(), - responseStatus,step)); + if (isForChildPacket && step.getScenario().getPrid_updateResident() != null + && step.getScenario().getTemplatPath_updateResident() != null) + step.getScenario().setRid_updateResident(packetUtility.generateAndUploadPacket( + step.getScenario().getPrid_updateResident(), step.getScenario().getTemplatPath_updateResident(), + step.getScenario().getCurrentStep(), responseStatus, step)); } else { - if (!step.getParameters().isEmpty() && step.getParameters().size() == 2) { // "$$rid=e2e_generateAndUploadPacket($$prid,$$templatePath)" + if (!step.getParameters().isEmpty() && step.getParameters().size() == 2) { String prid = step.getParameters().get(0); String templatePath = step.getParameters().get(1); if (prid.startsWith("$$") && templatePath.startsWith("$$")) { prid = step.getScenario().getVariables().get(prid); templatePath = step.getScenario().getVariables().get(templatePath); - String rid = packetUtility.generateAndUploadPacket(prid, templatePath, step.getScenario().getCurrentStep(), "success",step); + String rid = packetUtility.generateAndUploadPacket(prid, templatePath, + step.getScenario().getCurrentStep(), "success", step); if (step.getOutVarName() != null) step.getScenario().getVariables().put(step.getOutVarName(), rid); } } else { for (String resDataPath : step.getScenario().getResidentTemplatePaths().keySet()) { - String rid = packetUtility.generateAndUploadPacket(step.getScenario().getResidentPathsPrid().get(resDataPath), - step.getScenario().getResidentTemplatePaths().get(resDataPath), step.getScenario().getCurrentStep(), responseStatus,step); + String rid = packetUtility.generateAndUploadPacket( + step.getScenario().getResidentPathsPrid().get(resDataPath), + step.getScenario().getResidentTemplatePaths().get(resDataPath), + step.getScenario().getCurrentStep(), responseStatus, step); if (rid != null) { - step.getScenario().getPridsAndRids().put(step.getScenario().getResidentPathsPrid().get(resDataPath), rid); + step.getScenario().getPridsAndRids() + .put(step.getScenario().getResidentPathsPrid().get(resDataPath), rid); step.getScenario().getRidPersonaPath().put(rid, resDataPath); } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPrereg.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPrereg.java index 82629446d..7d3ce59c1 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPrereg.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPrereg.java @@ -2,15 +2,19 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class GenerateAndUploadPacketSkippingPrereg extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(GenerateAndUploadPacketSkippingPrereg.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -20,52 +24,57 @@ public class GenerateAndUploadPacketSkippingPrereg extends BaseTestCaseUtil impl @Override public void run() throws RigInternalError { - boolean getRidFromSync =true; - Boolean isForChildPacket=false; + boolean getRidFromSync = true; + Boolean isForChildPacket = false; String invalidMachineFlag = ""; - if(step.getParameters().size()==3 && step.getParameters().get(2).contains("invalidMachine")) { + if (step.getParameters().size() == 3 && step.getParameters().get(2).contains("invalidMachine")) { invalidMachineFlag = step.getParameters().get(2); } - if(!step.getParameters().isEmpty() && step.getParameters().size()==1) { // used for child packet processing + if (!step.getParameters().isEmpty() && step.getParameters().size() == 1) { isForChildPacket = Boolean.parseBoolean(step.getParameters().get(0)); - if (isForChildPacket && !step.getScenario().getGeneratedResidentData().isEmpty() && step.getScenario().getTemplatPath_updateResident()!=null) { - step.getScenario().setRid_updateResident(packetUtility.generateAndUploadPacketSkippingPrereg(step.getScenario().getTemplatPath_updateResident(), - step.getScenario().getGeneratedResidentData().get(0), null,step.getScenario().getCurrentStep(), "success",step,getRidFromSync,invalidMachineFlag)); + if (isForChildPacket && !step.getScenario().getGeneratedResidentData().isEmpty() + && step.getScenario().getTemplatPath_updateResident() != null) { + step.getScenario().setRid_updateResident(packetUtility.generateAndUploadPacketSkippingPrereg( + step.getScenario().getTemplatPath_updateResident(), + step.getScenario().getGeneratedResidentData().get(0), null, step.getScenario().getCurrentStep(), + "success", step, getRidFromSync, invalidMachineFlag)); } - } else if(step.getParameters().isEmpty()) { // parent or resident processing e2e_generateAndUploadPacketSkippingPrereg() + } else if (step.getParameters().isEmpty()) { for (String resDataPath : step.getScenario().getResidentTemplatePaths().keySet()) { String rid = packetUtility.generateAndUploadPacketSkippingPrereg( - step.getScenario().getResidentTemplatePaths().get(resDataPath), resDataPath,null, step.getScenario().getCurrentStep(), "success",step,getRidFromSync,invalidMachineFlag); + step.getScenario().getResidentTemplatePaths().get(resDataPath), resDataPath, null, + step.getScenario().getCurrentStep(), "success", step, getRidFromSync, invalidMachineFlag); if (rid != null) { step.getScenario().getPridsAndRids().put("0", rid); step.getScenario().getRidPersonaPath().put(rid, resDataPath); } } - - }else { + + } else { String residentPath = step.getParameters().get(0); String templatePath = step.getParameters().get(1); - - if (step.getParameters().size()==3) { + + if (step.getParameters().size() == 3) { getRidFromSync = Boolean.parseBoolean(step.getParameters().get(2)); } - - String _additionalInfoReqId=null; + + String _additionalInfoReqId = null; if (step.getParameters().size() > 3) { _additionalInfoReqId = step.getParameters().get(3); if (!_additionalInfoReqId.isEmpty() && _additionalInfoReqId.startsWith("$$")) _additionalInfoReqId = step.getScenario().getVariables().get(_additionalInfoReqId); } - - if (residentPath.startsWith("$$") && templatePath.startsWith("$$")) { //"$$rid=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath,$$templatePath)" --->now "$$rid=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath,$$templatePath,$$additionalInfoReqId)" + + if (residentPath.startsWith("$$") && templatePath.startsWith("$$")) { residentPath = step.getScenario().getVariables().get(residentPath); templatePath = step.getScenario().getVariables().get(templatePath); - String rid = packetUtility.generateAndUploadPacketSkippingPrereg(templatePath, residentPath,_additionalInfoReqId, - step.getScenario().getCurrentStep(), "success",step,getRidFromSync,invalidMachineFlag); + String rid = packetUtility.generateAndUploadPacketSkippingPrereg(templatePath, residentPath, + _additionalInfoReqId, step.getScenario().getCurrentStep(), "success", step, getRidFromSync, + invalidMachineFlag); if (step.getOutVarName() != null) step.getScenario().getVariables().put(step.getOutVarName(), rid); - } + } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPreregWithInvalidCbeff.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPreregWithInvalidCbeff.java index b9e14f016..aeec860df 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPreregWithInvalidCbeff.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAndUploadPacketSkippingPreregWithInvalidCbeff.java @@ -2,15 +2,19 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class GenerateAndUploadPacketSkippingPreregWithInvalidCbeff extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(GenerateAndUploadPacketSkippingPreregWithInvalidCbeff.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -23,22 +27,20 @@ public void run() throws RigInternalError { boolean getRidFromSync = true; Boolean isForChildPacket = false; String invalidMachineFlag = ""; - if (!step.getParameters().isEmpty() && step.getParameters().size() == 1) { // used for child packet processing + if (!step.getParameters().isEmpty() && step.getParameters().size() == 1) { isForChildPacket = Boolean.parseBoolean(step.getParameters().get(0)); if (isForChildPacket && !step.getScenario().getGeneratedResidentData().isEmpty() && step.getScenario().getTemplatPath_updateResident() != null) { - step.getScenario() - .setRid_updateResident(packetUtility.generateAndUploadPacketSkippingPrereg( - step.getScenario().getTemplatPath_updateResident(), - step.getScenario().getGeneratedResidentData().get(0), null, - step.getScenario().getCurrentStep(), "success", step, getRidFromSync,invalidMachineFlag)); + step.getScenario().setRid_updateResident(packetUtility.generateAndUploadPacketSkippingPrereg( + step.getScenario().getTemplatPath_updateResident(), + step.getScenario().getGeneratedResidentData().get(0), null, step.getScenario().getCurrentStep(), + "success", step, getRidFromSync, invalidMachineFlag)); } - } else if (step.getParameters().isEmpty()) { // parent or resident processing - // e2e_generateAndUploadPacketSkippingPrereg() + } else if (step.getParameters().isEmpty()) { for (String resDataPath : step.getScenario().getResidentTemplatePaths().keySet()) { String rid = packetUtility.generateAndUploadPacketSkippingPrereg( step.getScenario().getResidentTemplatePaths().get(resDataPath), resDataPath, null, - step.getScenario().getCurrentStep(), "success", step, getRidFromSync,invalidMachineFlag); + step.getScenario().getCurrentStep(), "success", step, getRidFromSync, invalidMachineFlag); if (rid != null) { step.getScenario().getPridsAndRids().put("0", rid); step.getScenario().getRidPersonaPath().put(rid, resDataPath); @@ -61,14 +63,12 @@ public void run() throws RigInternalError { _additionalInfoReqId = step.getScenario().getVariables().get(_additionalInfoReqId); } - if (residentPath.startsWith("$$") && templatePath.startsWith("$$")) { // "$$rid=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath,$$templatePath)" - // --->now - // "$$rid=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath,$$templatePath,$$additionalInfoReqId)" + if (residentPath.startsWith("$$") && templatePath.startsWith("$$")) { residentPath = step.getScenario().getVariables().get(residentPath); templatePath = step.getScenario().getVariables().get(templatePath); - String rid = packetUtility.generateAndUploadWithInvalidCbeffPacketSkippingPrereg(templatePath, residentPath, - _additionalInfoReqId, step.getScenario().getCurrentStep(), "success", step, getRidFromSync,invalidMachineFlag - ); + String rid = packetUtility.generateAndUploadWithInvalidCbeffPacketSkippingPrereg(templatePath, + residentPath, _additionalInfoReqId, step.getScenario().getCurrentStep(), "success", step, + getRidFromSync, invalidMachineFlag); if (step.getOutVarName() != null) step.getScenario().getVariables().put(step.getOutVarName(), rid); } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAuthCertifcates.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAuthCertifcates.java index 8b7c5cfae..3d2e8ae49 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAuthCertifcates.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateAuthCertifcates.java @@ -2,6 +2,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.AdminTestUtil; import io.mosip.testrig.apirig.utils.CertificateGenerationUtil; @@ -11,10 +13,11 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; - +@Scope("prototype") +@Component public class GenerateAuthCertifcates extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(GenerateAuthCertifcates.class); - PartnerRegistration partnerRegistration=new PartnerRegistration(); + PartnerRegistration partnerRegistration = new PartnerRegistration(); static { if (ConfigManager.IsDebugEnabled()) @@ -25,28 +28,26 @@ public class GenerateAuthCertifcates extends BaseTestCaseUtil implements StepInt @Override public void run() throws RigInternalError { - //AuthPartnerProcessor.startProcess(); + // AuthPartnerProcessor.startProcess(); PartnerRegistration.deleteCertificates(); CertificateGenerationUtil.getThumbprints(); AdminTestUtil.createAndPublishPolicy(); PartnerRegistration.generateAndGetPartnerKeyUrl(); - //Genrating Kyc Certificate + // Genrating Kyc Certificate AdminTestUtil.createAndPublishPolicyForKyc(); - kycPartnerKeyUrl = PartnerRegistration.generateAndGetEkycPartnerKeyUrl(); - + kycPartnerKeyUrl = PartnerRegistration.generateAndGetEkycPartnerKeyUrl(); + String uriPartsforkyc[] = kycPartnerKeyUrl.split("/"); kycPartnerId = uriPartsforkyc[uriPartsforkyc.length - 2]; - BaseTestCaseUtil.kycPartnerKeyUrl=kycPartnerKeyUrl; - - - partnerKeyUrl= PartnerRegistration.partnerKeyUrl; + BaseTestCaseUtil.kycPartnerKeyUrl = kycPartnerKeyUrl; + + partnerKeyUrl = PartnerRegistration.partnerKeyUrl; String uriParts[] = PartnerRegistration.partnerKeyUrl.split("/"); partnerId = uriParts[uriParts.length - 2]; logger.info(partnerKeyUrl); - BaseTestCaseUtil.partnerKeyUrl=partnerKeyUrl; + BaseTestCaseUtil.partnerKeyUrl = partnerKeyUrl; logger.info(partnerKeyUrl); - } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVID.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVID.java index 46ee4f70f..99e4d24f3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVID.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVID.java @@ -10,6 +10,9 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -23,6 +26,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.PersonaDataManager; import io.restassured.response.Response; +@Scope("prototype") +@Component public class GenerateVID extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(GenerateVID.class); private static final String GenerateVIDYml = "idaData/GenerateVID/createGenerateVID.yml"; @@ -47,8 +52,6 @@ public void run() throws RigInternalError { String emailId = ""; boolean getOtpByPhone = Boolean.FALSE; String vid = ""; - // String transactionID = (step.getScenario().getId() + - // RandomStringUtils.randomNumeric(8)).substring(0, 10); String transactionID = (step.getScenario().getId() + RandomStringUtils.randomNumeric(11)); transactionID = transactionID.substring(0, 10); logger.info(transactionID); @@ -62,7 +65,7 @@ public void run() throws RigInternalError { } if (step.getParameters().size() == 3 && step.getParameters().get(1).startsWith("$$")) { - uins = step.getParameters().get(1); // "$$vid=e2e_GenerateVID(Perpetual,$$uin,$$email)" + uins = step.getParameters().get(1); if (uins.startsWith("$$")) { uins = step.getScenario().getVariables().get(uins); uinList = new ArrayList<>(Arrays.asList(uins.split("@@"))); @@ -75,7 +78,7 @@ public void run() throws RigInternalError { uinList = new ArrayList<>(step.getScenario().getUinPersonaProp().stringPropertyNames()); if (step.getParameters().size() == 3 && step.getParameters().get(2).startsWith("$$")) { - emailId = step.getParameters().get(2); // "$$vid=e2e_GenerateVID(Perpetual,$$uin,$$email)" + emailId = step.getParameters().get(2); if (emailId.contentEquals("$$phone")) getOtpByPhone = true; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVIDWithoutOTP.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVIDWithoutOTP.java index 0afeab2b0..04545915c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVIDWithoutOTP.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GenerateVIDWithoutOTP.java @@ -10,6 +10,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; @@ -22,12 +24,14 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class GenerateVIDWithoutOTP extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(GenerateVIDWithoutOTP.class); private static final String GenerateVID = "idaData/CreateVID/CreateVid.yml"; Properties uinResidentDataPathFinalProps = new Properties(); SimplePostForAutoGenId generatevid = new SimplePostForAutoGenId(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -43,13 +47,14 @@ public void run() throws RigInternalError { List uinList = null; if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("VID Type[Perpetual/Temporary] parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("VID Type[Perpetual/Temporary] paramter is missing in step: " + step.getName()); + this.hasError = true; + throw new RigInternalError("VID Type[Perpetual/Temporary] paramter is missing in step: " + step.getName()); } else { vidtype = step.getParameters().get(0); } - if (step.getParameters().size() == 2 && step.getParameters().get(1).startsWith("$$")) { - uins = step.getParameters().get(1); //"$$vidwithoutotp=e2e_GenerateVID(Perpetual,$$uin)" + if (step.getParameters().size() == 2 && step.getParameters().get(1).startsWith("$$")) { + uins = step.getParameters().get(1); // "$$vidwithoutotp=e2e_GenerateVID(Perpetual,$$uin)" if (uins.startsWith("$$")) { uins = step.getScenario().getVariables().get(uins); uinList = new ArrayList<>(Arrays.asList(uins.split("@@"))); @@ -60,12 +65,10 @@ public void run() throws RigInternalError { uinList = new ArrayList<>(Arrays.asList(uins.split("@@"))); } else uinList = new ArrayList<>(step.getScenario().getUinPersonaProp().stringPropertyNames()); - Object[] testObj = generatevid.getYmlTestData(GenerateVID); TestCaseDTO test = (TestCaseDTO) testObj[0]; - for (String uin : uinList) { String input = test.getInput(); @@ -93,7 +96,8 @@ public void run() throws RigInternalError { } } catch (AuthenticationTestException | AdminTestException e) { - this.hasError=true;throw new RigInternalError(e.getMessage()); + this.hasError = true; + throw new RigInternalError(e.getMessage()); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetAdditionalReqId.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetAdditionalReqId.java index 36c6b94c5..12bad07e9 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetAdditionalReqId.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetAdditionalReqId.java @@ -6,6 +6,8 @@ import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.MockSMTPListener; @@ -13,10 +15,12 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class GetAdditionalReqId extends BaseTestCaseUtil implements StepInterface { // $$additionalReqId=e2e_getAdditionalReqId(10) static Logger logger = Logger.getLogger(GetAdditionalReqId.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -30,24 +34,18 @@ public void run() throws RigInternalError { String email = null; if (!step.getParameters().isEmpty() && step.getParameters().size() > 0) email = step.getParameters().get(0) + "@mosip.io"; - - - - String additonalInfoRequestId = MockSMTPListener.getAdditionalReqId(email).trim(); - - if (additonalInfoRequestId != null && !additonalInfoRequestId.isEmpty() - && !additonalInfoRequestId.equals("{Failed}")) { - + String additonalInfoRequestId = MockSMTPListener.getAdditionalReqId(email).trim(); + if (additonalInfoRequestId != null && !additonalInfoRequestId.isEmpty() + && !additonalInfoRequestId.equals("{Failed}")) { logger.info("AdditionalInfoReqId retrieved for emailID: " + email + ": " + additonalInfoRequestId); - additonalInfoRequestId = additonalInfoRequestId+ "-BIOMETRIC_CORRECTION-1"; - - if (step.getOutVarName() != null) - step.getScenario().getVariables().put(step.getOutVarName(), additonalInfoRequestId); - return; - } - - this.hasError=true; + additonalInfoRequestId = additonalInfoRequestId + "-BIOMETRIC_CORRECTION-1"; + if (step.getOutVarName() != null) + step.getScenario().getVariables().put(step.getOutVarName(), additonalInfoRequestId); + return; + } + + this.hasError = true; throw new RigInternalError("Failed to retrieve the value for addtionalInfoRequestId from email"); } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBioModalityHash.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBioModalityHash.java index 3b42ff8ba..eed908d63 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBioModalityHash.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBioModalityHash.java @@ -8,6 +8,8 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -17,6 +19,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; +@Scope("prototype") +@Component public class GetBioModalityHash extends BaseTestCaseUtil implements StepInterface { Map modalityHashValueMap = new HashMap<>(); static Logger logger = Logger.getLogger(GetBioModalityHash.class); @@ -33,7 +37,7 @@ public void run() throws RigInternalError { List inputList = null; String personaPath = null; String personaId = null; - if (step.getParameters().size() == 2) { /// id=878787877 + if (step.getParameters().size() == 2) { personaId = step.getParameters().get(0); if (!personaId.equals("-1")) { if (step.getScenario().getResidentPersonaIdPro().get(personaId) == null) { @@ -54,9 +58,7 @@ public void run() throws RigInternalError { break; } } - } else if (!step.getParameters().isEmpty() && step.getParameters().size() == 3) { // "$$modalityHashValue=e2e_getBioModalityHash(-1,Right - // IndexFinger@@Left - // LittleFinger,$$personaFilePath)" + } else if (!step.getParameters().isEmpty() && step.getParameters().size() == 3) { personaPath = step.getParameters().get(2); if (personaPath.startsWith("$$")) { personaPath = step.getScenario().getVariables().get(personaPath); @@ -65,7 +67,7 @@ public void run() throws RigInternalError { this.hasError = true; throw new RigInternalError("missing input param [personaid,List modalitySubType]"); } - inputList = PacketUtility.getParamsArg(step.getParameters().get(1), "@@"); // List ModalitysubTypeList + inputList = PacketUtility.getParamsArg(step.getParameters().get(1), "@@"); inputList.stream().forEach(key -> modalitySubTypeList.add(key)); String modalityKeyTogetHashValue = null; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBlocklistedWord.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBlocklistedWord.java index 86a80aa43..cf59e92b7 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBlocklistedWord.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetBlocklistedWord.java @@ -6,6 +6,9 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.utils.GlobalConstants; import io.mosip.testrig.apirig.utils.KernelAuthentication; @@ -16,11 +19,13 @@ import io.restassured.response.Response; +@Scope("prototype") +@Component public class GetBlocklistedWord extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(GetBlocklistedWord.class); KernelAuthentication kernelAuthLib = new KernelAuthentication(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -45,11 +50,11 @@ public void run() throws RigInternalError { JSONObject jsonObject = new JSONObject(response.getBody().asString()); JSONArray blocklistedWords = jsonObject.getJSONObject("response").getJSONArray("blocklistedwords"); - blocklistedWord = blocklistedWords.getJSONObject(0).getString("word"); - logger.info("blocklistedWord is :" + blocklistedWord); - if (step.getOutVarName() != null) - step.getScenario().getVariables().put(step.getOutVarName(), blocklistedWord); - return; + blocklistedWord = blocklistedWords.getJSONObject(0).getString("word"); + logger.info("blocklistedWord is :" + blocklistedWord); + if (step.getOutVarName() != null) + step.getScenario().getVariables().put(step.getOutVarName(), blocklistedWord); + return; } } catch (Exception e) { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetEmailByUIN.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetEmailByUIN.java index c76fda79f..0cfaf06a6 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetEmailByUIN.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetEmailByUIN.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.apache.log4j.Level; import org.apache.log4j.Logger; import io.mosip.testrig.apirig.dto.TestCaseDTO; @@ -18,67 +20,65 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class GetEmailByUIN extends BaseTestCaseUtil implements StepInterface { private static final Logger logger = Logger.getLogger(GetEmailByUIN.class); private static final String GetEmailYml = "idaData/RetrieveIdentityByUin/RetrieveIdentityByUin.yml"; GetWithParam getEmail = new GetWithParam(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); else logger.setLevel(Level.ERROR); } - + @Override - public void run() throws RigInternalError { + public void run() throws RigInternalError { step.getScenario().getVidPersonaProp().clear(); - String emailId =""; + String emailId = ""; String uins = null; List uinList = null; Object[] testObj = getEmail.getYmlTestData(GetEmailYml); TestCaseDTO test = (TestCaseDTO) testObj[0]; - if (step.getParameters().size() == 1 && step.getParameters().get(0).startsWith("$$")) { - uins = step.getParameters().get(0); //$$email=e2e_getEmailByUIN($$uin) + if (step.getParameters().size() == 1 && step.getParameters().get(0).startsWith("$$")) { + uins = step.getParameters().get(0); if (uins.startsWith("$$")) { uins = step.getScenario().getVariables().get(uins); uinList = new ArrayList<>(Arrays.asList(uins.split("@@"))); } - + String input = test.getInput(); input = JsonPrecondtion.parseAndReturnJsonContent(input, uins, "id"); test.setInput(input); - try { - getEmail.test(test); - + try { + getEmail.test(test); + Response response = getEmail.response; JSONObject responseJson = new JSONObject(response.asString()); - JSONObject responseData = responseJson.getJSONObject("response"); - if(OutputValidationUtil.doesResponseHasErrors(responseJson.toString())) { + JSONObject responseData = responseJson.getJSONObject("response"); + if (OutputValidationUtil.doesResponseHasErrors(responseJson.toString())) { logger.error("Failed to extract Email From UIN"); - this.hasError=true; - throw new RigInternalError( - "Failed to extract Email From UIN: " + step.getName()); + this.hasError = true; + throw new RigInternalError("Failed to extract Email From UIN: " + step.getName()); } - + JSONObject identityData = responseData.getJSONObject("identity"); - + emailId = identityData.getString("email"); - - - } catch (AuthenticationTestException e) { - logger.error(e.getMessage()); - } catch (AdminTestException e) { - logger.error(e.getMessage()); - } - catch (Exception e) { - logger.error(e.getMessage()); - } - - if (step.getOutVarName() != null) - step.getScenario().getVariables().put(step.getOutVarName(), emailId); - + + } catch (AuthenticationTestException e) { + logger.error(e.getMessage()); + } catch (AdminTestException e) { + logger.error(e.getMessage()); + } catch (Exception e) { + logger.error(e.getMessage()); + } + + if (step.getOutVarName() != null) + step.getScenario().getVariables().put(step.getOutVarName(), emailId); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetIdentityByRid.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetIdentityByRid.java index 712c421b6..aed0d2faa 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetIdentityByRid.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetIdentityByRid.java @@ -8,6 +8,9 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.utils.FileUtil; import io.mosip.testrig.apirig.utils.RestClient; import io.mosip.testrig.apirig.utils.GlobalMethods; @@ -20,65 +23,61 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.TestResources; import io.restassured.response.Response; +@Scope("prototype") +@Component public class GetIdentityByRid extends BaseTestCaseUtil implements StepInterface { private String getIdentityUrl = "/idrepository/v1/identity/idvid/"; private String identitypath = "preReg/identity/"; static Logger logger = Logger.getLogger(GetIdentityByRid.class); KernelAuthentication kauth = new KernelAuthentication(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); else logger.setLevel(Level.ERROR); } - - @SuppressWarnings("static-access") + + @SuppressWarnings("static-access") @Override - public void run() throws RigInternalError { - getIdentity(this.step.getScenario().getPridsAndRids()); - } + public void run() throws RigInternalError { + getIdentity(this.step.getScenario().getPridsAndRids()); + } - public void getIdentity(HashMap rids) throws RigInternalError - { - step.getScenario().getUinReqIds().clear(); - for(String rid: rids.values()) - { - if(rid!=null) { - //rid = "6834197843"; this is to use uin instead of rid when Packet is not synced - - long startTime = System.currentTimeMillis(); - logger.info(this.getClass().getSimpleName()+" starts at..."+startTime +" MilliSec"); - Response response = RestClient.getRequestWithCookie(BaseTestCase.ApplnURI+getIdentityUrl+rid, MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, "Authorization", kauth.getTokenByRole("regproc")); - long stopTime = System.currentTimeMillis(); + public void getIdentity(HashMap rids) throws RigInternalError { + step.getScenario().getUinReqIds().clear(); + for (String rid : rids.values()) { + if (rid != null) { + long startTime = System.currentTimeMillis(); + logger.info(this.getClass().getSimpleName() + " starts at..." + startTime + " MilliSec"); + Response response = RestClient.getRequestWithCookie(BaseTestCase.ApplnURI + getIdentityUrl + rid, + MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, "Authorization", + kauth.getTokenByRole("regproc")); + long stopTime = System.currentTimeMillis(); long elapsedTime = stopTime - startTime; - logger.info("Time taken to execute "+ this.getClass().getSimpleName()+": " +elapsedTime +" MilliSec"); - logger.info("Response from get Identity for RID: "+rid+" "+response.asString()); -// Reporter.log("Actual Response Content: (EndPointUrl: " + BaseTestCase.ApplnURI+getIdentityUrl+rid + ")
"
-//					+ ReportUtil.getTextAreaJsonMsgHtml(response.asString()) + "
"); - - GlobalMethods.ReportRequestAndResponse("","",BaseTestCase.ApplnURI+getIdentityUrl+rid, "", response.getBody().asString()); - String url=BaseTestCase.ApplnURI+getIdentityUrl+rid ; - //GlobalMethods.ReportRequestAndResponse("","",url, requestBody, response); - - JSONObject res = new JSONObject(response.asString()); - if(!res.get("response").toString().equals("null")) - { - JSONObject respJson = new JSONObject(res.get("response").toString()); - JSONObject identityJson = new JSONObject(respJson.get("identity").toString()); - String uin = identityJson.get("UIN").toString(); - step.getScenario().getUinReqIds().put(uin, null); - FileUtil.createFile(new File(TestResources.getResourcePath()+identitypath+uin+".json"), response.asString()); - }else - { - logger.error("Issue while fetching identity for RID: "+rid+" Response: "+res.toString()); - //assertFalse(true, "Not able to Fetch identity for RID: "+rid); - this.hasError=true;throw new RigInternalError("Not able to Fetch identity for RID: "+rid); - } - - } - } - } - + logger.info( + "Time taken to execute " + this.getClass().getSimpleName() + ": " + elapsedTime + " MilliSec"); + logger.info("Response from get Identity for RID: " + rid + " " + response.asString()); + GlobalMethods.ReportRequestAndResponse("", "", BaseTestCase.ApplnURI + getIdentityUrl + rid, "", + response.getBody().asString()); + String url = BaseTestCase.ApplnURI + getIdentityUrl + rid; + JSONObject res = new JSONObject(response.asString()); + if (!res.get("response").toString().equals("null")) { + JSONObject respJson = new JSONObject(res.get("response").toString()); + JSONObject identityJson = new JSONObject(respJson.get("identity").toString()); + String uin = identityJson.get("UIN").toString(); + step.getScenario().getUinReqIds().put(uin, null); + FileUtil.createFile(new File(TestResources.getResourcePath() + identitypath + uin + ".json"), + response.asString()); + } else { + logger.error("Issue while fetching identity for RID: " + rid + " Response: " + res.toString()); + this.hasError = true; + throw new RigInternalError("Not able to Fetch identity for RID: " + rid); + } + + } + } + } + } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPacketTemplate.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPacketTemplate.java index caaa2cc40..19d61e491 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPacketTemplate.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPacketTemplate.java @@ -7,6 +7,8 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -14,6 +16,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; +@Scope("prototype") +@Component public class GetPacketTemplate extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(GetPacketTemplate.class); @@ -31,10 +35,7 @@ public void run() throws RigInternalError { String process = null; String personaPath = null; Properties personaIdValue = null; - if (step.getParameters().isEmpty() && !step.getScenario().getGeneratedResidentData().isEmpty()) { // used to - // child - // packet - // processing + if (step.getParameters().isEmpty() && !step.getScenario().getGeneratedResidentData().isEmpty()) { JSONArray jsonArray = packetUtility.getTemplate( new HashSet(step.getScenario().getGeneratedResidentData()), "NEW", step.getScenario().getCurrentStep(), step, qualityScore, genarateValidCbeff); @@ -52,7 +53,7 @@ public void run() throws RigInternalError { } if (personaId.startsWith("$$")) { personaPath = step.getScenario().getVariables().get(personaId); - step.getScenario().getResidentTemplatePaths().clear();// step.getScenario().getResidentTemplatePaths().clear(); + step.getScenario().getResidentTemplatePaths().clear(); } else { personaIdValue = PacketUtility.getParamsFromArg(personaId, "@@"); for (String id : personaIdValue.stringPropertyNames()) { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPhoneByUIN.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPhoneByUIN.java index f20fd72fe..32b47665a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPhoneByUIN.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPhoneByUIN.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.apache.log4j.Level; import org.apache.log4j.Logger; import io.mosip.testrig.apirig.dto.TestCaseDTO; @@ -18,6 +20,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class GetPhoneByUIN extends BaseTestCaseUtil implements StepInterface { private static final Logger logger = Logger.getLogger(GetPhoneByUIN.class); private static final String GetPhoneYml = "idaData/RetrieveIdentityByUin/RetrieveIdentityByUin.yml"; @@ -39,7 +43,7 @@ public void run() throws RigInternalError { Object[] testObj = getPhone.getYmlTestData(GetPhoneYml); TestCaseDTO test = (TestCaseDTO) testObj[0]; if (step.getParameters().size() == 1 && step.getParameters().get(0).startsWith("$$")) { - uins = step.getParameters().get(0); // $$email=e2e_getEmailByUIN($$uin) + uins = step.getParameters().get(0); if (uins.startsWith("$$")) { uins = step.getScenario().getVariables().get(uins); uinList = new ArrayList<>(Arrays.asList(uins.split("@@"))); @@ -62,10 +66,10 @@ public void run() throws RigInternalError { } JSONObject identityData = responseData.getJSONObject("identity"); phone = identityData.getString("phone"); - }catch (AuthenticationTestException | AdminTestException e) { - logger.error(e.getMessage()); - } catch (Exception e) { - logger.error(e.getMessage()); + } catch (AuthenticationTestException | AdminTestException e) { + logger.error(e.getMessage()); + } catch (Exception e) { + logger.error(e.getMessage()); } if (step.getOutVarName() != null) step.getScenario().getVariables().put(step.getOutVarName(), phone); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java index 34127b27a..5e301dc09 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetPingHealth.java @@ -5,6 +5,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import org.testng.SkipException; @@ -16,6 +18,8 @@ import io.restassured.http.ContentType; import io.restassured.response.Response; +@Scope("prototype") +@Component public class GetPingHealth extends BaseTestCaseUtil implements StepInterface { private static final Logger logger = Logger.getLogger(GetPingHealth.class); @@ -49,8 +53,7 @@ public void run() throws RigInternalError { if (serviceStatus.equalsIgnoreCase("UP") == false) { this.hasError = true; throw new SkipException("Packet creator Not responding"); - } - else + } else Reporter.log("Packet creator status is up and healthy
"); } catch (Exception e) { this.hasError = true; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetResidentData.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetResidentData.java index b52b93cc7..85343cdd1 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetResidentData.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetResidentData.java @@ -8,6 +8,8 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -17,6 +19,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner; import io.restassured.response.Response; +@Scope("prototype") +@Component public class GetResidentData extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(GetResidentData.class); @@ -41,8 +45,6 @@ public void run() throws RigInternalError { ageCategory = step.getParameters().get(1); bSkipGuardian = Boolean.parseBoolean(step.getParameters().get(2)); - /// Get Gender and Bio attributes miss flag - if (step.getParameters().get(3).contains("@@")) { bioFlag = step.getParameters().get(3).split("@@"); genderAndBioFlag.put("Gender", bioFlag[0]); @@ -111,10 +113,10 @@ private static void storeProp(Properties prop) { } private void cleanData() { - step.getScenario().getPridsAndRids().clear(); // step.getScenario().getPridsAndRids().clear(); - step.getScenario().getUinReqIds().clear(); // step.getScenario().getUinReqIds().clear(); - step.getScenario().getResidentTemplatePaths().clear();// step.getScenario().getResidentTemplatePaths().clear(); - step.getScenario().getResidentPathsPrid().clear(); // esidentPathsPrid.clear(); - step.getScenario().getTemplatePacketPath().clear();// step.getScenario().getTemplatePacketPath().clear(); + step.getScenario().getPridsAndRids().clear(); + step.getScenario().getUinReqIds().clear(); + step.getScenario().getResidentTemplatePaths().clear(); + step.getScenario().getResidentPathsPrid().clear(); + step.getScenario().getTemplatePacketPath().clear(); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetUINByRid.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetUINByRid.java index 2599fab09..10a074ce3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetUINByRid.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/GetUINByRid.java @@ -5,6 +5,9 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.utils.KernelAuthentication; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -13,10 +16,11 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.PersonaDataManager; import io.restassured.response.Response; +@Scope("prototype") +@Component public class GetUINByRid extends BaseTestCaseUtil implements StepInterface { private String getIdentityUrl = "/resident/uin/"; - // private String identitypath = "preReg/identity/"; static Logger logger = Logger.getLogger(GetUINByRid.class); KernelAuthentication kauth = new KernelAuthentication(); Boolean isForChildPacket = false; @@ -31,9 +35,7 @@ public class GetUINByRid extends BaseTestCaseUtil implements StepInterface { @SuppressWarnings("static-access") @Override public void run() throws RigInternalError { - // must call e2e_wait() before generating uin - if (!step.getParameters().isEmpty() && !(step.getParameters().get(0).startsWith("$$"))) { // used for child - // packet processing + if (!step.getParameters().isEmpty() && !(step.getParameters().get(0).startsWith("$$"))) { isForChildPacket = Boolean.parseBoolean(step.getParameters().get(0)); if (isForChildPacket && !StringUtils.isEmpty(step.getScenario().getRid_updateResident())) { HashMap rid = new HashMap<>(); @@ -79,7 +81,7 @@ else if (!StringUtils.isEmpty(uin) && !(uin.trim().contains("errorCode"))) { logger.error("Issue while fetching identity for RID: " + rid + " Response: " + response.toString()); this.hasError = true; throw new RigInternalError("Not able to Fetch identity for RID: " + rid); - } + } PersonaDataManager.setVariableValue(step.getScenario().getId(), "UIN", uin); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/HolidayDeclaration.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/HolidayDeclaration.java index 30b2d84b7..dd966d8f2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/HolidayDeclaration.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/HolidayDeclaration.java @@ -5,6 +5,9 @@ import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.AdminTestException; @@ -18,6 +21,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.CenterHelper; import io.restassured.response.Response; +@Scope("prototype") +@Component public class HolidayDeclaration extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(HolidayDeclaration.class); private static final String GenerateHolidayYml = "ivv_masterdata/Holiday/CreateHoliday.yml"; @@ -31,62 +36,59 @@ public class HolidayDeclaration extends BaseTestCaseUtil implements StepInterfac public void run() throws RigInternalError { step.getScenario().getVidPersonaProp().clear(); - String holidayLocationCode = centerHelper.getLocationCodeHoliday(); - Object[] testObj = holidayDeclaration.getYmlTestData(GenerateHolidayYml); - TestCaseDTO test = (TestCaseDTO) testObj[0]; - Object[] testObjPatch = activateHoliday.getYmlTestData(UpdateHolidayStatus); - TestCaseDTO testPatch = (TestCaseDTO) testObjPatch[0]; - - String input2 = testPatch.getInput(); - String input = test.getInput(); - input = JsonPrecondtion.parseAndReturnJsonContent(input, holidayLocationCode, "locationCode"); - input = JsonPrecondtion.parseAndReturnJsonContent(input, BaseTestCase.getLanguageList().get(0), "langCode"); - input = JsonPrecondtion.parseAndReturnJsonContent(input,LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), "holidayDate"); - input = JsonPrecondtion.parseAndReturnJsonContent(input, - "mosip" + BaseTestCase.generateRandomAlphaNumericString(6), "holidayDesc"); - input = JsonPrecondtion.parseAndReturnJsonContent(input, BaseTestCase.generateRandomAlphaNumericString(6), - "holidayName"); + String holidayLocationCode = centerHelper.getLocationCodeHoliday(); + Object[] testObj = holidayDeclaration.getYmlTestData(GenerateHolidayYml); + TestCaseDTO test = (TestCaseDTO) testObj[0]; + Object[] testObjPatch = activateHoliday.getYmlTestData(UpdateHolidayStatus); + TestCaseDTO testPatch = (TestCaseDTO) testObjPatch[0]; - test.setInput(input); + String input2 = testPatch.getInput(); + String input = test.getInput(); + input = JsonPrecondtion.parseAndReturnJsonContent(input, holidayLocationCode, "locationCode"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, BaseTestCase.getLanguageList().get(0), "langCode"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), "holidayDate"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, + "mosip" + BaseTestCase.generateRandomAlphaNumericString(6), "holidayDesc"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, BaseTestCase.generateRandomAlphaNumericString(6), + "holidayName"); - try { - holidayDeclaration.test(test); - Response response = holidayDeclaration.response; - if (response != null) { - JSONObject jsonResp = new JSONObject(response.getBody().asString()); - holidayId = jsonResp.getJSONObject("response").get("holidayId").toString(); - } + test.setInput(input); - } catch (AuthenticationTestException | AdminTestException e) { - this.hasError = true; - throw new RigInternalError(e.getMessage()); + try { + holidayDeclaration.test(test); + Response response = holidayDeclaration.response; + if (response != null) { + JSONObject jsonResp = new JSONObject(response.getBody().asString()); + holidayId = jsonResp.getJSONObject("response").get("holidayId").toString(); } - // ActivateHolidayCall - - try { - // input2 = input2.replace("holidayId", String.valueOf(holidayId)); - String stringValue = String.valueOf(holidayId); - // input2 = input2.replace("\"{{holidayId}}\"", "\"" + holidayId + "\""); - input2 = JsonPrecondtion.parseAndReturnJsonContent(input2, stringValue, "holidayId"); - input2 = JsonPrecondtion.parseAndReturnJsonContent(input2, "true", "isActive"); - testPatch.setInput(input2); + } catch (AuthenticationTestException | AdminTestException e) { + this.hasError = true; + throw new RigInternalError(e.getMessage()); + } - activateHoliday.test(testPatch); - Response response = activateHoliday.response; + try { + String stringValue = String.valueOf(holidayId); + input2 = JsonPrecondtion.parseAndReturnJsonContent(input2, stringValue, "holidayId"); + input2 = JsonPrecondtion.parseAndReturnJsonContent(input2, "true", "isActive"); + testPatch.setInput(input2); - if (response != null) { - JSONObject jsonResp = new JSONObject(response.getBody().asString()); - logger.info(jsonResp.getJSONObject("response")); - } + activateHoliday.test(testPatch); + Response response = activateHoliday.response; - } catch (Exception e) { - this.hasError = true; - throw new RigInternalError(e.getMessage()); - } - if (step.getOutVarName() != null) { - step.getScenario().getVariables().put(step.getOutVarName(), holidayId); - return; + if (response != null) { + JSONObject jsonResp = new JSONObject(response.getBody().asString()); + logger.info(jsonResp.getJSONObject("response")); } + + } catch (Exception e) { + this.hasError = true; + throw new RigInternalError(e.getMessage()); + } + if (step.getOutVarName() != null) { + step.getScenario().getVariables().put(step.getOutVarName(), holidayId); + return; + } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java index f8f4bd777..fae910556 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Machine.java @@ -4,6 +4,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -12,9 +14,11 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.MachineHelper; +@Scope("prototype") +@Component public class Machine extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(Machine.class); - MachineHelper machineHelper=new MachineHelper(); + MachineHelper machineHelper = new MachineHelper(); static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -26,68 +30,70 @@ public class Machine extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError { String id = null; - String activecheck="T"; + String activecheck = "T"; String calltype = null; - int centerCount=0; - HashMap machineDetailsmap=new HashMap(); + int centerCount = 0; + HashMap machineDetailsmap = new HashMap(); if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Method Type[POST/GET/PUT/PATCH] parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("Method Type[POST/GET/PUT/PATCH] parameter is missing from DSL step: " + step.getName()); + this.hasError = true; + throw new RigInternalError( + "Method Type[POST/GET/PUT/PATCH] parameter is missing from DSL step: " + step.getName()); } else { - calltype = step.getParameters().get(0); + calltype = step.getParameters().get(0); } - if(step.getParameters().size() >= 2 && step.getParameters().get(1).startsWith("$$")) { + if (step.getParameters().size() >= 2 && step.getParameters().get(1).startsWith("$$")) { id = step.getParameters().get(1); if (id.startsWith("$$")) { machineDetailsmap = step.getScenario().getVariables(); } - } if(step.getParameters().size() >= 3) { - centerCount = Integer.parseInt(step.getParameters().get(2));} - if(step.getParameters().size() >= 4) { - activecheck = step.getParameters().get(3);} + } + if (step.getParameters().size() >= 3) { + centerCount = Integer.parseInt(step.getParameters().get(2)); + } + if (step.getParameters().size() >= 4) { + activecheck = step.getParameters().get(3); + } switch (calltype) { case "CREATE": logger.info("Usage of this step : $$machineDetails=e2e_Machine(CREATE,$$centerId1,T)"); - String machinetypecode=machineHelper.createMachineType(); - String machinetypestatus=machineHelper.activateMachineType(machinetypecode,activecheck); + String machinetypecode = machineHelper.createMachineType(); + String machinetypestatus = machineHelper.activateMachineType(machinetypecode, activecheck); logger.info(machinetypecode + " " + machinetypestatus); - String machinespecId=machineHelper.createMachineSpecification(machinetypecode); - machineHelper.activateMachineSpecification(machinespecId,activecheck); - - machineDetailsmap=machineHelper.createMachine(machinespecId,machineDetailsmap,centerCount); - machineHelper.activateMachine(machineDetailsmap.get("machineid"),activecheck); - - if (step.getOutVarName() != null) - step.getScenario().getVariables().putAll(machineDetailsmap); -// Reporter.log(machineDetailsmap.toString()); + String machinespecId = machineHelper.createMachineSpecification(machinetypecode); + machineHelper.activateMachineSpecification(machinespecId, activecheck); + + machineDetailsmap = machineHelper.createMachine(machinespecId, machineDetailsmap, centerCount); + machineHelper.activateMachine(machineDetailsmap.get("machineid"), activecheck); + + if (step.getOutVarName() != null) + step.getScenario().getVariables().putAll(machineDetailsmap); break; case "ACTIVE_FLAG": - machineHelper.activateMachine(machineDetailsmap.get("machineid"),activecheck); + machineHelper.activateMachine(machineDetailsmap.get("machineid"), activecheck); break; case "UPDATE": - machineDetailsmap=machineHelper.updateMachine(machineDetailsmap,centerCount); + machineDetailsmap = machineHelper.updateMachine(machineDetailsmap, centerCount); if (step.getOutVarName() != null) step.getScenario().getVariables().putAll(machineDetailsmap); -// Reporter.log(machineDetailsmap.toString()); break; - + case "DCOM": - machineDetailsmap=machineHelper.updateMachine(machineDetailsmap,0); - machineHelper.dcomMachine(machineDetailsmap.get("machineid")); + machineDetailsmap = machineHelper.updateMachine(machineDetailsmap, 0); + machineHelper.dcomMachine(machineDetailsmap.get("machineid")); break; case "REMOVE_CENTER": - machineDetailsmap=machineHelper.updateMachine(machineDetailsmap,0); + machineDetailsmap = machineHelper.updateMachine(machineDetailsmap, 0); break; - + default: break; } } - } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MasterdataDelete.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MasterdataDelete.java index b45ddfd31..cf74b73d3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MasterdataDelete.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MasterdataDelete.java @@ -2,6 +2,9 @@ import org.apache.log4j.Logger; import org.hibernate.Session; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dbaccess.DBManager; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.MosipTestRunner; @@ -9,9 +12,10 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class MasterdataDelete extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(MasterdataDelete.class); - @Override public void run() throws RigInternalError { @@ -19,14 +23,15 @@ public void run() throws RigInternalError { try { session = DBManager.getDataBaseConnection(ConfigManager.getMASTERDbUrl(), ConfigManager.getMasterDbUser(), ConfigManager.getMasterDbPass(), ConfigManager.getMasterDbSchema()); - DBManager.executeQueries(session, MosipTestRunner.getGlobalResourcePath() + "/" + "config/masterDataDeleteQueries.txt"); - } catch (Exception e) { - logger.error("Error:: While executing MASTER DB Quiries." + e.getMessage()); - } finally { - if (session != null) { - session.close(); - } + DBManager.executeQueries(session, + MosipTestRunner.getGlobalResourcePath() + "/" + "config/masterDataDeleteQueries.txt"); + } catch (Exception e) { + logger.error("Error:: While executing MASTER DB Quiries." + e.getMessage()); + } finally { + if (session != null) { + session.close(); } + } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java index 8e5b08467..649077d6b 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java @@ -9,6 +9,9 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; @@ -18,6 +21,7 @@ import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.utils.AdminTestUtil; import io.mosip.testrig.apirig.testscripts.BioAuth; +import io.mosip.testrig.apirig.testscripts.DemoAuth; import io.mosip.testrig.apirig.testscripts.DemoAuthSimplePostForAutoGenId; import io.mosip.testrig.apirig.testscripts.MultiFactorAuthNew; import io.mosip.testrig.apirig.testscripts.OtpAuthNew; @@ -28,16 +32,13 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner; -//"e2e_multiFactorAuthentication(faceDevice,phoneNumber,UIN,$$uin,$$personaFilePath)" +@Scope("prototype") +@Component public class MultiFactorAuthentication extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(MultiFactorAuthentication.class); private static final String MULTIFACTOR = "idaData/MultiFactorAuth/MultiFactorAuth.yml"; Properties deviceProp = null; Properties uinResidentDataPathFinalProps = new Properties(); - OtpAuthNew otpAuth = new OtpAuthNew(); - MultiFactorAuthNew multiFactorAuth = new MultiFactorAuthNew(); - BioAuth bioAuth = new BioAuth(); - DemoAuthSimplePostForAutoGenId demoAuth = new DemoAuthSimplePostForAutoGenId(); List demoAuthList = null; List bioAuthList = null; String individualType = null; @@ -54,7 +55,19 @@ public class MultiFactorAuthentication extends BaseTestCaseUtil implements StepI String demoResponse = null; String emailId = null; List idType = BaseTestCase.getSupportedIdTypesValueFromActuator(); - + + @Autowired + private DemoAuth demoAuth; + + @Autowired + private BioAuth bioAuth; + + @Autowired + private OtpAuthNew otpauth; + + @Autowired + private MultiFactorAuthNew multiFactorAuth; + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -73,10 +86,11 @@ public void run() throws RigInternalError { if (step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); + this.hasError = true; + throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); } - - if (step.getParameters().size() > 1 && step.getParameters().get(6).startsWith("$$")) { + + if (step.getParameters().size() > 1 && step.getParameters().get(6).startsWith("$$")) { emailId = step.getParameters().get(6); if (emailId.startsWith("$$")) { emailId = step.getScenario().getVariables().get(emailId); @@ -89,7 +103,8 @@ public void run() throws RigInternalError { if (!StringUtils.isBlank(step.getParameters().get(i))) { bioAuthList = Arrays.asList(step.getParameters().get(i).split("@@")); } else { - bioAuthList = new ArrayList(step.getScenario().getUinPersonaProp().stringPropertyNames()); + bioAuthList = new ArrayList( + step.getScenario().getUinPersonaProp().stringPropertyNames()); } } @@ -99,7 +114,8 @@ public void run() throws RigInternalError { demoFetchList = new ArrayList(); demoFetchList.add(E2EConstants.DEMOFETCH); } else { - demoAuthList = new ArrayList(step.getScenario().getUinPersonaProp().stringPropertyNames()); + demoAuthList = new ArrayList( + step.getScenario().getUinPersonaProp().stringPropertyNames()); } } @@ -122,7 +138,8 @@ public void run() throws RigInternalError { uinList = new ArrayList<>(); uinList.add(individualIdAuth);// uin actual value } else { - individualIdAuth = step.getScenario().getUinPersonaProp().stringPropertyNames().iterator().next(); + individualIdAuth = step.getScenario().getUinPersonaProp().stringPropertyNames().iterator() + .next(); uinList = new ArrayList<>(); uinList.add(individualIdAuth); } @@ -169,13 +186,12 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") if (casesListUIN != null) { for (Object object : casesListUIN) { test = (TestCaseDTO) object; - test = demoAuthE2eTest(demoFetchList, uin, test,step); + test = demoAuthE2eTest(demoFetchList, uin, test, step); test = bioAuthE2eTest(bioAuthList, uin, test); - if(emailId==null ||(emailId!=null && emailId.isBlank())) { + if (emailId == null || (emailId != null && emailId.isBlank())) { test = otpAuthE2eTest(uin, test); } - - + try { try { multiFactorAuth.test(test); @@ -188,7 +204,6 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } } - } // For VID @@ -219,7 +234,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") if (casesListVID != null) { for (Object object : casesListVID) { test = (TestCaseDTO) object; - test = demoAuthE2eTest(demoFetchList, vid, test,step); + test = demoAuthE2eTest(demoFetchList, vid, test, step); test = bioAuthE2eTest(bioAuthList, vid, test); test = otpAuthE2eTest(vid, test); try { @@ -234,7 +249,6 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } } - } } @@ -264,8 +278,8 @@ private TestCaseDTO otpAuthE2eTest(String individualIdAuth, TestCaseDTO test) th } - private TestCaseDTO demoAuthE2eTest(List demoFetchList, String individualIdAuth, TestCaseDTO testInput,Scenario.Step step) - throws RigInternalError { + private TestCaseDTO demoAuthE2eTest(List demoFetchList, String individualIdAuth, TestCaseDTO testInput, + Scenario.Step step) throws RigInternalError { String personFilePathvalue = null; if (step.getParameters().size() > 4) { @@ -276,10 +290,11 @@ private TestCaseDTO demoAuthE2eTest(List demoFetchList, String individua } } else if (step.getScenario().getUinPersonaProp().containsKey(individualIdAuth)) personFilePathvalue = step.getScenario().getUinPersonaProp().getProperty(individualIdAuth); - else - {this.hasError=true; throw new RigInternalError("Persona doesn't exist for the given UIN " + individualIdAuth); + else { + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given UIN " + individualIdAuth); } - demoResponse = packetUtility.retrieveBiometric(personFilePathvalue, demoFetchList,step); + demoResponse = packetUtility.retrieveBiometric(personFilePathvalue, demoFetchList, step); // testInput.setEndPoint(testInput.getEndPoint().replace("$PartnerKey$", // partnerKeyUrl)); @@ -303,13 +318,16 @@ private TestCaseDTO demoAuthE2eTest(List demoFetchList, String individua demoFieldValueKey = E2EConstants.DEMOAGE; break; default: - this.hasError=true;throw new RigInternalError("Given DEMO doesn't match with the options in the script"); + this.hasError = true; + throw new RigInternalError("Given DEMO doesn't match with the options in the script"); } demoValue = JsonPrecondtion.getValueFromJson(demoResponse, E2EConstants.DEMOFETCH + "." + demoFieldValueKey); - if (demoValue == null) - {this.hasError=true;throw new RigInternalError("Received null value from Persona for" + demoField);} + if (demoValue == null) { + this.hasError = true; + throw new RigInternalError("Received null value from Persona for" + demoField); + } input = testInput.getInput(); input = JsonPrecondtion.parseAndReturnJsonContent(input, demoField, "key"); @@ -329,9 +347,11 @@ private TestCaseDTO bioAuthE2eTest(List bioAuthList, String uin, TestCas deviceInfoFilePath = TestRunner.getExternalResourcePath() + props.getProperty("ivv.path.deviceinfo.folder") + deviceInfoFilePath + ".properties"; deviceProp = AdminTestUtil.getproperty(deviceInfoFilePath); - } else - {this.hasError=true;throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step"); - }String personFilePathvalue = null; + } else { + this.hasError = true; + throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step"); + } + String personFilePathvalue = null; if (step.getParameters().size() > 4) { String _personFilePath = step.getParameters().get(4); if (_personFilePath.startsWith("$$")) { @@ -340,10 +360,10 @@ private TestCaseDTO bioAuthE2eTest(List bioAuthList, String uin, TestCas } } else if (step.getScenario().getUinPersonaProp().containsKey(uin)) personFilePathvalue = step.getScenario().getUinPersonaProp().getProperty(uin); - else - { - this.hasError=true;throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); - } + else { + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); + } String bioType = null, bioSubType = null; List modalityList = new ArrayList<>(); @@ -370,11 +390,12 @@ private TestCaseDTO bioAuthE2eTest(List bioAuthList, String uin, TestCas modalityKeyTogetBioValue = bioSubType; break; default: - this.hasError=true;throw new RigInternalError("Given BIO Type in device property file is not valid"); + this.hasError = true; + throw new RigInternalError("Given BIO Type in device property file is not valid"); } } - multiFactorResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList,step); + multiFactorResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList, step); logger.info("saddjha"); if (multiFactorResponse != null && !multiFactorResponse.isEmpty() && modalityKeyTogetBioValue != null) { String bioValue = JsonPrecondtion.getValueFromJson(multiFactorResponse, modalityKeyTogetBioValue); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiProductRemap.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiProductRemap.java index 7782616db..337cda74d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiProductRemap.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiProductRemap.java @@ -9,6 +9,9 @@ import org.json.JSONObject; import org.json.simple.JSONValue; import org.json.simple.parser.JSONParser; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.utils.KernelAuthentication; @@ -17,6 +20,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class MultiProductRemap extends BaseTestCaseUtil implements StepInterface { KernelAuthentication kernelAuthLib = new KernelAuthentication(); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OAuthDetailsRequest.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OAuthDetailsRequest.java index 5d4bc3769..fa55bdf10 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OAuthDetailsRequest.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OAuthDetailsRequest.java @@ -8,6 +8,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import com.google.gson.Gson; import com.google.gson.JsonObject; @@ -24,11 +26,13 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.GlobalConstants; import io.restassured.response.Response; +@Scope("prototype") +@Component public class OAuthDetailsRequest extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(OAuthDetailsRequest.class); private static final String OAuthDetailsYml = "idaData/OAuthDetailsRequest/OAuthDetailsRequest.yml"; SimplePostForAutoGenId oAuthDetails = new SimplePostForAutoGenId(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java index 853368983..6aff52d39 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java @@ -5,6 +5,9 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -23,6 +26,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; import io.restassured.response.Response; +@Scope("prototype") +@Component public class OidcClient extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(OidcClient.class); @@ -45,7 +50,7 @@ public class OidcClient extends BaseTestCaseUtil implements StepInterface { SimplePostForAutoGenId requestAPIKeyForAuthPartner = new SimplePostForAutoGenId(); SimplePut approveAPIKey = new SimplePut(); SimplePostForAutoGenId oidcClient = new SimplePostForAutoGenId(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OperatorOnboardAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OperatorOnboardAuthentication.java index ae57123f2..56989ff64 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OperatorOnboardAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OperatorOnboardAuthentication.java @@ -8,6 +8,9 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -19,14 +22,16 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner; +@Scope("prototype") +@Component public class OperatorOnboardAuthentication extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(OperatorOnboardAuthentication.class); private static final String BIOMETRIC_FACE = "regproc/OperatorOnboardAuth/operatorOnboardAuth.yml"; - Properties deviceProp =null; + Properties deviceProp = null; Properties uinResidentDataPathFinalProps = new Properties(); BioAuth bioAuth = new BioAuth(); String bioResponse = null; - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -36,8 +41,6 @@ public class OperatorOnboardAuthentication extends BaseTestCaseUtil implements S @Override public void run() throws RigInternalError { - //AuthPartnerProcessor.startProcess(); - //step.getScenario().getUinPersonaProp().put("8497438207", "C:\\Users\\NEEHAR~1.GAR\\AppData\\Local\\Temp\\residents_11835704006002908658\\5645168410.json"); List modalityList = new ArrayList<>(); String personFilePathvalue = null; String deviceInfoFilePath = null; @@ -45,21 +48,24 @@ public void run() throws RigInternalError { List uinList = null; if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); + this.hasError = true; + throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); } else { deviceInfoFilePath = step.getParameters().get(0); if (!StringUtils.isBlank(deviceInfoFilePath)) { deviceInfoFilePath = TestRunner.getExternalResourcePath() + props.getProperty("ivv.path.deviceinfo.folder") + deviceInfoFilePath + ".properties"; deviceProp = AdminTestUtil.getproperty(deviceInfoFilePath); - } else - {this.hasError=true;throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step");} + } else { + this.hasError = true; + throw new RigInternalError("deviceInfo file path Parameter is missing from DSL step"); + } } if (step.getParameters().size() == 2) { uins = step.getParameters().get(1); if (!StringUtils.isBlank(uins)) uinList = new ArrayList<>(Arrays.asList(uins.split("@@"))); - } else if (step.getParameters().size() == 3) { // e2e_bioAuthentication(faceDevice,$$uin,$$personaFilePath) + } else if (step.getParameters().size() == 3) { // e2e_bioAuthentication(faceDevice,$$uin,$$personaFilePath) uins = step.getParameters().get(1); String _personaFilePath = step.getParameters().get(2); if (uins.startsWith("$$") && _personaFilePath.startsWith("$$")) { @@ -69,28 +75,26 @@ public void run() throws RigInternalError { uinList.add(uins); step.getScenario().getUinPersonaProp().put(uins, _personaFilePath); } - } - else + } else uinList = new ArrayList<>(step.getScenario().getUinPersonaProp().stringPropertyNames()); for (String uin : uinList) { - - if (step.getScenario().getUinPersonaProp().containsKey(uin)) personFilePathvalue = step.getScenario().getUinPersonaProp().getProperty(uin); - else - {this.hasError=true; throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); + else { + this.hasError = true; + throw new RigInternalError("Persona doesn't exist for the given UIN " + uin); } - String bioType=null, bioSubType=null; + String bioType = null, bioSubType = null; String modalityToLog = null; String modalityKeyTogetBioValue = null; - if(deviceProp != null) { - bioType= deviceProp.getProperty("bioType"); + if (deviceProp != null) { + bioType = deviceProp.getProperty("bioType"); - bioSubType= deviceProp.getProperty("bioSubType"); - switch(bioType) { + bioSubType = deviceProp.getProperty("bioSubType"); + switch (bioType) { case E2EConstants.FACEBIOTYPE: modalityList.add(E2EConstants.FACEFETCH); modalityToLog = bioType; @@ -98,8 +102,9 @@ public void run() throws RigInternalError { break; case E2EConstants.IRISBIOTYPE: modalityList.add(E2EConstants.IRISFETCH); - modalityToLog = bioSubType+"_"+bioType; - modalityKeyTogetBioValue = (bioSubType.equalsIgnoreCase("left"))? E2EConstants.LEFT_EYE:E2EConstants.RIGHT_EYE; + modalityToLog = bioSubType + "_" + bioType; + modalityKeyTogetBioValue = (bioSubType.equalsIgnoreCase("left")) ? E2EConstants.LEFT_EYE + : E2EConstants.RIGHT_EYE; break; case E2EConstants.FINGERBIOTYPE: modalityList.add(E2EConstants.FINGERFETCH); @@ -107,39 +112,27 @@ public void run() throws RigInternalError { modalityKeyTogetBioValue = bioSubType; break; default: - this.hasError=true;throw new RigInternalError("Given BIO Type in device property file is not valid"); + this.hasError = true; + throw new RigInternalError("Given BIO Type in device property file is not valid"); } } - - /* - - deviceInfoFilePath = TestRunner.getExternalResourcePath() - + props.getProperty("ivv.path.deviceinfo.folder") + "faceDevice" + ".properties"; - deviceProp = AdminTestUtil.getproperty(deviceInfoFilePath); - String uin="8497438207"; - personFilePathvalue = step.getScenario().getUinPersonaProp().getProperty(uin); - String modalityToLog = null; - String modalityKeyTogetBioValue = null; - modalityList.add(E2EConstants.FACEFETCH); - - modalityToLog = "FACE"; - modalityKeyTogetBioValue = "face_encrypted"; - */ - bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList,step); + bioResponse = packetUtility.retrieveBiometric(personFilePathvalue, modalityList, step); String fileName = BIOMETRIC_FACE; bioAuth.isInternal = false; Object[] casesList = bioAuth.getYmlTestData(fileName); - if (bioResponse != null && !bioResponse.isEmpty() && modalityKeyTogetBioValue!= null) { + if (bioResponse != null && !bioResponse.isEmpty() && modalityKeyTogetBioValue != null) { String bioValue = JsonPrecondtion.getValueFromJson(bioResponse, modalityKeyTogetBioValue); - if(bioValue== null || bioValue.length()<100) - { - this.hasError=true;throw new RigInternalError("Not able to get the bio value for field "+modalityToLog+" from persona"); - } + if (bioValue == null || bioValue.length() < 100) { + this.hasError = true; + throw new RigInternalError( + "Not able to get the bio value for field " + modalityToLog + " from persona"); + } for (Object object : casesList) { TestCaseDTO test = (TestCaseDTO) object; - packetUtility.operatorOnboardAuth(modalityToLog, bioValue, "dsl1", test, bioAuth,"USERID",deviceProp,step); + packetUtility.operatorOnboardAuth(modalityToLog, bioValue, "dsl1", test, bioAuth, "USERID", + deviceProp, step); } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OtpAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OtpAuthentication.java index 537a3ddf7..1fee9334e 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OtpAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OtpAuthentication.java @@ -7,6 +7,10 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.dto.TestCaseDTO; import io.mosip.testrig.apirig.testrunner.JsonPrecondtion; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -19,12 +23,16 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class OtpAuthentication extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(OtpAuthentication.class); private static final String OTPAUTHYml = "idaData/OtpAuth/OtpAuth.yml"; Properties uinResidentDataPathFinalProps = new Properties(); - OtpAuthNew otpauth = new OtpAuthNew(); - + + @Autowired + private OtpAuthNew otpauth; + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -47,41 +55,43 @@ public void run() throws RigInternalError, FeatureNotSupportedError { if (step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); - } - - if (step.getParameters().size() == 5 && step.getParameters().get(4).startsWith("$$")) { + this.hasError = true; + throw new RigInternalError("Modality paramter is missing in step: " + step.getName()); + } + + if (step.getParameters().size() == 5 && step.getParameters().get(4).startsWith("$$")) { emailId = step.getParameters().get(4); if (emailId.startsWith("$$")) { emailId = step.getScenario().getVariables().get(emailId); } - if(emailId==null ||(emailId!=null && emailId.isBlank())) { - //in somecases Email Id is not passed so OTP Authentication is not supported + if (emailId == null || (emailId != null && emailId.isBlank())) { + // in somecases Email Id is not passed so OTP Authentication is not supported throw new FeatureNotSupportedError("Email id is Empty hence we cannot perform OTP Authentication"); - + } } // Fetching UIN - if (step.getParameters().size() == 5) { //"e2e_otpAuthentication(uin,$$uin,vid,$$vid,$$email)" + if (step.getParameters().size() == 5) { // "e2e_otpAuthentication(uin,$$uin,vid,$$vid,$$email)" uins = step.getParameters().get(1); + if (uins.startsWith("$$")) { uins = step.getScenario().getVariables().get(uins); uinList = new ArrayList<>(Arrays.asList(uins.split("@@"))); } - } else + } else uinList = new ArrayList<>(step.getScenario().getUinPersonaProp().stringPropertyNames()); // Fetching VID - if (step.getParameters().size() == 5) { //"e2e_otpAuthentication(uin,$$uin,vid,$$vid,$$email)" + if (step.getParameters().size() == 5) { // "e2e_otpAuthentication(uin,$$uin,vid,$$vid,$$email)" vids = step.getParameters().get(3); if (vids.startsWith("$$")) { vids = step.getScenario().getVariables().get(vids); vidList = new ArrayList<>(Arrays.asList(vids.split("@@"))); } - } else + } else vidList = new ArrayList<>(step.getScenario().getVidPersonaProp().stringPropertyNames()); if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("UIN") @@ -101,7 +111,6 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") casesListVID = otpauth.getYmlTestData(OTPAUTHYml); } - for (String uin : uinList) { Object[] testObj = otpauth.getYmlTestData(OTPAUTHYml); TestCaseDTO test = (TestCaseDTO) testObj[0]; @@ -112,7 +121,7 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } input = JsonPrecondtion.parseAndReturnJsonContent(input, uin, "individualId"); - input = JsonPrecondtion.parseAndReturnJsonContent(input, emailId, "otp"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, uin, "sendOtp.individualId"); test.setEndPoint(test.getEndPoint().replace("$PartnerKey$", partnerKeyUrl)); test.setEndPoint(test.getEndPoint().replace("$PartnerName$", partnerId)); @@ -143,6 +152,9 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") } input = JsonPrecondtion.parseAndReturnJsonContent(input, vid, "individualId"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, vid, "sendOtp.individualId"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, "VID", "individualIdType"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, "VID", "sendOtp.individualIdType"); test.setEndPoint(test.getEndPoint().replace("$PartnerKey$", partnerKeyUrl)); test.setEndPoint(test.getEndPoint().replace("$PartnerName$", partnerId)); @@ -153,10 +165,10 @@ else if (BaseTestCase.getSupportedIdTypesValueFromActuator().contains("VID") test.setInput(input); try { otpauth.test(test); - } catch (AuthenticationTestException e) { - logger.error(e.getMessage()); - } catch (AdminTestException e) { + } catch (AuthenticationTestException | AdminTestException e) { + this.hasError = true; logger.error(e.getMessage()); + throw new RigInternalError("Otp Auth failed "); } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetcreator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetcreator.java index 64d74b70d..90a698231 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetcreator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetcreator.java @@ -5,6 +5,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -14,25 +16,28 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; import io.restassured.response.Response; +@Scope("prototype") +@Component public class Packetcreator extends BaseTestCaseUtil implements StepInterface { - // Packetcreator take two argument (NEW/LOST/UPDATE,id1=23232@@id2=) static Logger logger = Logger.getLogger(Packetcreator.class); String process = null; - public String _additionalInfoReqId=null; - + public String _additionalInfoReqId = null; + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); else logger.setLevel(Level.ERROR); } + @Override public void run() throws RigInternalError { if (step.getParameters().isEmpty()) { - this.hasError=true; - this.hasError=true;throw new RigInternalError( + this.hasError = true; + this.hasError = true; + throw new RigInternalError( "Arugemnt is missing pass the argument (NEW/LOST/UPDATE) from DSL scenario sheet"); - } else if(step.getParameters().size()==2 && !step.getParameters().get(1).startsWith("$$")) { + } else if (step.getParameters().size() == 2 && !step.getParameters().get(1).startsWith("$$")) { process = step.getParameters().get(0); Properties personaIdValue = null; String packetPath = null; @@ -41,38 +46,38 @@ public void run() throws RigInternalError { personaIdValue = PacketUtility.getParamsFromArg(personaId, "@@"); for (String id : personaIdValue.stringPropertyNames()) { String value = personaIdValue.get(id).toString(); - if (step.getScenario().getResidentPersonaIdPro().get(value) == null) - { - this.hasError=true; + if (step.getScenario().getResidentPersonaIdPro().get(value) == null) { + this.hasError = true; throw new RigInternalError("Persona id : [" + value + "] is not present is the system"); - } + } String personaPath = step.getScenario().getResidentPersonaIdPro().get(value).toString(); - step.getScenario().getResidentTemplatePaths().put(personaPath, step.getScenario().getResidentTemplatePaths().get(personaPath)); + step.getScenario().getResidentTemplatePaths().put(personaPath, + step.getScenario().getResidentTemplatePaths().get(personaPath)); } } for (String resDataPath : step.getScenario().getResidentTemplatePaths().keySet()) { String templatePath = step.getScenario().getResidentTemplatePaths().get(resDataPath); String idJosn = templatePath + "/REGISTRATION_CLIENT/" + process + "/rid_id/" + "ID.json"; - packetPath = createPacket(idJosn, templatePath,null); // 3rd argument is _additionalInfoReqId here pass null + packetPath = createPacket(idJosn, templatePath, null); // 3rd argument is _additionalInfoReqId here pass + // null step.getScenario().getTemplatePacketPath().put(templatePath, packetPath); - // this is inserted for storing rid with resident data it will be deleted in RIDSync step.getScenario().getRidPersonaPath().put(packetPath, resDataPath); } } else { - process = step.getParameters().get(0); // "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" --> now "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath,$$additionalInfoReqId)" + process = step.getParameters().get(0); // "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath)" --> now + // "$$zipPacketPath=e2e_packetcreator(NEW,$$templatePath,$$additionalInfoReqId)" String _templatePath = step.getParameters().get(1); - if (step.getParameters().size() > 2) { _additionalInfoReqId = step.getParameters().get(2); if (!_additionalInfoReqId.isEmpty() && _additionalInfoReqId.startsWith("$$")) _additionalInfoReqId = step.getScenario().getVariables().get(_additionalInfoReqId); } - + if (_templatePath.startsWith("$$")) { _templatePath = step.getScenario().getVariables().get(_templatePath); String _idJosn = _templatePath + "/REGISTRATION_CLIENT/" + process + "/rid_id/" + "ID.json"; - String _packetPath = createPacket(_idJosn, _templatePath,_additionalInfoReqId); + String _packetPath = createPacket(_idJosn, _templatePath, _additionalInfoReqId); if (step.getOutVarName() != null) step.getScenario().getVariables().put(step.getOutVarName(), _packetPath); } @@ -80,7 +85,8 @@ public void run() throws RigInternalError { } - private String createPacket(String idJsonPath, String templatePath,String additionalInfoReqId) throws RigInternalError { + private String createPacket(String idJsonPath, String templatePath, String additionalInfoReqId) + throws RigInternalError { String url = baseUrl + props.getProperty("packetCretorUrl"); JSONObject jsonReq = new JSONObject(); jsonReq.put("idJsonPath", idJsonPath); @@ -88,15 +94,13 @@ private String createPacket(String idJsonPath, String templatePath,String additi jsonReq.put("source", E2EConstants.SOURCE); jsonReq.put("templatePath", templatePath); jsonReq.put("additionalInfoReqId", additionalInfoReqId); - - //Response response = postRequestWithPathParamAndBody(url, jsonReq.toString(), step.getScenario().getContextInuse(), "CreatePacket"); - Response response = postRequest(url, jsonReq.toString(), "CreatePacket",step); - if (!response.getBody().asString().toLowerCase().contains("zip")) - { - this.hasError=true; + + Response response = postRequest(url, jsonReq.toString(), "CreatePacket", step); + if (!response.getBody().asString().toLowerCase().contains("zip")) { + this.hasError = true; throw new RigInternalError("Unable to get packet from packet utility"); - - } + + } return response.getBody().asString().replaceAll("\\\\", "\\\\\\\\"); } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetsync.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetsync.java index c3951360f..1366abaca 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetsync.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Packetsync.java @@ -2,15 +2,19 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class Packetsync extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(Packetsync.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -21,21 +25,20 @@ public class Packetsync extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError { boolean expectedToPass = true; - if(!step.getParameters().isEmpty() && step.getParameters().size()>=1) { //"$$var=e2e_packetsync($$zipPacketPath)" - String _zipPacketPath=step.getParameters().get(0); - if ( step.getParameters().size()==2) { + if (!step.getParameters().isEmpty() && step.getParameters().size() >= 1) { // "$$var=e2e_packetsync($$zipPacketPath)" + String _zipPacketPath = step.getParameters().get(0); + if (step.getParameters().size() == 2) { expectedToPass = Boolean.parseBoolean(step.getParameters().get(1)); } - if(_zipPacketPath.startsWith("$$")){ - _zipPacketPath=step.getScenario().getVariables().get(_zipPacketPath); - packetUtility.packetSync(_zipPacketPath, step.getScenario().getCurrentStep(),step,expectedToPass); + if (_zipPacketPath.startsWith("$$")) { + _zipPacketPath = step.getScenario().getVariables().get(_zipPacketPath); + packetUtility.packetSync(_zipPacketPath, step.getScenario().getCurrentStep(), step, expectedToPass); } - } - else { + } else { for (String packetPath : step.getScenario().getTemplatePacketPath().values()) - packetUtility.packetSync(packetPath, step.getScenario().getCurrentStep(),step,expectedToPass); + packetUtility.packetSync(packetPath, step.getScenario().getCurrentStep(), step, expectedToPass); } - + } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PostMockMv.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PostMockMv.java index 3f4aed5dd..63fb53a6d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PostMockMv.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PostMockMv.java @@ -5,6 +5,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.BaseTestCase; @@ -13,9 +15,11 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.restassured.response.Response; +@Scope("prototype") +@Component public class PostMockMv extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(PostMockMv.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -26,32 +30,24 @@ public class PostMockMv extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError { - String rid = "",uri=null,decision=null; - HashMap context=null; + String rid = "", uri = null, decision = null; + HashMap context = null; if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.error("Parameter is missing from DSL step"); - this.hasError=true;throw new RigInternalError("PostMockMv paramter is missing in step: " + step.getName()); + this.hasError = true; + throw new RigInternalError("PostMockMv paramter is missing in step: " + step.getName()); } else { rid = step.getParameters().get(0); rid = step.getScenario().getVariables().get(rid); - decision=step.getParameters().get(1); + decision = step.getParameters().get(1); } - - uri=BaseTestCase.ApplnURI+ props.getProperty("setMockMVExpectation"); - JSONObject jo=new JSONObject(); - + + uri = BaseTestCase.ApplnURI + props.getProperty("setMockMVExpectation"); + JSONObject jo = new JSONObject(); + jo.put("rid", rid); jo.put("mockMvDecision", decision); - Response response = postRequest(uri, jo.toString(), "MockMv",step); - // JSONObject res = new JSONObject(response.asString()); -// logger.info(response.toString()); -// -// if (response.toString().contains("Successfully inserted expectation")) { -// logger.info("RESPONSE=" + response.toString()); -// } else { -// logger.error("RESPONSE=" + response.toString()); -// throw new RuntimeException("Mock mv" + response.toString()); -// } + Response response = postRequest(uri, jo.toString(), "MockMv", step); } } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PreRegister.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PreRegister.java index 389a8e8ee..32008a396 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PreRegister.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/PreRegister.java @@ -2,6 +2,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -9,9 +11,11 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class PreRegister extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(PreRegister.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -22,24 +26,27 @@ public class PreRegister extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError { Boolean isForChildPacket = false; - if (!step.getParameters().isEmpty() && step.getParameters().size() == 1 && !step.getParameters().get(0).startsWith("$$")) { // used for child packet processing + if (!step.getParameters().isEmpty() && step.getParameters().size() == 1 + && !step.getParameters().get(0).startsWith("$$")) { // used for child packet processing isForChildPacket = Boolean.parseBoolean(step.getParameters().get(0)); if (isForChildPacket && !step.getScenario().getGeneratedResidentData().isEmpty()) - step.getScenario().setPrid_updateResident(packetUtility.preReg(step.getScenario().getGeneratedResidentData().get(0), step.getScenario().getCurrentStep(),step)); - } - else { - if (step.getParameters().size() == 1 && step.getParameters().get(0).startsWith("$$")) { // "$$prid= e2e_preRegister($$personaFilePath)" + step.getScenario().setPrid_updateResident( + packetUtility.preReg(step.getScenario().getGeneratedResidentData().get(0), + step.getScenario().getCurrentStep(), step)); + } else { + if (step.getParameters().size() == 1 && step.getParameters().get(0).startsWith("$$")) { // "$$prid= + // e2e_preRegister($$personaFilePath)" String personaFilePath = step.getParameters().get(0); personaFilePath = step.getScenario().getVariables().get(personaFilePath); - String prid = packetUtility.preReg(personaFilePath, step.getScenario().getCurrentStep(),step); - if(step.getOutVarName()!=null) - step.getScenario().getVariables().put(step.getOutVarName(), prid); + String prid = packetUtility.preReg(personaFilePath, step.getScenario().getCurrentStep(), step); + if (step.getOutVarName() != null) + step.getScenario().getVariables().put(step.getOutVarName(), prid); } else { int count = 1; for (String resDataPath : step.getScenario().getResidentTemplatePaths().keySet()) { Reporter.log("" + "PreRegister testCase: " + count + ""); count++; - String prid = packetUtility.preReg(resDataPath, step.getScenario().getCurrentStep(),step); + String prid = packetUtility.preReg(resDataPath, step.getScenario().getCurrentStep(), step); step.getScenario().getResidentPathsPrid().put(resDataPath, prid); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RandomDataAssign.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RandomDataAssign.java index 9d892e80b..b317a0d51 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RandomDataAssign.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RandomDataAssign.java @@ -4,13 +4,16 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; - +@Scope("prototype") +@Component public class RandomDataAssign extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(RandomDataAssign.class); public static String _additionalInfo=null; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java index e316a1e93..33873da7e 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReadPreReq.java @@ -6,6 +6,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -15,6 +17,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner; +@Scope("prototype") +@Component public class ReadPreReq extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(ReadPreReq.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReprocessPacket.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReprocessPacket.java index 00ac79f4a..f3029db44 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReprocessPacket.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ReprocessPacket.java @@ -13,7 +13,7 @@ public class ReprocessPacket extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(ReprocessPacket.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -27,49 +27,34 @@ public void run() throws RigInternalError { JSONObject myJSONObject = null; String rid = null; Boolean flag = false; - + if (step.getParameters().size() > 1) { rid = step.getScenario().getVariables().get(step.getParameters().get(0)); flag = Boolean.parseBoolean(step.getParameters().get(1)); - + } - -// { -// "reg_type": "NEW", -// "rid": "10004102090002620230525140932", -// "isValid": true, -// "internalError": false, -// "messageBusAddress": "abcd", -// "retryCount": 5, -// "iteration": 1, -// "workflowInstanceId": "6a2e9f62-583e-4924-9ec4-347bd3169c0a"} - + JSONObject jsonReq = new JSONObject(); jsonReq.put("rid", rid); jsonReq.put("reg_type", "NEW"); - - - -Response response = postRequest(baseUrl + props.getProperty("reprocessPacket"),jsonReq.toString(), "Reprocess the rid", step); - - // Check these two keys statusCode,transactionTypeCode + Response response = postRequest(baseUrl + props.getProperty("reprocessPacket"), jsonReq.toString(), + "Reprocess the rid", step); JSONObject res = new JSONObject(response.getBody().asString()); JSONArray arr = res.getJSONObject("response").getJSONArray("packetStatusUpdateList"); for (Object myObject : arr) { myJSONObject = (JSONObject) myObject; - } logger.info(res.toString()); - if (flag.equals(true) && myJSONObject!=null ) { - logger.info("RESPONSE= contains" ); + if (flag.equals(true) && myJSONObject != null) { + logger.info("RESPONSE= contains"); logger.info("subStatusCode= " + myJSONObject.getString("subStatusCode")); } else { logger.error("RESPONSE= doesn't contain" + arr); - throw new RuntimeException("RESPONSE= doesn't contain" ); + throw new RuntimeException("RESPONSE= doesn't contain"); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ResetContextData.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ResetContextData.java index a703f368c..41b40e337 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ResetContextData.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ResetContextData.java @@ -1,36 +1,41 @@ - package io.mosip.testrig.dslrig.ivv.e2e.methods; +package io.mosip.testrig.dslrig.ivv.e2e.methods; - import org.apache.log4j.Level; - import org.apache.log4j.Logger; - import io.mosip.testrig.apirig.utils.ConfigManager; - import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; - import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; - import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; - import io.restassured.response.Response; +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; -public class ResetContextData extends BaseTestCaseUtil implements StepInterface{ - public static Logger logger = Logger.getLogger(ResetContextData.class); +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; +import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; +import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +import io.restassured.response.Response; - static { - if (ConfigManager.IsDebugEnabled()) - logger.setLevel(Level.ALL); - else - logger.setLevel(Level.ERROR); - } +@Scope("prototype") +@Component +public class ResetContextData extends BaseTestCaseUtil implements StepInterface { + public static Logger logger = Logger.getLogger(ResetContextData.class); + + static { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } - @Override - public void run() throws RigInternalError { - Response response = null; + @Override + public void run() throws RigInternalError { + Response response = null; - String clearBaseUrlNamespaceData = baseUrl + props.getProperty("resetContextData"); - response = getRequest(clearBaseUrlNamespaceData, "Clear baseUrl namespace data", step); - if (response != null && response.getStatusCode() == 200) { - String responseString = response.getBody().asString(); - if (!responseString.contains("true")) { - logger.info(responseString); - this.hasError = true; - throw new RigInternalError("Clearing baseUrl namespace data from variable manager failed"); - } - } + String clearBaseUrlNamespaceData = baseUrl + props.getProperty("resetContextData"); + response = getRequest(clearBaseUrlNamespaceData, "Clear baseUrl namespace data", step); + if (response != null && response.getStatusCode() == 200) { + String responseString = response.getBody().asString(); + if (!responseString.contains("true")) { + logger.info(responseString); + this.hasError = true; + throw new RigInternalError("Clearing baseUrl namespace data from variable manager failed"); + } } - } \ No newline at end of file + } +} \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RidSyncRejected.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RidSyncRejected.java index 614de3596..ecda35224 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RidSyncRejected.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/RidSyncRejected.java @@ -9,6 +9,9 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; @@ -18,70 +21,75 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner; import io.restassured.response.Response; +@Scope("prototype") +@Component public class RidSyncRejected extends BaseTestCaseUtil implements StepInterface { private static final Logger logger = Logger.getLogger(RidSyncRejected.class); - public static String _additionalInfo=null; - + public static String _additionalInfo = null; + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); else logger.setLevel(Level.ERROR); } + @Override public void run() throws RigInternalError { - String process=null; - + String process = null; + if (step.getParameters() == null || step.getParameters().isEmpty()) { logger.error("Parameter is missing from DSL step"); - assertTrue(false,"process paramter is missing in step: "+step.getName()); - } else if(step.getParameters().size() == 1){ - process =step.getParameters().get(0); + assertTrue(false, "process paramter is missing in step: " + step.getName()); + } else if (step.getParameters().size() == 1) { + process = step.getParameters().get(0); step.getScenario().getPridsAndRids().clear(); - String registrationId=null; + String registrationId = null; for (String packetPath : step.getScenario().getTemplatePacketPath().values()) { - registrationId=ridsync(packetPath, E2EConstants.REJECTED_SUPERVISOR_STATUS,process); + registrationId = ridsync(packetPath, E2EConstants.REJECTED_SUPERVISOR_STATUS, process); step.getScenario().getPridsAndRids().put(packetPath, registrationId); - step.getScenario().getRidPersonaPath().put(registrationId, step.getScenario().getRidPersonaPath().get(packetPath)); + step.getScenario().getRidPersonaPath().put(registrationId, + step.getScenario().getRidPersonaPath().get(packetPath)); step.getScenario().getRidPersonaPath().remove(packetPath); } storeProp(step.getScenario().getPridsAndRids()); - }else - if(step.getParameters().size()>1) { // "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" - process =step.getParameters().get(0); - String _zipPacketPath=step.getParameters().get(1); - if(step.getParameters().size()==3) { - _additionalInfo=step.getParameters().get(2); - if(_additionalInfo.startsWith("$$")) { - _additionalInfo=step.getScenario().getVariables().get(_additionalInfo);}} - if(_zipPacketPath.startsWith("$$")) { - _zipPacketPath=step.getScenario().getVariables().get(_zipPacketPath); - String _rid=ridsync(_zipPacketPath, E2EConstants.REJECTED_SUPERVISOR_STATUS,process); - if(step.getOutVarName()!=null) - step.getScenario().getVariables().put(step.getOutVarName(), _rid); - } + } else if (step.getParameters().size() > 1) { // "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + process = step.getParameters().get(0); + String _zipPacketPath = step.getParameters().get(1); + if (step.getParameters().size() == 3) { + _additionalInfo = step.getParameters().get(2); + if (_additionalInfo.startsWith("$$")) { + _additionalInfo = step.getScenario().getVariables().get(_additionalInfo); } + } + if (_zipPacketPath.startsWith("$$")) { + _zipPacketPath = step.getScenario().getVariables().get(_zipPacketPath); + String _rid = ridsync(_zipPacketPath, E2EConstants.REJECTED_SUPERVISOR_STATUS, process); + if (step.getOutVarName() != null) + step.getScenario().getVariables().put(step.getOutVarName(), _rid); + } + } } - private String ridsync(String containerPath, String supervisorStatus,String process) throws RigInternalError { + private String ridsync(String containerPath, String supervisorStatus, String process) throws RigInternalError { String url = baseUrl + props.getProperty("ridsyncUrl"); - JSONObject jsonReq = buildRequest(containerPath, supervisorStatus,process); + JSONObject jsonReq = buildRequest(containerPath, supervisorStatus, process); Response response = postRequestWithQueryParamAndBody(url, jsonReq.toString(), - step.getScenario().getCurrentStep(), "Ridsync",step); + step.getScenario().getCurrentStep(), "Ridsync", step); JSONArray jsonArray = new JSONArray(response.asString()); JSONObject responseJson = new JSONObject(jsonArray.get(0).toString()); - if(!response.getBody().asString().toLowerCase().contains("success")) { - this.hasError=true; - + if (!response.getBody().asString().toLowerCase().contains("success")) { + this.hasError = true; + throw new RigInternalError("Unable to do RID sync from packet utility"); } - return responseJson.get("registrationId").toString(); + return responseJson.get("registrationId").toString(); } - private JSONObject buildRequest(String containerPath, String supervisorStatus,String process) { + private JSONObject buildRequest(String containerPath, String supervisorStatus, String process) { JSONObject jsonReq = new JSONObject(); jsonReq.put("containerPath", containerPath); jsonReq.put("email", "email"); @@ -96,20 +104,19 @@ private JSONObject buildRequest(String containerPath, String supervisorStatus,St return jsonReq; } - private static void storeProp(HashMap map) { - Properties prop= new Properties(); - for(String key: map.keySet()) + private static void storeProp(HashMap map) { + Properties prop = new Properties(); + for (String key : map.keySet()) prop.put(key, map.get(key)); - String filePath=TestRunner.getExternalResourcePath() - + props.getProperty("ivv.path.deviceinfo.folder") +"ridPersonaPathProp.properties"; + String filePath = TestRunner.getExternalResourcePath() + props.getProperty("ivv.path.deviceinfo.folder") + + "ridPersonaPathProp.properties"; FileOutputStream output = null; try { - output = new FileOutputStream(filePath,true); + output = new FileOutputStream(filePath, true); prop.store(output, null); } catch (Exception e) { logger.error(e.getMessage()); - } - finally { + } finally { PacketUtility.closeOutputStream(output); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Ridsync.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Ridsync.java index 58f16703b..00ddbb5d8 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Ridsync.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Ridsync.java @@ -11,6 +11,8 @@ import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -20,72 +22,75 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner; import io.restassured.response.Response; +@Scope("prototype") +@Component public class Ridsync extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(Ridsync.class); - public String _additionalInfo=null; - + public String _additionalInfo = null; + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); else logger.setLevel(Level.ERROR); } + @Override public void run() throws RigInternalError { - String process=null; - + String process = null; + if (step.getParameters() == null || step.getParameters().isEmpty()) { logger.error("Parameter is missing from DSL step"); - assertTrue(false,"process paramter is missing in step: "+step.getName()); - } else if(step.getParameters().size() == 1){ - process =step.getParameters().get(0); + assertTrue(false, "process paramter is missing in step: " + step.getName()); + } else if (step.getParameters().size() == 1) { + process = step.getParameters().get(0); step.getScenario().getPridsAndRids().clear(); - String registrationId=null; + String registrationId = null; for (String packetPath : step.getScenario().getTemplatePacketPath().values()) { - registrationId=ridsync(packetPath, E2EConstants.APPROVED_SUPERVISOR_STATUS,process); + registrationId = ridsync(packetPath, E2EConstants.APPROVED_SUPERVISOR_STATUS, process); step.getScenario().getPridsAndRids().put(packetPath, registrationId); - step.getScenario().getRidPersonaPath().put(registrationId, step.getScenario().getRidPersonaPath().get(packetPath)); + step.getScenario().getRidPersonaPath().put(registrationId, + step.getScenario().getRidPersonaPath().get(packetPath)); step.getScenario().getRidPersonaPath().remove(packetPath); } storeProp(step.getScenario().getPridsAndRids()); - }else - if(step.getParameters().size()>1) { // "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" - process =step.getParameters().get(0); - String _zipPacketPath=step.getParameters().get(1); - if(step.getParameters().size()==3) { - _additionalInfo=step.getParameters().get(2); - if(_additionalInfo.startsWith("$$")) { - _additionalInfo=step.getScenario().getVariables().get(_additionalInfo);} - } - else - { - _additionalInfo=null; - } - - if(_zipPacketPath.startsWith("$$")) { - _zipPacketPath=step.getScenario().getVariables().get(_zipPacketPath); - String _rid=ridsync(_zipPacketPath, E2EConstants.APPROVED_SUPERVISOR_STATUS,process); - if(step.getOutVarName()!=null) - step.getScenario().getVariables().put(step.getOutVarName(), _rid); - } + } else if (step.getParameters().size() > 1) { // "$$rid=e2e_ridsync(NEW,$$zipPacketPath)" + process = step.getParameters().get(0); + String _zipPacketPath = step.getParameters().get(1); + if (step.getParameters().size() == 3) { + _additionalInfo = step.getParameters().get(2); + if (_additionalInfo.startsWith("$$")) { + _additionalInfo = step.getScenario().getVariables().get(_additionalInfo); } + } else { + _additionalInfo = null; + } + + if (_zipPacketPath.startsWith("$$")) { + _zipPacketPath = step.getScenario().getVariables().get(_zipPacketPath); + String _rid = ridsync(_zipPacketPath, E2EConstants.APPROVED_SUPERVISOR_STATUS, process); + if (step.getOutVarName() != null) + step.getScenario().getVariables().put(step.getOutVarName(), _rid); + } + } } - private String ridsync(String containerPath, String supervisorStatus,String process) throws RigInternalError { + private String ridsync(String containerPath, String supervisorStatus, String process) throws RigInternalError { String url = baseUrl + props.getProperty("ridsyncUrl"); - JSONObject jsonReq = buildRequest(containerPath, supervisorStatus,process); - Response response = postRequestWithQueryParamAndBody(url, jsonReq.toString(),step.getScenario().getCurrentStep(), "Ridsync",step); + JSONObject jsonReq = buildRequest(containerPath, supervisorStatus, process); + Response response = postRequestWithQueryParamAndBody(url, jsonReq.toString(), + step.getScenario().getCurrentStep(), "Ridsync", step); JSONArray jsonArray = new JSONArray(response.asString()); JSONObject responseJson = new JSONObject(jsonArray.get(0).toString()); - if(!response.getBody().asString().toLowerCase().contains("success")) + if (!response.getBody().asString().toLowerCase().contains("success")) throw new RigInternalError("Unable to do RID sync from packet utility"); return responseJson.get("registrationId").toString(); } - private JSONObject buildRequest(String containerPath, String supervisorStatus,String process) { + private JSONObject buildRequest(String containerPath, String supervisorStatus, String process) { JSONObject jsonReq = new JSONObject(); jsonReq.put("containerPath", containerPath); jsonReq.put("email", "email"); @@ -100,14 +105,14 @@ private JSONObject buildRequest(String containerPath, String supervisorStatus,St return jsonReq; } - private static void storeProp(HashMap map) { - Properties prop= new Properties(); - for(String key: map.keySet()) + private static void storeProp(HashMap map) { + Properties prop = new Properties(); + for (String key : map.keySet()) prop.put(key, map.get(key)); - String filePath=TestRunner.getExternalResourcePath() - + props.getProperty("ivv.path.deviceinfo.folder") +"ridPersonaPathProp.properties"; - try(OutputStream output = new FileOutputStream(filePath,true);) { - + String filePath = TestRunner.getExternalResourcePath() + props.getProperty("ivv.path.deviceinfo.folder") + + "ridPersonaPathProp.properties"; + try (OutputStream output = new FileOutputStream(filePath, true);) { + prop.store(output, null); output.close(); output.flush(); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SendOtp.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SendOtp.java index 30db55f9f..7dc2501dd 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SendOtp.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SendOtp.java @@ -4,15 +4,19 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class SendOtp extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(SendOtp.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -23,11 +27,10 @@ public class SendOtp extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError { Boolean isForChildPacket = false; - Properties kernelprops=ConfigManager.propsKernel; - String emailId=kernelprops.getProperty("usePreConfiguredEmail"); + Properties kernelprops = ConfigManager.propsKernel; + String emailId = kernelprops.getProperty("usePreConfiguredEmail"); if (step.getParameters().isEmpty()) { - // emailOrPhone =step.getParameters().get(0); for (String resDataPath : step.getScenario().getResidentTemplatePaths().keySet()) { packetUtility.requestOtp(resDataPath, step.getScenario().getCurrentStep(), emailId, step); } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java index 8034ce4d6..7c196ff6c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java @@ -5,6 +5,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.BaseTestCase; @@ -14,6 +16,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; import io.mosip.testrig.dslrig.ivv.orchestrator.PersonaDataManager; +@Scope("prototype") +@Component public class SetContext extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(SetContext.class); @@ -30,7 +34,6 @@ public void run() throws RigInternalError { String contextKeyValue = "dev_context"; String userAndMachineDetailParam = null; -// String mosipVersion = null; boolean generatePrivateKey = Boolean.FALSE; String status = null; String negative = "valid"; @@ -42,8 +45,6 @@ public void run() throws RigInternalError { String invalidIdSchemaFlag = ""; String skipBiometricClassificationFlag = ""; String skipApplicantDocumentsFlag = ""; - // neeha scenario = step.getScenario().getId() + ":" + - // step.getScenario().getDescription(); HashMap map = new HashMap(); HashMap dummyholder = new HashMap(); if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { @@ -51,11 +52,10 @@ public void run() throws RigInternalError { } else { contextKeyValue = step.getParameters().get(0); contextKeyValue = System.getProperty("env.user") + "_context"; - // step.getScenario().getContextInuse()put("contextKey",contextKeyValue ); step.getScenario().getCurrentStep().put(contextKeyValue, "true"); step.getScenario().getCurrentStep().clear(); step.getScenario().getCurrentStep().put("contextKey", contextKeyValue); - if (step.getParameters().size() > 1) { // machineid=112121@@....... + if (step.getParameters().size() > 1) { String value = step.getParameters().get(1); if (!(value.equalsIgnoreCase("-1")) && value.contains("@@")) userAndMachineDetailParam = value; @@ -64,12 +64,6 @@ else if (value.startsWith("$$")) { map = step.getScenario().getVariables(); } } - /* - * if (step.getParameters().size() > 2) { // 1@@2(mosip.version) List - * version = PacketUtility.getParamsArg(step.getParameters().get(2), "@@"); if - * (!(version.contains("-1"))) mosipVersion = version.get(0) + "." + - * version.get(1); } - */ if (step.getParameters().size() > 2) // true/false (want to generate privatekey) generatePrivateKey = Boolean.parseBoolean(step.getParameters().get(2)); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Skip.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Skip.java index 104d1d082..8684b39c1 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Skip.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Skip.java @@ -3,12 +3,16 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class Skip extends BaseTestCaseUtil implements StepInterface { private static final Logger logger = Logger.getLogger(Skip.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java index d595f4bfa..4908da229 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java @@ -5,6 +5,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.BaseTestCase; @@ -13,6 +15,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; +@Scope("prototype") +@Component public class SwitchContext extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(SwitchContext.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SyncData.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SyncData.java index dbf06bb51..f3ae9366f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SyncData.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SyncData.java @@ -4,6 +4,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -11,11 +13,13 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.SyncDataHelper; +@Scope("prototype") +@Component public class SyncData extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(SyncData.class); SyncDataHelper syncDataHelper = new SyncDataHelper(); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -61,7 +65,6 @@ else if (keycase.equalsIgnoreCase("lower")) if (step.getOutVarName() != null) { machineDetailsmap.put("keyindex", keyindex); - // step.getScenario().getVariables().put(step.getOutVarName(), keyIndex); step.getScenario().getVariables().putAll(machineDetailsmap); } break; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateApplication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateApplication.java index c2b985be1..520cf2d87 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateApplication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateApplication.java @@ -23,7 +23,6 @@ public class UpdateApplication extends BaseTestCaseUtil implements StepInterface public void run() throws RigInternalError { for (String resDataPath : step.getScenario().getResidentTemplatePaths().keySet()) { Reporter.log("" + "UpdateApplication testCase "); - //packetUtility.updateApplication(resDataPath, residentPathsPrid, contextKey); } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateBioExceptionInPersona.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateBioExceptionInPersona.java index 558a9edd5..7ad92c6bc 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateBioExceptionInPersona.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateBioExceptionInPersona.java @@ -1,19 +1,23 @@ - package io.mosip.testrig.dslrig.ivv.e2e.methods; +package io.mosip.testrig.dslrig.ivv.e2e.methods; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class UpdateBioExceptionInPersona extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(UpdateBioExceptionInPersona.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -26,24 +30,22 @@ public void run() throws RigInternalError { List exceptionArray = new ArrayList(); if (step.getParameters() == null || step.getParameters().isEmpty()) { logger.error("Parameter is missing from DSL step"); - this.hasError=true; + this.hasError = true; throw new RigInternalError("bioType paramter is missing in step: " + step.getName()); - } - if (!step.getParameters().isEmpty()) { // "var1=e2e_updateDemoOrBioDetails(0,0,0,$$personaPath)" + } + if (!step.getParameters().isEmpty()) { // "var1=e2e_updateDemoOrBioDetails(0,0,0,$$personaPath)" String personaFilePath = step.getParameters().get(0); - - if (step.getParameters().size()<=2) { - String [] str=step.getParameters().get(1).split("@@"); - for(String s: str) - exceptionArray.add(s); - // Finger:Left IndexFinger@@Finger:Right IndexFinger@@Iris:Left + + if (step.getParameters().size() <= 2) { + String[] str = step.getParameters().get(1).split("@@"); + for (String s : str) + exceptionArray.add(s); } - if (personaFilePath.startsWith("$$")) { personaFilePath = step.getScenario().getVariables().get(personaFilePath); - packetUtility.updateBioException(personaFilePath,exceptionArray,step); + packetUtility.updateBioException(personaFilePath, exceptionArray, step); } - } + } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java index 6d59a8b39..7878ec87d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java @@ -6,15 +6,19 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class UpdateDemoOrBioDetails extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(UpdateDemoOrBioDetails.class); - + static { if (ConfigManager.IsDebugEnabled()) logger.setLevel(Level.ALL); @@ -41,9 +45,9 @@ public void run() throws RigInternalError { if (!updateAttribute.contentEquals("0")) { if (updateAttribute.contains("$$")) { - blocklistedWord = updateAttribute.substring(5); - updateAttribute = updateAttribute.replace(blocklistedWord, - step.getScenario().getVariables().get(blocklistedWord)); + blocklistedWord = updateAttribute.substring(5); + updateAttribute = updateAttribute.replace(blocklistedWord, + step.getScenario().getVariables().get(blocklistedWord)); } } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateMachineInPrereqData.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateMachineInPrereqData.java index 8ca74acf2..b7e98b627 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateMachineInPrereqData.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateMachineInPrereqData.java @@ -4,6 +4,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -11,6 +13,8 @@ import io.mosip.testrig.dslrig.ivv.e2e.constant.E2EConstants; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class UpdateMachineInPrereqData extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(UpdateMachineInPrereqData.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdatePreRegStatus.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdatePreRegStatus.java index 056112120..55fa0ef18 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdatePreRegStatus.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdatePreRegStatus.java @@ -2,12 +2,16 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class UpdatePreRegStatus extends BaseTestCaseUtil implements StepInterface { String status = "Pending_Appointment"; String response = null; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardian.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardian.java index bf021240f..6c73c8eb4 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardian.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardian.java @@ -4,6 +4,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -11,6 +13,8 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class UpdateResidentWithGuardian extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(UpdateResidentWithGuardian.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardianSkippingPreReg.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardianSkippingPreReg.java index d54cff8a2..c96e6b89a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardianSkippingPreReg.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithGuardianSkippingPreReg.java @@ -4,6 +4,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.utils.ConfigManager; @@ -11,6 +13,8 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class UpdateResidentWithGuardianSkippingPreReg extends BaseTestCaseUtil implements StepInterface{ static Logger logger = Logger.getLogger(UpdateResidentWithGuardianSkippingPreReg.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithRID.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithRID.java index aa7adf901..1aabe2d0f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithRID.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithRID.java @@ -2,12 +2,16 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class UpdateResidentWithRID extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(UpdateResidentWithRID.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithUIN.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithUIN.java index 377eb4f0b..e2098eb18 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithUIN.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateResidentWithUIN.java @@ -2,12 +2,16 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class UpdateResidentWithUIN extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(UpdateResidentWithUIN.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateUINDetail.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateUINDetail.java index da03d928b..7ec58ab15 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateUINDetail.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateUINDetail.java @@ -3,6 +3,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.utils.AdminTestException; @@ -14,6 +16,8 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class UpdateUINDetail extends BaseTestCaseUtil implements StepInterface { private static final String UPDATE_DEMOPHRAPIC_DETAIL = "preReg/updateUINDetail/UpdateUIN.yml"; static Logger logger = Logger.getLogger(UpdateUINDetail.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDocuments.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDocuments.java index a37714bfc..ff14c2857 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDocuments.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDocuments.java @@ -2,12 +2,16 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class UploadDocuments extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(UploadDocuments.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadPacketWithInvalidHash.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadPacketWithInvalidHash.java index 0846bac1b..fe71168eb 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadPacketWithInvalidHash.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadPacketWithInvalidHash.java @@ -2,12 +2,16 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class UploadPacketWithInvalidHash extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(UploadPacketWithInvalidHash.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java index 1fc6e880b..7159024e2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/User.java @@ -6,6 +6,9 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.utils.KeycloakUserManager; import io.mosip.testrig.apirig.testrunner.BaseTestCase; @@ -14,6 +17,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.UserHelper; +@Scope("prototype") +@Component public class User extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(User.class); @@ -26,7 +31,6 @@ public class User extends BaseTestCaseUtil implements StepInterface { logger.setLevel(Level.ERROR); } - // GetWithParam @Override public void run() throws RigInternalError { String id = null; @@ -94,8 +98,6 @@ public void run() throws RigInternalError { if (step.getOutVarName() != null) step.getScenario().getVariables().putAll(map); userHelper.deleteCenterMapping(user); - -// Reporter.log(map.toString()); break; case "DELETE_ZONEMAPPING": userHelper.deleteZoneMapping(user, zone); @@ -117,17 +119,14 @@ public void run() throws RigInternalError { case "CREATE_ZONESEARCH": map = userHelper.createZoneSearch(user, map); step.getScenario().getVariables().putAll(map); -// Reporter.log(map.toString()); break; case "ADD_User": HashMap> attrmap = new HashMap>(); List list = new ArrayList(); String val = map.get("uin") != null ? map.get("uin") : "11000000"; list.add(val); - attrmap.put("individualId", list); - // Create User at Keycloak + attrmap.put("individualId", list); KeycloakUserManager.createUsers(user, pwd, "roles", attrmap); - // Get the xone of the user if zone mapping already existing doubtt zone = userHelper.getZoneOfUser(user); if (zone != null && zone.equalsIgnoreCase("NOTSET")) { zone = userHelper.getLeafZones(); @@ -140,18 +139,17 @@ public void run() throws RigInternalError { step.getScenario().getVariables().putAll(userdetails); break; - + case "UPDATE_UIN": HashMap> attrmap1 = new HashMap>(); List list1 = new ArrayList(); String val1 = map.get("uin") != null ? map.get("uin") : "11000000"; list1.add(val1); - attrmap1.put("individualId", list1); - // Create User at Keycloak - //Utilizing the remove user functionality to update the attribute "individualId" with UIN - KeycloakUserManager.removeUser(user); + attrmap1.put("individualId", list1); + // Utilizing the remove user functionality to update the attribute + // "individualId" with UIN + KeycloakUserManager.removeUser(user); KeycloakUserManager.createUsers(user, pwd, "roles", attrmap1); - // Get the xone of the user if zone mapping already existing doubtt zone = userHelper.getZoneOfUser(user); if (zone != null && zone.equalsIgnoreCase("NOTSET")) { zone = userHelper.getLeafZones(); @@ -172,8 +170,6 @@ public void run() throws RigInternalError { list2.add(val2); attrmap2.put("individualId", list2); KeycloakUserManager.createUsers(user, pwd, "roles", attrmap2); - // BaseTestCase.mapUserToZone(user,zone); - // BaseTestCase.mapZone(user); HashMap userdetails2 = new HashMap(); userdetails2.put("user", user); userdetails2.put("pwd", pwd); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UserInfo.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UserInfo.java index 90568c66f..146b97247 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UserInfo.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UserInfo.java @@ -6,6 +6,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import com.nimbusds.jose.jwk.RSAKey; import io.mosip.testrig.apirig.dto.TestCaseDTO; @@ -25,6 +27,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; import io.restassured.response.Response; +@Scope("prototype") +@Component public class UserInfo extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(UserInfo.class); private static final String AuthorizationCodeYml = "idaData/AuthorizationCode/AuthorizationCode.yml"; @@ -54,7 +58,6 @@ public class UserInfo extends BaseTestCaseUtil implements StepInterface { @Override public void run() throws RigInternalError, FeatureNotSupportedError { - // check if esignet is installed on the target system if (ConfigManager.isInServiceNotDeployedList(GlobalConstants.ESIGNET)) { throw new FeatureNotSupportedError("eSignet is not deployed. Hence skipping the step"); } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ValidateOtp.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ValidateOtp.java index 72fc9c184..bbd8a8d99 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ValidateOtp.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/ValidateOtp.java @@ -4,6 +4,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.MockSMTPListener; @@ -11,6 +13,8 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class ValidateOtp extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(ValidateOtp.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java index 668227c70..b5443412a 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/Wait.java @@ -2,11 +2,16 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +@Scope("prototype") +@Component public class Wait extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(Wait.class); @@ -23,15 +28,12 @@ public void run() throws RigInternalError { Long waitTime = DEFAULT_WAIT_TIME; if (step.getParameters() == null || step.getParameters().isEmpty()) { logger.warn("Wait Time is Missing : Taking default Time as 30 Sec"); - } - else { + } else { waitTime = TIME_IN_MILLISEC * Integer.parseInt(step.getParameters().get(0)); } try { -// Reporter.log("Total waiting for: " + waitTime / 1000 + " Sec " + "Starting Waiting: " + getDateTime()); Thread.sleep(waitTime); -// Reporter.log("Waiting Done: " + getDateTime()); } catch (NumberFormatException e) { logger.error(e.getMessage()); } catch (InterruptedException e) { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WaitTillReprocessorInterval.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WaitTillReprocessorInterval.java index 9230a0231..f5eaabdc2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WaitTillReprocessorInterval.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WaitTillReprocessorInterval.java @@ -2,6 +2,8 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -9,6 +11,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.PacketUtility; +@Scope("prototype") +@Component public class WaitTillReprocessorInterval extends BaseTestCaseUtil implements StepInterface { public static Logger logger = Logger.getLogger(WaitTillReprocessorInterval.class); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePersonaData.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePersonaData.java index 6d1814aca..6c37173fe 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePersonaData.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePersonaData.java @@ -5,6 +5,8 @@ import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.apache.log4j.Level; import org.apache.log4j.Logger; import io.mosip.testrig.apirig.dto.TestCaseDTO; @@ -25,6 +27,8 @@ import java.io.FileWriter; import java.io.IOException; +@Scope("prototype") +@Component public class WritePersonaData extends BaseTestCaseUtil implements StepInterface { private static final Logger logger = Logger.getLogger(WritePersonaData.class); private static final String GetIdentityYml = "idaData/RetrieveIdentityByUin/RetrieveIdentityByUin.yml"; @@ -41,7 +45,6 @@ public class WritePersonaData extends BaseTestCaseUtil implements StepInterface public void run() throws RigInternalError { String jsonFilePath = TestRunner.getExternalResourcePath() + "/config/personaData.json"; JSONArray jsonArray = new JSONArray(); - // Iterating using Map.Entry and enhanced for loop for (Map.Entry> entry : PersonaDataManager.personaDataCollection.entrySet()) { Cache personaCache = entry.getValue(); String uin = (String) personaCache.get("UIN"); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java index cf0f6496e..b16702299 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/WritePreReq.java @@ -6,6 +6,8 @@ import java.util.Properties; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.testng.Reporter; import io.mosip.testrig.apirig.utils.ConfigManager; import io.mosip.testrig.apirig.testrunner.BaseTestCase; @@ -14,6 +16,8 @@ import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; import io.mosip.testrig.dslrig.ivv.orchestrator.TestRunner; +@Scope("prototype") +@Component public class WritePreReq extends BaseTestCaseUtil implements StepInterface { static Logger logger = Logger.getLogger(WritePreReq.class); @@ -30,7 +34,6 @@ public void run() throws RigInternalError { String value = null; String appendedkey = null; HashMap map = new HashMap(); -// Reporter.log("==========STEP ====== WritePreReq "); if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.warn("PreRequisite Arugemnt is Missing : Please pass the argument from DSL sheet"); } else if (step.getParameters().size() >= 1) { @@ -54,7 +57,6 @@ public void run() throws RigInternalError { } else if (entry.getValue() != null) props.setProperty(entry.getKey(), entry.getValue()); } - // props.putAll(map); String path = (TestRunner.getExternalResourcePath() + "/config/" + BaseTestCase.environment + "_prereqdata_" + appendedkey + ".properties"); HashMap propertiesMap = new HashMap(); @@ -63,9 +65,6 @@ public void run() throws RigInternalError { } prereqDataSet.put(path, propertiesMap); Reporter.log("Written pre requisite data into map to be consumed during scenario execution
"); - /* - * if (ConfigManager.IsDebugEnabled()) Reporter.log(props.toString()); - */ } catch (Exception e) { this.hasError = true; logger.error(e.getMessage()); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java index c5b042a29..39993e2e1 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/BaseTestCaseUtil.java @@ -386,11 +386,9 @@ public static Response getRequestWithCookie(String url, String contentHeader, St getResponse = given().relaxedHTTPSValidation().cookie(cookieName, cookieValue).when().get(url).then() .extract().response(); } - logger.info(GlobalConstants.REST_ASSURED_STRING_2 + getResponse.asString()); - logger.info(GlobalConstants.REST_ASSURED_STRING_3 + getResponse.time()); GlobalMethods.ReportRequestAndResponse(null, getResponse.getHeaders().asList().toString(), url, null, - getResponse.asString()); + getResponse.asString(),true); return getResponse; } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java index cd8652a5e..70907d96f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/Orchestrator.java @@ -1,6 +1,7 @@ package io.mosip.testrig.dslrig.ivv.orchestrator; import java.io.File; + import java.io.FileWriter; import java.lang.management.ManagementFactory; import java.lang.reflect.Method; @@ -23,6 +24,12 @@ import org.testng.Assert; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; import org.testng.ITestResult; import org.testng.Reporter; import org.testng.SkipException; @@ -42,6 +49,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.admin.fw.config.BeanConfig; import io.mosip.testrig.apirig.testrunner.BaseTestCase; import io.mosip.testrig.apirig.testrunner.MosipTestRunner; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; @@ -53,10 +61,13 @@ import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; import io.mosip.testrig.dslrig.ivv.core.utils.Utils; import io.mosip.testrig.dslrig.ivv.dg.DataGenerator; +import io.mosip.testrig.dslrig.ivv.e2e.methods.BioAuthentication; import io.mosip.testrig.dslrig.ivv.parser.Parser; import com.sun.management.OperatingSystemMXBean; -public class Orchestrator { + +@ContextConfiguration(classes = {BeanConfig.class}) +public class Orchestrator extends AbstractTestNGSpringContextTests { private static Logger logger = Logger.getLogger(Orchestrator.class); String message = null; int countScenarioPassed = 0; @@ -72,6 +83,10 @@ public class Orchestrator { public static long suiteStartTime = System.currentTimeMillis(); public static long suiteMaxTimeInMillis = 7200000; // 2 hour in milliseconds static AtomicInteger counterLock = new AtomicInteger(0); // enable fairness policy + + + @Autowired + private ApplicationContext appContext; private HashMap packages = new HashMap() { { @@ -501,7 +516,8 @@ public StepInterface getInstanceOf(Scenario.Step step) throws ClassNotFoundException, IllegalAccessException, InstantiationException { String className = getPackage(step) + "." + step.getName().substring(0, 1).toUpperCase() + step.getName().substring(1); - return (StepInterface) Class.forName(className).newInstance(); +// return (StepInterface) Class.forName(className).newInstance(); + return (StepInterface) appContext.getBean(Class.forName(className)); } private void configToSystemProperties() { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java index 9beaacae4..5043e5471 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java @@ -1094,7 +1094,6 @@ public String packetSync(String personaPath, HashMap map, Scenar public void bioAuth(String modility, String bioValue, String uin, Properties deviceProps, TestCaseDTO test, BioAuth bioAuth, Scenario.Step step) throws RigInternalError { - if(test.getTestCaseName().contains("EKYC")) { test.setEndPoint(test.getEndPoint().replace("$kycPartnerKey$", kycPartnerKeyUrl)); test.setEndPoint(test.getEndPoint().replace("$kycPartnerName$", kycPartnerId)); @@ -1103,26 +1102,29 @@ public void bioAuth(String modility, String bioValue, String uin, Properties dev test.setEndPoint(test.getEndPoint().replace("$PartnerName$", partnerId)); } - test.setEndPoint(test.getEndPoint().replace("uinnumber", uin)); +// test.setEndPoint(test.getEndPoint().replace("uinnumber", uin)); String input = test.getInput(); input = JsonPrecondtion.parseAndReturnJsonContent(input, uin, INDIVIDUALID); - input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(BIOSUBTYPE), BIOSUBTYPE); - input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(BIOTYPE), BIOTYPE); - input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(DEVICECODE), DEVICECODE); + logger.info("After UIN: "+ input); + input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(BIOSUBTYPE), "identityRequest."+BIOSUBTYPE); + logger.info("After BioSubType: "+ input); + input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(BIOTYPE), "identityRequest."+BIOTYPE); + logger.info("After BioSubType: "+ input); + input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(DEVICECODE), "identityRequest."+DEVICECODE); input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(DEVICEPROVIDERID), - DEVICEPROVIDERID); + "identityRequest."+DEVICEPROVIDERID); input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(DEVICESERVICEID), - DEVICESERVICEID); + "identityRequest."+DEVICESERVICEID); input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(DEVICESERVICEVERSION), - DEVICESERVICEVERSION); + "identityRequest."+DEVICESERVICEVERSION); input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(DEVICEPROVIDER), - DEVICEPROVIDER); - input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(DEVICESUBTYPE), DEVICESUBTYPE); - input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty("make"), "make"); - input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(MODEL), MODEL); - input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(SERIALNO), SERIALNO); - input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty("type"), "type"); - input = JsonPrecondtion.parseAndReturnJsonContent(input, bioValue, "bioValue"); + "identityRequest."+DEVICEPROVIDER); + input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(DEVICESUBTYPE), "identityRequest."+DEVICESUBTYPE); + input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty("make"), "identityRequest.make"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(MODEL), "identityRequest."+MODEL); + input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty(SERIALNO), "identityRequest."+SERIALNO); + input = JsonPrecondtion.parseAndReturnJsonContent(input, deviceProps.getProperty("type"), "identityRequest.type"); + input = JsonPrecondtion.parseAndReturnJsonContent(input, bioValue, "identityRequest.bioValue"); test.setInput(input); Reporter.log("" + test.getTestCaseName() + "_" + modility + ""); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/application.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/application.properties index 324aedbb3..355348c79 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/application.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/application.properties @@ -83,4 +83,13 @@ fetchZone=/v1/masterdata/zones/zonename decryptKycUrl=/v1/identity/decryptEkycData retrieveIdByUin=/idrepository/v1/identity/idvid/ fetchLocationHierarchyLevels=/v1/masterdata/locationHierarchyLevels/ -fetchLocationHierarchy=/v1/masterdata/locations/locationhierarchy/ \ No newline at end of file +fetchLocationHierarchy=/v1/masterdata/locations/locationhierarchy/ + +# Reference ID used for crypto manager in authentication +partner.reference.id=PARTNER +# Reference ID used for crypto manager in internal authentication +internal.reference.id=INTERNAL +# Reference ID used for crypto manager in authentication for biometrics +partner.biometric.reference.id=IDA-FIR +# Reference ID used for crypto manager in internal authentication for biometrics +internal.biometric.reference.id=INTERNAL \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/BioAuth.yml b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/BioAuth.yml index 09fb54d80..c1d3a7436 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/BioAuth.yml +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/BioAuth.yml @@ -1,14 +1,22 @@ BioAuth: Ida_BioAuth_Biometric_Valid_Smoke_Pos: - endPoint: /v1/identity/authenticate?moduleName=$MODULENAME$&certsDir=$CERTSDIR$&id=uinnumber&partnerUrlSuffix=$PartnerKey$&keyFileNameByPartnerName=true&partnerName=$PartnerName$ + endPoint: /idauthentication/v1/auth/$partnerKeyURL$ role: resident restMethod: post inputTemplate: idaData/BioAuth/bioAuth outputTemplate: idaData/BioAuth/bioAuthResult input: '{ - "bioSubType": "", + "requestTime": "$TIMESTAMP$", + "individualId": "uinnumber", + "transactionId": "$TRANSACTIONID$", + "individualIdType": "UIN", + "bio": true, + "demo": false, + "otp": false, + "identityRequest":{ + "bioSubType": "UNKNOWN", "bioType": "FACE", - "bioValue": "BioValue", + "bioValue": "$FACE$", "deviceCode": "bc0b6848-6d45-46d1-a9bd-b334410bf823", "dateTime": "$DATETIME$", "deviceProviderID": "1873299273", @@ -21,9 +29,11 @@ BioAuth: "model": "4d36e96c-e325-11ce-bfc1-08002be10318", "serialNo": "78467171", "type": "Face", - "transactionId": "1234567890", - "timestamp": "$TIMESTAMP$" + "transactionId": "$TRANSACTIONID$", + "identityRequestTemplate": "idaData/BioAuth/BioAuthIdentityEncrypt", + "identityRequestEncUrl": "/idauthentication/v1/internal/encrypt" + } }' output: '{ - "authStatus": "true" + "authStatus": "true" }' \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/BioAuthIdentityEncrypt.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/BioAuthIdentityEncrypt.hbs index 50d8b03d5..b1399ed75 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/BioAuthIdentityEncrypt.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/BioAuthIdentityEncrypt.hbs @@ -1,5 +1,4 @@ { - "identityRequest": { "biometrics": [ { "data": { @@ -20,12 +19,12 @@ "serialNo": "{{serialNo}}", "type": "{{type}}" }, - "domainUri": "baseurl", + "domainUri": "$DOMAINURI$", "env": "Staging", "purpose": "AUTH", "qualityScore": 70, "requestedScore": 70, - "timestamp": "timestamp", + "timestamp": "$DATETIME$", "transactionId": "{{transactionId}}" }, "hash": "hash", @@ -33,7 +32,6 @@ "thumbprint": "IDAFIRthumbprint" } ], - "timestamp": "timestamp", + "timestamp": "$DATETIME$", "transactionID": "{{transactionId}}" - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/bioAuth.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/bioAuth.hbs index ac2eb2680..6c3e38c26 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/bioAuth.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/bioAuth.hbs @@ -1,34 +1,29 @@ { - "biometrics": [ - { - "data": { - "bioSubType": "{{bioSubType}}", - "bioType": "{{bioType}}", - "bioValue": "{{bioValue}}" , - "deviceCode": "{{deviceCode}}", - "deviceProviderID": "{{deviceProviderID}}", - "deviceServiceID": "{{deviceServiceID}}", - "deviceServiceVersion": "{{deviceServiceVersion}}", - "env": "Staging", - "domainUri": "https://qa-triple.mosip.net", - "digitalId": { - "serialNo": "{{serialNo}}", - "make": "{{make}}", - "model": "{{model}}", - "type": "{{type}}", - "deviceSubType": "{{deviceSubType}}", - "deviceProvider": "{{deviceProvider}}", - "deviceProviderId": "{{deviceProviderId}}", - "dateTime": "{{dateTime}}" - }, - "mosipProcess": "Auth", - "purpose": "Auth", - "qualityScore": 70, - "requestedScore": 70, - "timestamp": "{{timestamp}}", - "transactionId": "{{transactionId}}" - } - } + "id": "mosip.identity.auth", + "consentObtained": true, + "individualId": "{{individualId}}", + "individualIdType": "{{individualIdType}}", + "request": "wB6n9jA-jZ0NPJQjkyPyugYWzk4fJvgHnP8OKVu4urfnjdrT1O3hycb9HncVXMmgrmgbXwBAX-01RgHyB-EJJN9Ahk_u0JZTKiZfXLnmQI6lBjpruG-L2dJyfR0vAMt3Yb0W8BcNd1i2wMpAcu8tpm-aXz79nnh68_a3HdSM84799kopLW26pFo_iQzqNT0VuOg1OBEjtkb92NsCt-391v20UjRyIr1hIETHReOjCjI", + "requestHMAC": "EF4F5925A684CE1CE6D8F6E5C3385C641B06800AAE213C9F55696015FF7D8CFC", + "requestTime": "{{requestTime}}", + "filters": [ + {{#each filters}} + "{{type}}": {{bio}} + {{#unless @last}},{{/unless}} + {{/each}} ], - "timestamp": "{{timestamp}}" + "requestedAuth": { + "bio": {{bio}}, + "demo": {{demo}}, + "otp": {{otp}}, + "pin": false + }, + "requestSessionKey": "sessionkey", + "transactionID": "{{transactionId}}", + "domainUri": "baseurl", + "env": "Staging", + "keyIndex": "string", + "specVersion": "1.0", + "thumbprint": "partnerORinternalthumbprint", + "version": "1.0" } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/bioAuthResult.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/bioAuthResult.hbs index b94086870..8d0093218 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/bioAuthResult.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/BioAuth/bioAuthResult.hbs @@ -1,17 +1,5 @@ { - "URL": "$IGNORE$", - "authRequest": "$IGNORE$", - "authResponse": { - "signature": "$IGNORE$", - "body": { - "transactionID": "$IGNORE$", - "version": "$IGNORE$", - "id": "$IGNORE$", - "responseTime": "$IGNORE$", - "response": { - "authStatus": "{{authStatus}}", - "authToken": "$IGNORE$" - } + "response": { + "authStatus": "{{authStatus}}" } - } } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoAuth.yml b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoAuth.yml index d6e067549..cc8c356ea 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoAuth.yml +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoAuth.yml @@ -1,14 +1,23 @@ DemoAuth: auth_DemoAuth_Valid_Smoke_deg: - endPoint: /v1/identity/authenticate?moduleName=$MODULENAME$&certsDir=$CERTSDIR$&id=uinnumber&partnerUrlSuffix=$PartnerKeyURL$&keyFileNameByPartnerName=true&partnerName=$PartnerName$ - role: resident + endPoint: /idauthentication/v1/auth/$partnerKeyURL$ + role: ida restMethod: post - inputTemplate: idaData/DemoAuth/DemoIdentityEncrypt + inputTemplate: idaData/DemoAuth/demoAuth outputTemplate: idaData/DemoAuth/demoAuthResult input: '{ - "timestamp": "$TIMESTAMP$", - "transactionId": "1234567890" - }' + "requestTime": "$TIMESTAMP$", + "individualId": "uinnumber", + "transactionId": "1234567890", + "individualIdType": "UIN", + "bio": false, + "demo": true, + "otp": false, + "identityRequest":{ + "identityRequestTemplate": "idaData/DemoAuth/DemoIdentityEncrypt" + } + }' output: '{ "authStatus": "true" -}' \ No newline at end of file +}' + \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoKYC.yml b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoKYC.yml index 8c0d1b939..d129cd763 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoKYC.yml +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/DemoKYC.yml @@ -1,13 +1,21 @@ -DemoAuth: - auth_DemoAuth_Valid_Smoke_deg: - endPoint: /v1/identity/authenticate?moduleName=$MODULENAME$&certsDir=$CERTSDIR$&id=uinnumber&isKyc=true&partnerUrlSuffix=$PartnerKeyURL$&keyFileNameByPartnerName=true&partnerName=$PartnerName$ - role: resident +EkycDemo: + auth_EkycDemo_Auth_With_Valid_UIN_Smoke: + endPoint: /idauthentication/v1/kyc/$ekycPartnerKeyURL$ + role: ida restMethod: post - inputTemplate: idaData/DemoAuth/DemoIdentityEncrypt + inputTemplate: idaData/DemoAuth/ekycDemo outputTemplate: idaData/DemoAuth/demoEkycResult input: '{ - "timestamp": "$TIMESTAMP$", - "transactionId": "1234567890" + "requestTime": "$TIMESTAMP$", + "individualId": "uinnumber", + "transactionId": "1234567890", + "individualIdType": "UIN", + "bio": false, + "demo": true, + "otp": false, + "identityRequest":{ + "identityRequestTemplate": "idaData/DemoAuth/DemoIdentityEncrypt" + } }' output: '{ "kycStatus": "true" diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoAuth.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoAuth.hbs index bce7402da..4ae87e588 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoAuth.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoAuth.hbs @@ -1,7 +1,23 @@ { - "demographics": { - "{{key}}": "{{value}}" + "id": "mosip.identity.auth", + "consentObtained": true, + "individualId": "{{individualId}}", + "individualIdType": "{{individualIdType}}", + "request": "data", + "requestHMAC": "hmac", + "requestTime": "{{requestTime}}", + "requestedAuth": { + "bio": {{bio}}, + "demo": {{demo}}, + "otp": {{otp}}, + "pin": false }, - "timestamp": "{{timestamp}}", - "transactionID": "{{transactionId}}" + "requestSessionKey": "sessionkey", + "transactionID": "{{transactionId}}", + "domainUri": "baseurl", + "env": "Staging", + "keyIndex": "string", + "specVersion": "1.0", + "thumbprint": "partnerORinternalthumbprint", + "version": "1.0" } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoAuthResult.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoAuthResult.hbs index b94086870..78fab8ca3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoAuthResult.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoAuthResult.hbs @@ -1,17 +1,10 @@ { - "URL": "$IGNORE$", - "authRequest": "$IGNORE$", - "authResponse": { - "signature": "$IGNORE$", - "body": { - "transactionID": "$IGNORE$", - "version": "$IGNORE$", - "id": "$IGNORE$", - "responseTime": "$IGNORE$", - "response": { + "transactionID": "$IGNORE$", + "version": "$IGNORE$", + "id": "$IGNORE$", + "responseTime": "$IGNORE$", + "response": { "authStatus": "{{authStatus}}", "authToken": "$IGNORE$" - } } - } } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoEkycResult.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoEkycResult.hbs index 635e18f40..348b66ca9 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoEkycResult.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/demoEkycResult.hbs @@ -1,20 +1,12 @@ { - "URL": "$IGNORE$", - "authRequest": "$IGNORE$", - "authResponse": { - "signature": "$IGNORE$", - "body": { - "transactionID": "$IGNORE$", - "version": "$IGNORE$", - "id": "$IGNORE$", - "responseTime": "$IGNORE$", - "response": { - "kycStatus": {{kycStatus}}, + "transactionID": "$IGNORE$", + "version": "$IGNORE$", + "id": "$IGNORE$", + "responseTime": "$IGNORE$", + "response": { + "kycStatus": "{{kycStatus}}", "authToken": "$IGNORE$", "thumbprint": "$IGNORE$", - "identity": "$IGNORE$", - "sessionKey": "$IGNORE$" - } + "identity": "$IGNORE$" } - } } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/ekycDemo.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/ekycDemo.hbs new file mode 100644 index 000000000..196529890 --- /dev/null +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/DemoAuth/ekycDemo.hbs @@ -0,0 +1,23 @@ +{ + "id": "mosip.identity.kyc", + "consentObtained": true, + "individualId": "{{individualId}}", + "individualIdType": "{{individualIdType}}", + "request": "data", + "requestHMAC": "hmac", + "requestTime": "{{requestTime}}", + "requestedAuth": { + "bio": {{bio}}, + "demo": {{demo}}, + "otp": {{otp}}, + "pin": false + }, + "requestSessionKey": "sessionkey", + "transactionID": "{{transactionId}}", + "domainUri": "baseurl", + "env": "Staging", + "keyIndex": "string", + "specVersion": "1.0", + "thumbprint": "partnerORinternalthumbprint", + "version": "1.0" +} \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/EkycBio.yml b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/EkycBio.yml index 8504d45d9..e28cd0a9d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/EkycBio.yml +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/EkycBio.yml @@ -1,15 +1,22 @@ -BioAuth: - Ida_EKYC_Biometric_Valid_Smoke_Pos: - endPoint: /v1/identity/authenticate?moduleName=$MODULENAME$&certsDir=$CERTSDIR$&id=uinnumber&isKyc=true&partnerUrlSuffix=$kycPartnerKey$&keyFileNameByPartnerName=true&partnerName=$kycPartnerName$ +EkycBio: + auth_EkycBio_Face_With_Valid_Smoke_Pos: + endPoint: /idauthentication/v1/kyc/$ekycPartnerKeyURL$ role: resident - kycFields: ["gender"] restMethod: post inputTemplate: idaData/EkycBio/ekycBio outputTemplate: idaData/EkycBio/ekycBioResult input: '{ - "bioSubType": "", + "requestTime": "$TIMESTAMP$", + "individualId": "3974189657", + "transactionId": "1234567890", + "individualIdType": "UIN", + "bio": true, + "demo": false, + "otp": false, + "identityRequest":{ + "bioSubType": "UNKNOWN", "bioType": "FACE", - "bioValue": "BioValue", + "bioValue": "$FACE$", "deviceCode": "bc0b6848-6d45-46d1-a9bd-b334410bf823", "dateTime": "$DATETIME$", "deviceProviderID": "1873299273", @@ -17,14 +24,16 @@ BioAuth: "deviceServiceVersion": "SB.WIN.001", "deviceProvider": "SYNCBYTE", "deviceProviderId": "SYNCBYTE.LTC165", - "deviceSubType": "Single", + "deviceSubType": "Full face", "make": "Logitech", "model": "4d36e96c-e325-11ce-bfc1-08002be10318", "serialNo": "78467171", "type": "Face", - "transactionId": "1234567890", - "timestamp": "$TIMESTAMP$" + "transactionId": "1234567890", + "identityRequestTemplate": "idaData/EkycBio/EkycBioIdentityEncrypt", + "identityRequestEncUrl": "/idauthentication/v1/internal/encrypt" + } }' output: '{ - "kycStatus": "true" + "kycStatus": "true" }' \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/EkycIdentityEncrypt.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/EkycBioIdentityEncrypt.hbs similarity index 89% rename from mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/EkycIdentityEncrypt.hbs rename to mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/EkycBioIdentityEncrypt.hbs index 50d8b03d5..47a93768b 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/EkycIdentityEncrypt.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/EkycBioIdentityEncrypt.hbs @@ -1,5 +1,4 @@ { - "identityRequest": { "biometrics": [ { "data": { @@ -25,7 +24,7 @@ "purpose": "AUTH", "qualityScore": 70, "requestedScore": 70, - "timestamp": "timestamp", + "timestamp": "$DATETIME$", "transactionId": "{{transactionId}}" }, "hash": "hash", @@ -33,7 +32,6 @@ "thumbprint": "IDAFIRthumbprint" } ], - "timestamp": "timestamp", + "timestamp": "$DATETIME$", "transactionID": "{{transactionId}}" - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/ekycBio.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/ekycBio.hbs index dac2bfe38..a1fb38861 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/ekycBio.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/ekycBio.hbs @@ -1,34 +1,23 @@ { - "biometrics": [ - { - "data": { - "bioSubType": "{{bioSubType}}", - "bioType": "{{bioType}}", - "bioValue": "{{bioValue}}" , - "deviceCode": "{{deviceCode}}", - "deviceProviderID": "{{deviceProviderID}}", - "deviceServiceID": "{{deviceServiceID}}", - "deviceServiceVersion": "{{deviceServiceVersion}}", - "env": "Staging", - "domainUri": "https://qa-double-rc2.mosip.net", - "digitalId": { - "serialNo": "{{serialNo}}", - "make": "{{make}}", - "model": "{{model}}", - "type": "{{type}}", - "deviceSubType": "{{deviceSubType}}", - "deviceProvider": "{{deviceProvider}}", - "deviceProviderId": "{{deviceProviderId}}", - "dateTime": "{{dateTime}}" - }, - "mosipProcess": "Auth", - "purpose": "Auth", - "qualityScore": 70, - "requestedScore": 70, - "timestamp": "{{timestamp}}", - "transactionId": "{{transactionId}}" - } - } - ], - "timestamp": "{{timestamp}}" + "id": "mosip.identity.kyc", + "consentObtained": true, + "individualId": "{{individualId}}", + "individualIdType": "{{individualIdType}}", + "request": "data", + "requestHMAC": "hmac", + "requestTime": "{{requestTime}}", + "requestedAuth": { + "bio": {{bio}}, + "demo": {{demo}}, + "otp": {{otp}}, + "pin": false + }, + "requestSessionKey": "sessionkey", + "transactionID": "{{transactionId}}", + "domainUri": "baseurl", + "env": "{{env}}", + "keyIndex": "string", + "specVersion": "1.0", + "thumbprint": "partnerORinternalthumbprint", + "version": "1.0" } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/ekycBioResult.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/ekycBioResult.hbs index fbf913467..dcf4bb7c8 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/ekycBioResult.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycBio/ekycBioResult.hbs @@ -1,20 +1,12 @@ { - "URL": "$IGNORE$", - "authRequest": "$IGNORE$", - "authResponse": { - "signature": "$IGNORE$", - "body": { - "transactionID": "$IGNORE$", - "version": "$IGNORE$", - "id": "$IGNORE$", - "responseTime": "$IGNORE$", - "response": { - "kycStatus": {{kycStatus}}, + "transactionID": "$IGNORE$", + "version": "$IGNORE$", + "id": "$IGNORE$", + "responseTime": "$IGNORE$", + "response": { + "kycStatus": "{{kycStatus}}", "authToken": "$IGNORE$", "thumbprint": "$IGNORE$", - "identity": "$IGNORE$", - "sessionKey": "$IGNORE$" - } + "identity": "$IGNORE$" } - } } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/EkycOtp.yml b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/EkycOtp.yml index d7671ac94..f29f0a4a2 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/EkycOtp.yml +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/EkycOtp.yml @@ -1,22 +1,36 @@ EkycOtp: - Ida_EkycOtp_Auth_With_Valid_Smoke_Pos: - endPoint: /v1/identity/authenticate?moduleName=$MODULENAME$&certsDir=$CERTSDIR$&transactionId=$TRANSACTIONID$&id=uinnumber&isKyc=true&partnerUrlSuffix=$partnerKeyURL$&keyFileNameByPartnerName=true&partnerName=$PartnerName$ + auth_EkycOtp_Auth_With_Valid_UIN_Smoke: + endPoint: /idauthentication/v1/kyc/$ekycPartnerKeyURL$ role: resident restMethod: post + checkErrorsOnlyInResponse: true inputTemplate: idaData/EkycOtp/ekycOtp outputTemplate: idaData/EkycOtp/ekycOtpResult input: '{ - "individualId": "uinnumber", - "otp": "1111dgsg", - "transactionID": "$TRANSACTIONID$", - "timestamp": "$TIMESTAMP$" + "requestTime": "$TIMESTAMP$", + "individualId": "3974189657", + "transactionId": "$TRANSACTIONID$", + "individualIdType": "UIN", + "bio": false, + "demo": false, + "otp": true, + "sendOtp":{ + "transactionID": "$TRANSACTIONID$", + "requestTime": "$TIMESTAMP$", + "individualId": "3974189657", + "individualIdType": "UIN", + "sendOtpReqTemplate": "idaData/EkycOtp/sendOtp", + "sendOtpEndPoint": "/idauthentication/v1/otp/$ekycPartnerKeyURL$", + "otpIdentyEnryptRequestPath": "idaData/EkycOtp/EkycotpIdentityEncrypt.json" + } }' output: '{ "kycStatus": "true", "sendOtpResp":{ - "transactionID": "1234567890", + "transactionID": "$TRANSACTIONID$", "maskedMobile": "$IGNORE$", "sendOtpResTemplate":"idaData/EkycOtp/sendOtpRes", "maskedEmail": "$IGNORE$" } -}' \ No newline at end of file +}' + \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/EkycotpIdentityEncrypt.json b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/EkycotpIdentityEncrypt.json index 4979d7c9b..e8918c11d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/EkycotpIdentityEncrypt.json +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/EkycotpIdentityEncrypt.json @@ -1,6 +1,4 @@ { - "identityRequest": { "timestamp": "2019-03-25T11:45:57.086+05:30", "otp": "931646" - } -} +} \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/ekycOtp.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/ekycOtp.hbs index 90ca9d015..aeffbe4b4 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/ekycOtp.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/ekycOtp.hbs @@ -1,7 +1,23 @@ { - - "otp": "{{otp}}", - "individualId": "{{individualId}}", - "transactionID": "{{transactionID}}", - "timestamp": "{{timestamp}}" + "id": "mosip.identity.kyc", + "consentObtained": true, + "individualId": "{{individualId}}", + "individualIdType": "{{individualIdType}}", + "request": "data", + "requestHMAC": "hmac", + "requestTime": "{{requestTime}}", + "requestedAuth": { + "bio": {{bio}}, + "demo": {{demo}}, + "otp": {{otp}}, + "pin": false + }, + "requestSessionKey": "sessionkey", + "transactionID": "{{transactionId}}", + "domainUri": "baseurl", + "env": "Staging", + "keyIndex": "string", + "specVersion": "1.0", + "thumbprint": "partnerORinternalthumbprint", + "version": "1.0" } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/ekycOtpResult.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/ekycOtpResult.hbs index 4860cbc4f..dcf4bb7c8 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/ekycOtpResult.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/ekycOtpResult.hbs @@ -1,21 +1,12 @@ { - "URL": "$IGNORE$", - "authRequest": "$IGNORE$", - "authResponse": { - "signature": "$IGNORE$", - "body": { - "transactionID": "$IGNORE$", - "version": "$IGNORE$", - "id": "$IGNORE$", - "responseTime": "$IGNORE$", - "response": { - "authStatus": "$IGNORE$", - "kycStatus": {{kycStatus}}, + "transactionID": "$IGNORE$", + "version": "$IGNORE$", + "id": "$IGNORE$", + "responseTime": "$IGNORE$", + "response": { + "kycStatus": "{{kycStatus}}", "authToken": "$IGNORE$", "thumbprint": "$IGNORE$", - "identity": "$IGNORE$", - "sessionKey": "$IGNORE$" - } + "identity": "$IGNORE$" } - } } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/sendOtpRes.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/sendOtpRes.hbs index ba5fe9524..785a1441d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/sendOtpRes.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/EkycOtp/sendOtpRes.hbs @@ -1,6 +1,6 @@ { - "id": "mosip.identity.otp", - "version": "1.0", + "id": "$IGNORE$", + "version": "$IGNORE$", "transactionID": "{{transactionID}}", "responseTime": "$IGNORE$", "response": { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/MultiFactorAuth.yml b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/MultiFactorAuth.yml index 4498db01f..296f88d41 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/MultiFactorAuth.yml +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/MultiFactorAuth.yml @@ -1,14 +1,29 @@ MultiFactorAuth: auth_MultiFactorAuth_Biometric_Face_With_Valid_Smoke_Pos: - endPoint: /v1/identity/authenticate?moduleName=$MODULENAME$&certsDir=$CERTSDIR$&id=uinnumber&partnerUrlSuffix=$partnerKeyURL$&keyFileNameByPartnerName=true&partnerName=$PartnerName$ + endPoint: /idauthentication/v1/auth/$partnerKeyURL$ role: resident restMethod: post + checkErrorsOnlyInResponse: true inputTemplate: idaData/MultiFactorAuth/multiFactorAuth outputTemplate: idaData/MultiFactorAuth/multiFactorAuthResult input: '{ - "individualId": "idaData", - "otp": "otp", - "bioSubType": "", + "requestTime": "$TIMESTAMP$", + "individualId": "3974189657", + "transactionId": "1234567890", + "individualIdType": "UIN", + "bio": true, + "demo": true, + "otp": true, + "sendOtp":{ + "transactionID": "1234567890", + "requestTime": "$TIMESTAMP$", + "individualId": "3974189657", + "individualIdType": "UIN", + "sendOtpReqTemplate": "idaData/MultiFactorAuth/sendOtp", + "sendOtpEndPoint": "/idauthentication/v1/otp/$partnerKeyURL$", + }, + "identityRequest":{ + "bioSubType": "UNKNOWN", "bioType": "FACE", "bioValue": "$FACE$", "deviceCode": "bc0b6848-6d45-46d1-a9bd-b334410bf823", @@ -18,15 +33,17 @@ MultiFactorAuth: "deviceServiceVersion": "SB.WIN.001", "deviceProvider": "SYNCBYTE", "deviceProviderId": "SYNCBYTE.LTC165", - "deviceSubType": "Single", + "deviceSubType": "Full face", "make": "Logitech", "model": "4d36e96c-e325-11ce-bfc1-08002be10318", "serialNo": "78467171", "type": "Face", "key": "dob", - "value": "1970/07/08", - "transactionId": "1234567890", - "timestamp": "$TIMESTAMP$" + "value": "1999/01/01", + "transactionId": "1234567890", + "identityRequestTemplate": "idaData/MultiFactorAuth/MultiFactorIdentityEncrypt", + "identityRequestEncUrl": "/idauthentication/v1/internal/encrypt" + } }' output: '{ "authStatus": "true", diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/multiFactorAuth.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/multiFactorAuth.hbs index d12b44311..4ae87e588 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/multiFactorAuth.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/multiFactorAuth.hbs @@ -1,39 +1,23 @@ { - "individualId": "{{individualId}}", - "otp": "{{otp}}", - "demographics": { - "{{key}}": "{{value}}" - }, - "biometrics": [ - { - "data": { - "bioSubType": "{{bioSubType}}", - "bioType": "{{bioType}}", - "bioValue": "{{bioValue}}" , - "deviceCode": "{{deviceCode}}", - "deviceProviderID": "{{deviceProviderID}}", - "deviceServiceID": "{{deviceServiceID}}", - "deviceServiceVersion": "{{deviceServiceVersion}}", - "env": "Staging", - "domainUri": "https://qa-triple.mosip.net", - "digitalId": { - "serialNo": "{{serialNo}}", - "make": "{{make}}", - "model": "{{model}}", - "type": "{{type}}", - "deviceSubType": "{{deviceSubType}}", - "deviceProvider": "{{deviceProvider}}", - "deviceProviderId": "{{deviceProviderId}}", - "dateTime": "{{dateTime}}" - }, - "mosipProcess": "Auth", - "purpose": "Auth", - "qualityScore": 70, - "requestedScore": 70, - "timestamp": "{{timestamp}}", - "transactionId": "{{transactionId}}" - } - } - ], - "timestamp": "{{timestamp}}" - } \ No newline at end of file + "id": "mosip.identity.auth", + "consentObtained": true, + "individualId": "{{individualId}}", + "individualIdType": "{{individualIdType}}", + "request": "data", + "requestHMAC": "hmac", + "requestTime": "{{requestTime}}", + "requestedAuth": { + "bio": {{bio}}, + "demo": {{demo}}, + "otp": {{otp}}, + "pin": false + }, + "requestSessionKey": "sessionkey", + "transactionID": "{{transactionId}}", + "domainUri": "baseurl", + "env": "Staging", + "keyIndex": "string", + "specVersion": "1.0", + "thumbprint": "partnerORinternalthumbprint", + "version": "1.0" +} \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/multiFactorAuthResult.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/multiFactorAuthResult.hbs index b94086870..78fab8ca3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/multiFactorAuthResult.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/MultiFactorAuth/multiFactorAuthResult.hbs @@ -1,17 +1,10 @@ { - "URL": "$IGNORE$", - "authRequest": "$IGNORE$", - "authResponse": { - "signature": "$IGNORE$", - "body": { - "transactionID": "$IGNORE$", - "version": "$IGNORE$", - "id": "$IGNORE$", - "responseTime": "$IGNORE$", - "response": { + "transactionID": "$IGNORE$", + "version": "$IGNORE$", + "id": "$IGNORE$", + "responseTime": "$IGNORE$", + "response": { "authStatus": "{{authStatus}}", "authToken": "$IGNORE$" - } } - } } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/OtpAuth.yml b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/OtpAuth.yml index c3e6b9458..23925c7a8 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/OtpAuth.yml +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/OtpAuth.yml @@ -1,22 +1,35 @@ OtpAuth: - Ida_OTP_Auth_With_Valid_Smoke_Pos: - endPoint: /v1/identity/authenticate?moduleName=$MODULENAME$&certsDir=$CERTSDIR$&transactionId=$TRANSACTIONID$&id=uinnumber&partnerUrlSuffix=$PartnerKey$&keyFileNameByPartnerName=true&partnerName=$PartnerName$ + auth_OTP_Auth_With_Valid_UIN_Smoke_Pos: + endPoint: /idauthentication/v1/auth/$partnerKeyURL$ role: resident restMethod: post + checkErrorsOnlyInResponse: true inputTemplate: idaData/OtpAuth/otpAuth outputTemplate: idaData/OtpAuth/otpAuthResult input: '{ - "individualId": "uinnumber", - "otp": "otp", - "transactionID": "$TRANSACTIONID$", - "timestamp": "$TIMESTAMP$" + "requestTime": "$TIMESTAMP$", + "individualId": "3974189657", + "transactionId": "$TRANSACTIONID$", + "individualIdType": "UIN", + "bio": false, + "demo": false, + "otp": true, + "sendOtp":{ + "transactionID": "$TRANSACTIONID$", + "requestTime": "$TIMESTAMP$", + "individualId": "3974189657", + "individualIdType": "UIN", + "sendOtpReqTemplate": "idaData/OtpAuth/sendOtp", + "sendOtpEndPoint": "/idauthentication/v1/otp/$partnerKeyURL$", + "otpIdentyEnryptRequestPath": "idaData/OtpAuth/OtpIdentityEncrypt.json" + } }' output: '{ "authStatus": "true", "sendOtpResp":{ - "transactionID": "$IGNORE$", "maskedMobile": "$IGNORE$", "sendOtpResTemplate":"idaData/OtpAuth/sendOtpRes", "maskedEmail": "$IGNORE$" } -}' \ No newline at end of file +}' + \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/OtpIdentityEncrypt.json b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/OtpIdentityEncrypt.json index 4979d7c9b..e8918c11d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/OtpIdentityEncrypt.json +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/OtpIdentityEncrypt.json @@ -1,6 +1,4 @@ { - "identityRequest": { "timestamp": "2019-03-25T11:45:57.086+05:30", "otp": "931646" - } -} +} \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/otpAuth.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/otpAuth.hbs index 77e74154a..4ae87e588 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/otpAuth.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/otpAuth.hbs @@ -1,6 +1,23 @@ { - "otp": "{{otp}}", - "individualId": "{{individualId}}", - "transactionID": "{{transactionID}}", - "timestamp": "{{timestamp}}" + "id": "mosip.identity.auth", + "consentObtained": true, + "individualId": "{{individualId}}", + "individualIdType": "{{individualIdType}}", + "request": "data", + "requestHMAC": "hmac", + "requestTime": "{{requestTime}}", + "requestedAuth": { + "bio": {{bio}}, + "demo": {{demo}}, + "otp": {{otp}}, + "pin": false + }, + "requestSessionKey": "sessionkey", + "transactionID": "{{transactionId}}", + "domainUri": "baseurl", + "env": "Staging", + "keyIndex": "string", + "specVersion": "1.0", + "thumbprint": "partnerORinternalthumbprint", + "version": "1.0" } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/otpAuthResult.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/otpAuthResult.hbs index b94086870..78fab8ca3 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/otpAuthResult.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/otpAuthResult.hbs @@ -1,17 +1,10 @@ { - "URL": "$IGNORE$", - "authRequest": "$IGNORE$", - "authResponse": { - "signature": "$IGNORE$", - "body": { - "transactionID": "$IGNORE$", - "version": "$IGNORE$", - "id": "$IGNORE$", - "responseTime": "$IGNORE$", - "response": { + "transactionID": "$IGNORE$", + "version": "$IGNORE$", + "id": "$IGNORE$", + "responseTime": "$IGNORE$", + "response": { "authStatus": "{{authStatus}}", "authToken": "$IGNORE$" - } } - } } \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/sendOtpRes.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/sendOtpRes.hbs index 07be15b11..88b6bad27 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/sendOtpRes.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/idaData/OtpAuth/sendOtpRes.hbs @@ -1,7 +1,8 @@ { - "id": "mosip.identity.otp", - "version": "1.0", + "id": "$IGNORE$", + "version": "$IGNORE$", "transactionID": "$IGNORE$", + "errors": "$IGNORE$", "responseTime": "$IGNORE$", "response": { "maskedMobile": "{{maskedMobile}}", diff --git a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CertificateService.java b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CertificateService.java index 6850ceb0d..6a1ec75d4 100644 --- a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CertificateService.java +++ b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CertificateService.java @@ -6,8 +6,6 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Paths; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.KeyStore; diff --git a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CommandsService.java b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CommandsService.java index caaa7db10..b526d9f80 100644 --- a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CommandsService.java +++ b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CommandsService.java @@ -19,9 +19,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; -import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.StandardCopyOption; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; diff --git a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CryptoUtil.java b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CryptoUtil.java index 4de3fe823..1019ea64a 100644 --- a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CryptoUtil.java +++ b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/CryptoUtil.java @@ -8,8 +8,6 @@ import java.io.FileOutputStream; import java.io.InputStream; import java.math.BigInteger; -import java.nio.file.Files; -import java.nio.file.Path; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.KeyFactory; diff --git a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PreregSyncService.java b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PreregSyncService.java index 004ca7d95..bded5b1ca 100644 --- a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PreregSyncService.java +++ b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PreregSyncService.java @@ -1,6 +1,7 @@ package io.mosip.testrig.dslrig.packetcreator.service; + import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java index 0081b16a8..7ce5e0e60 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java @@ -2,22 +2,16 @@ import java.io.BufferedReader; import java.io.File; -//import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; -//import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; -//import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -//import java.time.LocalDateTime; -//import java.time.ZoneId; import java.util.ArrayList; import java.util.Arrays; -//import java.util.Arrays; import java.util.Base64; import java.util.Enumeration; import java.util.HashMap; @@ -35,8 +29,6 @@ import io.mosip.testrig.dslrig.dataprovider.mds.MDSClientInterface; import io.mosip.testrig.dslrig.dataprovider.mds.MDSClientNoMDS; import io.mosip.testrig.dslrig.dataprovider.models.BioModality; -//import org.apache.commons.io.IOUtils; -//import org.apache.commons.lang3.tuple.Pair; import io.mosip.testrig.dslrig.dataprovider.models.BiometricDataModel; import io.mosip.testrig.dslrig.dataprovider.models.IrisDataModel; import io.mosip.testrig.dslrig.dataprovider.models.ResidentModel; @@ -54,8 +46,6 @@ import org.xml.sax.SAXException; import com.jamesmurty.utils.XMLBuilder; -//import java.util.Date; - import io.mosip.mock.sbi.test.CentralizedMockSBI; import io.mosip.testrig.dslrig.dataprovider.variables.VariableManager; @@ -1180,14 +1170,11 @@ static List generateIris(int count, String contextKey) throws Exc int currentScenarioNumber = Integer.valueOf(afterscenario); - // If the available impressions are less than scenario number, pick the random - // one - + // If the available impressions are less than scenario number, pick the random one // otherwise pick the impression of same of scenario number int impressionToPick = (currentScenarioNumber < numberOfSubfolders) ? currentScenarioNumber : randomNumber; File folder = new File(srcPath + "/" + String.format("%03d", impressionToPick)); - File[] listOfFiles = folder.listFiles(); for (File file : listOfFiles) { From dd7ceca36a7236137f47bd6c1e5ad14247032261 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Tue, 16 Jul 2024 16:18:52 +0530 Subject: [PATCH 39/57] MOSIP-32116 Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/e2e/methods/OidcClient.java | 2 +- .../dslrig/ivv/e2e/methods/SetContext.java | 7 ++- .../dslrig/ivv/e2e/methods/SwitchContext.java | 3 +- .../ivv/orchestrator/PacketUtility.java | 3 +- .../src/main/resources/config/scenarios.json | 61 +++++++++++++++++++ .../service/PacketMakerService.java | 9 ++- mosipTestDataProvider/pom.xml | 2 +- 7 files changed, 80 insertions(+), 7 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java index 6aff52d39..6bce1da3f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/OidcClient.java @@ -339,7 +339,7 @@ public void run() throws RigInternalError, FeatureNotSupportedError { step.getScenario().getOidcPmsProp().put("oidcJwkKey" + step.getScenario().getId(), oidcJwkKey); if (inputForOidcClient.contains("$OIDCJWKKEY$")) { - inputForOidcClient = inputForOidcClient.replace("$OIDCJWKKEY$", oidcJwkKey.toString()); + inputForOidcClient = inputForOidcClient.replace("$OIDCJWKKEY$", oidcJwkKey); } // String inputForOidcClient = test11.getInput(); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java index 7c196ff6c..4221fc43f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java @@ -45,6 +45,8 @@ public void run() throws RigInternalError { String invalidIdSchemaFlag = ""; String skipBiometricClassificationFlag = ""; String skipApplicantDocumentsFlag = ""; + String invalidDateFlag = ""; + HashMap map = new HashMap(); HashMap dummyholder = new HashMap(); if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { @@ -85,6 +87,9 @@ else if (value.startsWith("$$")) { if (step.getParameters().size() == 4 && step.getParameters().get(3).contains("skipApplicantDocuments")) //Skip applicant documents in the packet skipApplicantDocumentsFlag = step.getParameters().get(3); + + if (step.getParameters().size() == 4 && step.getParameters().get(3).contains("invalidCreationDate")) //Invalid packet creation date + invalidDateFlag = step.getParameters().get(3); // consent value either "yes" or "no" if (step.getParameters().size() == 5 @@ -110,7 +115,7 @@ else if (value.startsWith("$$")) { else if (map != null) packetUtility.createContexts(negative, contextKeyValue, map, generatePrivateKey, status, BaseTestCase.ApplnURI + "/", step, invalidCertFlag, consent, changeSupervisorNameToDiffCase, - invalidEncryptedHashFlag, invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag); + invalidEncryptedHashFlag, invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag,invalidDateFlag); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java index 4908da229..8ddddef35 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java @@ -40,6 +40,7 @@ public void run() throws RigInternalError { String invalidIdSchemaFlag = ""; String skipBiometricClassificationFlag = ""; String skipApplicantDocumentsFlag = ""; + String invalidDateFlag = ""; if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.warn("SwitchContext Arugemnt is Missing : Please pass the argument from DSL sheet"); } else { @@ -53,7 +54,7 @@ public void run() throws RigInternalError { if (step.getParameters().size() > 2) // true/false (want to generate privatekey) generatePrivateKey = Boolean.parseBoolean(step.getParameters().get(2)); if (map != null) - packetUtility.createContexts("",contextKeyValue, map, generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step,invalidCertFlag,consent,supervisorFlag,invalidEncryptedHashFlag,invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag); + packetUtility.createContexts("",contextKeyValue, map, generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step,invalidCertFlag,consent,supervisorFlag,invalidEncryptedHashFlag,invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag,invalidDateFlag); else if (userAndMachineDetailParam != null) packetUtility.createContexts(contextKeyValue, userAndMachineDetailParam, generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java index 5043e5471..577c059ca 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java @@ -771,7 +771,7 @@ public String createContexts(String negative, String key, HashMap io.mosip.mock.mds mock-mds - 1.2.0.1-SNAPSHOT + 1.2.0.2 From 56e1acf429fc5aec1a029a4438bd1f892c982842 Mon Sep 17 00:00:00 2001 From: shubham-technoforte Date: Tue, 16 Jul 2024 23:52:25 +0530 Subject: [PATCH 40/57] [MOSIP-34026] seperated push triggers for DSL Orchestrator and Packet Utility Signed-off-by: shubham-technoforte --- .github/workflows/automationtests.yaml | 74 ++++++++++ .github/workflows/dslorchestrator.yaml | 71 ++++++++++ .github/workflows/packetcreator.yaml | 107 ++++++++++++++ .github/workflows/push-trigger.yml | 186 ------------------------- .github/workflows/release-changes.yml | 29 ---- .github/workflows/tag.yml | 35 ----- 6 files changed, 252 insertions(+), 250 deletions(-) create mode 100644 .github/workflows/automationtests.yaml create mode 100644 .github/workflows/dslorchestrator.yaml create mode 100644 .github/workflows/packetcreator.yaml delete mode 100644 .github/workflows/push-trigger.yml delete mode 100644 .github/workflows/release-changes.yml delete mode 100644 .github/workflows/tag.yml diff --git a/.github/workflows/automationtests.yaml b/.github/workflows/automationtests.yaml new file mode 100644 index 000000000..8eb4b3e88 --- /dev/null +++ b/.github/workflows/automationtests.yaml @@ -0,0 +1,74 @@ +name: Automation Tests Build + +on: + workflow_call: + inputs: + SERVICE_LOCATION: + required: true + type: string + +jobs: + build-maven-automationtest: + uses: mosip/kattu/.github/workflows/maven-build.yml@master + with: + SERVICE_LOCATION: ./ + BUILD_ARTIFACT: automationtest + secrets: + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + build-automationtests-local: + needs: build-maven-automationtest + runs-on: ubuntu-latest + env: + NAMESPACE: ${{ secrets.dev_namespace_docker_hub }} + SERVICE_NAME: mosip-acceptance-tests + SERVICE_LOCATION: mosip-acceptance-tests + BUILD_ARTIFACT: mosip-acceptance-tests + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + distribution: adopt + java-version: 11 + server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml + settings-path: ${{ github.workspace }} # location for the settings.xml file + + - name: Setup the settings file for ossrh server + run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml + + - name: Build Automationtests with Maven + run: | + cd ${{ env.SERVICE_LOCATION}} + mvn clean package -s $GITHUB_WORKSPACE/settings.xml + - name: Copy configuration files to target directory. + run: | + cd ./${{env.SERVICE_LOCATION}} + mkdir build_files + cp $( find -name 'dslrig-ivv-orchestrator-*-dependencies.jar' -type f ) build_files + cp -r ./ivv-orchestrator/target/classes/config build_files/ + cp -r ./ivv-orchestrator/target/classes/local build_files/ + cp -r ./ivv-orchestrator/src/main/resources/local/scenarios scenarios + zip -r ${{env.BUILD_ARTIFACT}}.zip build_files/* scenarios/ + - name: Ready the springboot artifacts + if: ${{ !contains(github.ref, 'master') || !contains(github.ref, 'main') }} + run: | + ## FIND JARS & COPY ONLY EXECUTABLE JARs STORED UNDER TARGET DIRECTORY + cd ${{ env.SERVICE_LOCATION }} && find ./ -path '*/target/*' -exec zip ${{ env.BUILD_ARTIFACT }}.zip {} + + - name: Upload the springboot jars + if: ${{ !contains(github.ref, 'master') || !contains(github.ref, 'main') }} + uses: actions/upload-artifact@v3 + with: + name: ${{ env.BUILD_ARTIFACT }} + path: ./${{ env.SERVICE_LOCATION }}/${{ env.BUILD_ARTIFACT }}.zip + + - uses: 8398a7/action-slack@v3 + with: + status: ${{ job.status }} + fields: repo,message,author,commit,workflow,job # selectable (default: repo,message) + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required + if: failure() # Pick up events even if the job fails or is canceled. diff --git a/.github/workflows/dslorchestrator.yaml b/.github/workflows/dslorchestrator.yaml new file mode 100644 index 000000000..8d6f187c1 --- /dev/null +++ b/.github/workflows/dslorchestrator.yaml @@ -0,0 +1,71 @@ +name: DSL Orchestrator Build + +on: + release: + types: [published] + pull_request: + types: [opened, reopened, synchronize] + paths: + - 'mosip-acceptance-tests/**' + workflow_dispatch: + inputs: + message: + description: 'Message for manually triggering' + required: false + default: 'Triggered for Updates' + type: string + push: + branches: + - '!release-branch' + - release* + - master + - develop + - 1.* + - MOSIP* + paths: + - 'mosip-acceptance-tests/**' + +jobs: + call-automationtests: + uses: ./.github/workflows/automationtests.yaml + with: + SERVICE_LOCATION: 'mosip-acceptance-tests/ivv-orchestrator' + + build-dsl-orchestrator-docker: + needs: call-automationtests + strategy: + matrix: + include: + - SERVICE_LOCATION: 'mosip-acceptance-tests/ivv-orchestrator' + SERVICE_NAME: 'dsl-orchestrator' + BUILD_ARTIFACT: 'mosip-acceptance-tests' + ONLY_DOCKER: true + fail-fast: false + name: ${{ matrix.SERVICE_NAME }} + uses: mosip/kattu/.github/workflows/docker-build.yml@master + with: + SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} + SERVICE_NAME: ${{ matrix.SERVICE_NAME }} + BUILD_ARTIFACT: ${{ matrix.BUILD_ARTIFACT }} + ONLY_DOCKER: ${{ matrix.ONLY_DOCKER }} + secrets: + DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} + ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} + RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + sonar_analysis: + needs: call-automationtests + if: "${{ github.event_name != 'pull_request' }}" + uses: mosip/kattu/.github/workflows/maven-sonar-analysis.yml@master + with: + SERVICE_LOCATION: ./ + PROJECT_KEY: mosip_mosip-dsl-test-rig + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + ORG_KEY: ${{ secrets.ORG_KEY }} + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} diff --git a/.github/workflows/packetcreator.yaml b/.github/workflows/packetcreator.yaml new file mode 100644 index 000000000..6f36a3f5f --- /dev/null +++ b/.github/workflows/packetcreator.yaml @@ -0,0 +1,107 @@ +name: Packet Creator Build + +on: + release: + types: [published] + pull_request: + types: [opened, reopened, synchronize] + paths: + - 'mosip-packet-creator/**' + workflow_dispatch: + inputs: + message: + description: 'Message for manually triggering' + required: false + default: 'Triggered for Updates' + type: string + push: + branches: + - '!release-branch' + - release* + - master + - develop + - 1.* + - MOSIP* + paths: + - 'mosip-packet-creator/**' + +jobs: + call-automationtests: + uses: ./.github/workflows/automationtests.yaml + with: + SERVICE_LOCATION: 'mosip-packet-creator' + ## Recreate zips to provide support for docker unzip operation + recreate-packet-creator-zips: + needs: call-automationtests + runs-on: ubuntu-latest + env: + BUILD_ARTIFACT: automationtest + NEW_BUILD_ARTIFACT: mosip-packet-creator + ZIP_FILE_NAME: mosippacketcreator + SERVICE_LOCATION: mosip-packet-creator + CONFIG_LOCATION: 'src/main/resources/dockersupport/centralized/mosip-packet-creator' + steps: + - uses: actions/checkout@v3 + - uses: actions/download-artifact@v3 + if: ${{ ( env.BUILD_ARTIFACT != 'false' ) }} + with: + name: ${{ env.BUILD_ARTIFACT }} + path: ./ + - name: recreate zip + run: | + unzip -uj "${{ env.BUILD_ARTIFACT }}.zip" -d "${{ env.SERVICE_LOCATION }}/" + + cd ./${{env.SERVICE_LOCATION}} + mkdir -p build_files/config + cp $( find -name 'dslrig-packetcreator-*.jar' -type f ) build_files + cp -r ${{env.CONFIG_LOCATION}}/Biometric\ Devices build_files/Biometric\ Devices + #cp -r ${{env.CONFIG_LOCATION}}/config build_files/config + cp -r src/main/resources/application.properties build_files/config/ + cp -r ${{env.CONFIG_LOCATION}}/resource build_files/resource + cp -r ${{env.CONFIG_LOCATION}}/application.properties build_files/application.properties + cp -r ./src/main/resources/dockersupport/centralized/mountvolume/profile_resource ./profile_resource + zip -r ${{ env.NEW_BUILD_ARTIFACT }}.zip build_files/* profile_resource + - name: Upload the springboot jars + uses: actions/upload-artifact@v1 + with: + name: ${{ env.NEW_BUILD_ARTIFACT }} + path: ./${{env.SERVICE_LOCATION}}/${{ env.NEW_BUILD_ARTIFACT }}.zip + + build-mosip-packet-creator-dockers: + needs: recreate-packet-creator-zips + strategy: + matrix: + include: + - SERVICE_LOCATION: 'mosip-packet-creator' + SERVICE_NAME: 'dsl-packetcreator' + BUILD_ARTIFACT: 'mosip-packet-creator' + ONLY_DOCKER: true + fail-fast: false + name: ${{ matrix.SERVICE_NAME }} + uses: mosip/kattu/.github/workflows/docker-build.yml@master + with: + SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} + SERVICE_NAME: ${{ matrix.SERVICE_NAME }} + BUILD_ARTIFACT: ${{ matrix.BUILD_ARTIFACT }} + ONLY_DOCKER: ${{ matrix.ONLY_DOCKER }} + secrets: + DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} + ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} + RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + sonar_analysis: + needs: call-automationtests + if: "${{ github.event_name != 'pull_request' }}" + uses: mosip/kattu/.github/workflows/maven-sonar-analysis.yml@master + with: + SERVICE_LOCATION: ./ + PROJECT_KEY: mosip_mosip-dsl-test-rig + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + ORG_KEY: ${{ secrets.ORG_KEY }} + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} diff --git a/.github/workflows/push-trigger.yml b/.github/workflows/push-trigger.yml deleted file mode 100644 index 45dbc444f..000000000 --- a/.github/workflows/push-trigger.yml +++ /dev/null @@ -1,186 +0,0 @@ -name: Maven Package upon a push - -on: - release: - types: [published] - pull_request: - types: [opened, reopened, synchronize] - workflow_dispatch: - inputs: - message: - description: 'Message for manually triggering' - required: false - default: 'Triggered for Updates' - type: string - push: - branches: - - '!release-branch' - - release* - - master - - develop - - 1.* - - MOSIP* - -jobs: - build-maven-automationtest: - uses: mosip/kattu/.github/workflows/maven-build.yml@master - with: - SERVICE_LOCATION: ./ - BUILD_ARTIFACT: automationtest - secrets: - OSSRH_USER: ${{ secrets.OSSRH_USER }} - OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} - OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} - GPG_SECRET: ${{ secrets.GPG_SECRET }} - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} - build-automationtests-local: - needs: build-maven-automationtest - runs-on: ubuntu-latest - env: - NAMESPACE: ${{ secrets.dev_namespace_docker_hub }} - SERVICE_NAME: mosip-acceptance-tests - SERVICE_LOCATION: mosip-acceptance-tests - BUILD_ARTIFACT: mosip-acceptance-tests - steps: - - uses: actions/checkout@v3 - - name: Set up JDK 11 - uses: actions/setup-java@v3 - with: - distribution: adopt - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build Automationtests with Maven - run: | - cd ${{ env.SERVICE_LOCATION}} - mvn clean package -s $GITHUB_WORKSPACE/settings.xml - - name: Copy configuration files to target directory. - run: | - cd ./${{env.SERVICE_LOCATION}} - mkdir build_files - cp $( find -name 'dslrig-ivv-orchestrator-*-dependencies.jar' -type f ) build_files - cp -r ./ivv-orchestrator/target/classes/config build_files/ - cp -r ./ivv-orchestrator/target/classes/local build_files/ - cp -r ./ivv-orchestrator/src/main/resources/local/scenarios scenarios - zip -r ${{env.BUILD_ARTIFACT}}.zip build_files/* scenarios/ - - name: Ready the springboot artifacts - if: ${{ !contains(github.ref, 'master') || !contains(github.ref, 'main') }} - run: | - ## FIND JARS & COPY ONLY EXECUTABLE JARs STORED UNDER TARGET DIRECTORY - cd ${{ env.SERVICE_LOCATION }} && find ./ -path '*/target/*' -exec zip ${{ env.BUILD_ARTIFACT }}.zip {} + - - name: Upload the springboot jars - if: ${{ !contains(github.ref, 'master') || !contains(github.ref, 'main') }} - uses: actions/upload-artifact@v3 - with: - name: ${{ env.BUILD_ARTIFACT }} - path: ./${{ env.SERVICE_LOCATION }}/${{ env.BUILD_ARTIFACT }}.zip - - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,author,commit,workflow,job # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - build-dsl-orchestrator-docker: - needs: build-automationtests-local - strategy: - matrix: - include: - - SERVICE_LOCATION: 'mosip-acceptance-tests/ivv-orchestrator' - SERVICE_NAME: 'dsl-orchestrator' - BUILD_ARTIFACT: 'mosip-acceptance-tests' - ONLY_DOCKER: true - fail-fast: false - name: ${{ matrix.SERVICE_NAME }} - uses: mosip/kattu/.github/workflows/docker-build.yml@master - with: - SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} - SERVICE_NAME: ${{ matrix.SERVICE_NAME }} - BUILD_ARTIFACT: ${{ matrix.BUILD_ARTIFACT }} - ONLY_DOCKER: ${{ matrix.ONLY_DOCKER }} - secrets: - DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} - ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} - RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} - ## Recreate zips to provide support for docker unzip operation - recreate-packet-creator-zips: - needs: build-maven-automationtest - runs-on: ubuntu-latest - env: - BUILD_ARTIFACT: automationtest - NEW_BUILD_ARTIFACT: mosip-packet-creator - ZIP_FILE_NAME: mosippacketcreator - SERVICE_LOCATION: mosip-packet-creator - CONFIG_LOCATION: 'src/main/resources/dockersupport/centralized/mosip-packet-creator' - steps: - - uses: actions/checkout@v3 - - uses: actions/download-artifact@v3 - if: ${{ ( env.BUILD_ARTIFACT != 'false' ) }} - with: - name: ${{ env.BUILD_ARTIFACT }} - path: ./ - - name: recreate zip - run: | - unzip -uj "${{ env.BUILD_ARTIFACT }}.zip" -d "${{ env.SERVICE_LOCATION }}/" - - cd ./${{env.SERVICE_LOCATION}} - mkdir -p build_files/config - cp $( find -name 'dslrig-packetcreator-*.jar' -type f ) build_files - cp -r ${{env.CONFIG_LOCATION}}/Biometric\ Devices build_files/Biometric\ Devices - #cp -r ${{env.CONFIG_LOCATION}}/config build_files/config - cp -r src/main/resources/application.properties build_files/config/ - cp -r ${{env.CONFIG_LOCATION}}/resource build_files/resource - cp -r ${{env.CONFIG_LOCATION}}/application.properties build_files/application.properties - cp -r ./src/main/resources/dockersupport/centralized/mountvolume/profile_resource ./profile_resource - zip -r ${{ env.NEW_BUILD_ARTIFACT }}.zip build_files/* profile_resource - - name: Upload the springboot jars - uses: actions/upload-artifact@v1 - with: - name: ${{ env.NEW_BUILD_ARTIFACT }} - path: ./${{env.SERVICE_LOCATION}}/${{ env.NEW_BUILD_ARTIFACT }}.zip - - build-mosip-packet-creator-dockers: - needs: recreate-packet-creator-zips - strategy: - matrix: - include: - - SERVICE_LOCATION: 'mosip-packet-creator' - SERVICE_NAME: 'dsl-packetcreator' - BUILD_ARTIFACT: 'mosip-packet-creator' - ONLY_DOCKER: true - fail-fast: false - name: ${{ matrix.SERVICE_NAME }} - uses: mosip/kattu/.github/workflows/docker-build.yml@master - with: - SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} - SERVICE_NAME: ${{ matrix.SERVICE_NAME }} - BUILD_ARTIFACT: ${{ matrix.BUILD_ARTIFACT }} - ONLY_DOCKER: ${{ matrix.ONLY_DOCKER }} - secrets: - DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} - ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} - RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} - - sonar_analysis: - needs: build-maven-automationtest - if: "${{ github.event_name != 'pull_request' }}" - uses: mosip/kattu/.github/workflows/maven-sonar-analysis.yml@master - with: - SERVICE_LOCATION: ./ - PROJECT_KEY: mosip_mosip-dsl-test-rig - secrets: - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - ORG_KEY: ${{ secrets.ORG_KEY }} - OSSRH_USER: ${{ secrets.OSSRH_USER }} - OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} - OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} - GPG_SECRET: ${{ secrets.GPG_SECRET }} - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} diff --git a/.github/workflows/release-changes.yml b/.github/workflows/release-changes.yml deleted file mode 100644 index 783d4896a..000000000 --- a/.github/workflows/release-changes.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Release/pre-release Preparation. - -on: - workflow_dispatch: - inputs: - MESSAGE: - description: 'Triggered for release or pe-release' - required: false - default: 'Release Preparation' - RELEASE_TAG: - description: 'tag to update' - required: true - SNAPSHOT_TAG: - description: 'tag to be replaced' - required: true - BASE: - description: 'base branch for PR' - required: true -jobs: - maven-release-preparation: - uses: mosip/kattu/.github/workflows/release-changes.yml@master - with: - MESSAGE: ${{ inputs.MESSAGE }} - RELEASE_TAG: ${{ inputs.RELEASE_TAG }} - SNAPSHOT_TAG: ${{ inputs.SNAPSHOT_TAG }} - BASE: ${{ inputs.BASE }} - secrets: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} - ACTION_PAT: ${{ secrets.ACTION_PAT }} \ No newline at end of file diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml deleted file mode 100644 index c131f5aa9..000000000 --- a/.github/workflows/tag.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Tagging of repos - -on: - workflow_dispatch: - inputs: - TAG: - description: 'Tag to be published' - required: true - type: string - BODY: - description: 'Release body message' - required: true - default: 'Changes in this Release' - type: string - PRE_RELEASE: - description: 'Pre-release? True/False' - required: true - default: False - type: string - DRAFT: - description: 'Draft? True/False' - required: false - default: False - type: string - -jobs: - tag-branch: - uses: mosip/kattu/.github/workflows/tag.yml@master - with: - TAG: ${{ inputs.TAG }} - BODY: ${{ inputs.BODY }} - PRE_RELEASE: ${{ inputs.PRE_RELEASE }} - DRAFT: ${{ inputs.DRAFT }} - secrets: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} From d793d59a47b02b3f09560e60d17c6dc3a43c878e Mon Sep 17 00:00:00 2001 From: shubham_G <88794020+shubham17998@users.noreply.github.com> Date: Wed, 17 Jul 2024 10:39:33 +0530 Subject: [PATCH 41/57] Update Dockerfile Signed-off-by: shubham_G <88794020+shubham17998@users.noreply.github.com> --- mosip-acceptance-tests/ivv-orchestrator/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/Dockerfile b/mosip-acceptance-tests/ivv-orchestrator/Dockerfile index 40f7618af..8e6ca6495 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/Dockerfile +++ b/mosip-acceptance-tests/ivv-orchestrator/Dockerfile @@ -26,7 +26,7 @@ ENV work_dir=/home/${container_user}/ ARG KUBECTL_VERSION=1.22.9 -# install packages and create user +## install packages and create user RUN apt-get update \ && apt install jq -y \ && groupadd -g ${container_user_gid} ${container_user_group} \ From 09449d81ca26874ef855edec824213c6fe546848 Mon Sep 17 00:00:00 2001 From: shubham_G <88794020+shubham17998@users.noreply.github.com> Date: Wed, 17 Jul 2024 11:05:29 +0530 Subject: [PATCH 42/57] Update Dockerfile Signed-off-by: shubham_G <88794020+shubham17998@users.noreply.github.com> --- mosip-packet-creator/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mosip-packet-creator/Dockerfile b/mosip-packet-creator/Dockerfile index f1420eb1a..e64502b3f 100644 --- a/mosip-packet-creator/Dockerfile +++ b/mosip-packet-creator/Dockerfile @@ -18,7 +18,7 @@ ARG container_user_group=mosip # can be passed during Docker build as build time environment for github branch to pickup configuration from. ARG container_user_uid=1001 -# can be passed during Docker build as build time environment for github branch to pickup configuration from. +## can be passed during Docker build as build time environment for github branch to pickup configuration from. ARG container_user_gid=1001 # set working directory for the user From 896a22098bbb1ca034bc66dcf7c9d71f27896458 Mon Sep 17 00:00:00 2001 From: shubham_G <88794020+shubham17998@users.noreply.github.com> Date: Wed, 17 Jul 2024 11:54:23 +0530 Subject: [PATCH 43/57] Update Dockerfile Signed-off-by: shubham_G <88794020+shubham17998@users.noreply.github.com> --- mosip-acceptance-tests/ivv-orchestrator/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/Dockerfile b/mosip-acceptance-tests/ivv-orchestrator/Dockerfile index 8e6ca6495..40f7618af 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/Dockerfile +++ b/mosip-acceptance-tests/ivv-orchestrator/Dockerfile @@ -26,7 +26,7 @@ ENV work_dir=/home/${container_user}/ ARG KUBECTL_VERSION=1.22.9 -## install packages and create user +# install packages and create user RUN apt-get update \ && apt install jq -y \ && groupadd -g ${container_user_gid} ${container_user_group} \ From 7673e6cbc469c06434f983415be05a7899997d27 Mon Sep 17 00:00:00 2001 From: shubham_G <88794020+shubham17998@users.noreply.github.com> Date: Wed, 17 Jul 2024 11:54:49 +0530 Subject: [PATCH 44/57] Update Dockerfile Signed-off-by: shubham_G <88794020+shubham17998@users.noreply.github.com> --- mosip-packet-creator/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mosip-packet-creator/Dockerfile b/mosip-packet-creator/Dockerfile index e64502b3f..f1420eb1a 100644 --- a/mosip-packet-creator/Dockerfile +++ b/mosip-packet-creator/Dockerfile @@ -18,7 +18,7 @@ ARG container_user_group=mosip # can be passed during Docker build as build time environment for github branch to pickup configuration from. ARG container_user_uid=1001 -## can be passed during Docker build as build time environment for github branch to pickup configuration from. +# can be passed during Docker build as build time environment for github branch to pickup configuration from. ARG container_user_gid=1001 # set working directory for the user From 5bfe89ec40b4298c40391190a5c9de10d9626b30 Mon Sep 17 00:00:00 2001 From: shubham_G <88794020+shubham17998@users.noreply.github.com> Date: Wed, 17 Jul 2024 13:33:04 +0530 Subject: [PATCH 45/57] Updated dslorchestrator.yaml Signed-off-by: shubham_G <88794020+shubham17998@users.noreply.github.com> --- .github/workflows/dslorchestrator.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/dslorchestrator.yaml b/.github/workflows/dslorchestrator.yaml index 8d6f187c1..a999f8447 100644 --- a/.github/workflows/dslorchestrator.yaml +++ b/.github/workflows/dslorchestrator.yaml @@ -5,8 +5,6 @@ on: types: [published] pull_request: types: [opened, reopened, synchronize] - paths: - - 'mosip-acceptance-tests/**' workflow_dispatch: inputs: message: From 53ab6f3a13671639556342e36b61176588852e0c Mon Sep 17 00:00:00 2001 From: shubham_G <88794020+shubham17998@users.noreply.github.com> Date: Wed, 17 Jul 2024 13:33:40 +0530 Subject: [PATCH 46/57] Update packetcreator.yaml Signed-off-by: shubham_G <88794020+shubham17998@users.noreply.github.com> --- .github/workflows/packetcreator.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/packetcreator.yaml b/.github/workflows/packetcreator.yaml index 6f36a3f5f..e37c4a3ce 100644 --- a/.github/workflows/packetcreator.yaml +++ b/.github/workflows/packetcreator.yaml @@ -5,8 +5,6 @@ on: types: [published] pull_request: types: [opened, reopened, synchronize] - paths: - - 'mosip-packet-creator/**' workflow_dispatch: inputs: message: From d58d55d539b6de3ea9674ef077a932b03690d42b Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Thu, 25 Jul 2024 09:16:05 +0530 Subject: [PATCH 47/57] MOSIP-34512 Signed-off-by: Pankaj Godiyal --- .../methods/MultiFactorAuthentication.java | 1 - .../dslrig/ivv/e2e/methods/SetContext.java | 6 +- .../dslrig/ivv/e2e/methods/SwitchContext.java | 3 +- .../e2e/methods/UpdateDemoOrBioDetails.java | 11 +- .../ivv/orchestrator/PacketUtility.java | 6 +- .../main/resources/config/Kernel.properties | 3 +- .../src/main/resources/config/scenarios.json | 778 +++++++++++++++++- .../packetcreator/dto/UpdatePersonaDto.java | 1 + .../service/PacketMakerService.java | 7 +- .../service/PacketSyncService.java | 9 +- .../dataprovider/BiometricDataProvider.java | 216 ++++- .../dataprovider/ResidentDataProvider.java | 29 +- .../dslrig/dataprovider/mds/MDSClient.java | 1 - .../registrationclient/RegistrationSteps.java | 2 +- 14 files changed, 1032 insertions(+), 41 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java index 649077d6b..7b936aa7e 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/MultiFactorAuthentication.java @@ -22,7 +22,6 @@ import io.mosip.testrig.apirig.utils.AdminTestUtil; import io.mosip.testrig.apirig.testscripts.BioAuth; import io.mosip.testrig.apirig.testscripts.DemoAuth; -import io.mosip.testrig.apirig.testscripts.DemoAuthSimplePostForAutoGenId; import io.mosip.testrig.apirig.testscripts.MultiFactorAuthNew; import io.mosip.testrig.apirig.testscripts.OtpAuthNew; import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java index 4221fc43f..b7e3588c0 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SetContext.java @@ -46,6 +46,7 @@ public void run() throws RigInternalError { String skipBiometricClassificationFlag = ""; String skipApplicantDocumentsFlag = ""; String invalidDateFlag = ""; + String invalidOfficerIDFlag = ""; HashMap map = new HashMap(); HashMap dummyholder = new HashMap(); @@ -90,6 +91,9 @@ else if (value.startsWith("$$")) { if (step.getParameters().size() == 4 && step.getParameters().get(3).contains("invalidCreationDate")) //Invalid packet creation date invalidDateFlag = step.getParameters().get(3); + + if (step.getParameters().size() == 4 && step.getParameters().get(3).contains("invalidOfficerID")) //Invalid Officer ID + invalidOfficerIDFlag = step.getParameters().get(3); // consent value either "yes" or "no" if (step.getParameters().size() == 5 @@ -115,7 +119,7 @@ else if (value.startsWith("$$")) { else if (map != null) packetUtility.createContexts(negative, contextKeyValue, map, generatePrivateKey, status, BaseTestCase.ApplnURI + "/", step, invalidCertFlag, consent, changeSupervisorNameToDiffCase, - invalidEncryptedHashFlag, invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag,invalidDateFlag); + invalidEncryptedHashFlag, invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag,invalidDateFlag,invalidOfficerIDFlag); } } diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java index 8ddddef35..7ff8845a5 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/SwitchContext.java @@ -41,6 +41,7 @@ public void run() throws RigInternalError { String skipBiometricClassificationFlag = ""; String skipApplicantDocumentsFlag = ""; String invalidDateFlag = ""; + String invalidOfficerIDFlag = ""; if (step.getParameters() == null || step.getParameters().isEmpty() || step.getParameters().size() < 1) { logger.warn("SwitchContext Arugemnt is Missing : Please pass the argument from DSL sheet"); } else { @@ -54,7 +55,7 @@ public void run() throws RigInternalError { if (step.getParameters().size() > 2) // true/false (want to generate privatekey) generatePrivateKey = Boolean.parseBoolean(step.getParameters().get(2)); if (map != null) - packetUtility.createContexts("",contextKeyValue, map, generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step,invalidCertFlag,consent,supervisorFlag,invalidEncryptedHashFlag,invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag,invalidDateFlag); + packetUtility.createContexts("",contextKeyValue, map, generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step,invalidCertFlag,consent,supervisorFlag,invalidEncryptedHashFlag,invalidCheckSum,invalidIdSchemaFlag,skipBiometricClassificationFlag,skipApplicantDocumentsFlag,invalidDateFlag,invalidOfficerIDFlag); else if (userAndMachineDetailParam != null) packetUtility.createContexts(contextKeyValue, userAndMachineDetailParam, generatePrivateKey,null,BaseTestCase.ApplnURI + "/",step); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java index 7878ec87d..54e17b439 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java @@ -32,6 +32,7 @@ public void run() throws RigInternalError { String missFields = null; String updateAttribute = null; String blocklistedWord = null; + String testPersona = null; if (step.getParameters() == null || step.getParameters().isEmpty()) { logger.error("Parameter is missing from DSL step"); this.hasError = true; @@ -59,9 +60,15 @@ public void run() throws RigInternalError { if (!step.getParameters().isEmpty() && step.getParameters().size() > 3) { // "var1=e2e_updateDemoOrBioDetails(0,0,0,$$personaPath)" String personaFilePath = step.getParameters().get(3); + + if(step.getParameters().size() == 5) { + testPersona = step.getParameters().get(4); + testPersona = step.getScenario().getVariables().get(testPersona); + } + if (personaFilePath.startsWith("$$")) { personaFilePath = step.getScenario().getVariables().get(personaFilePath); - packetUtility.updateDemoOrBioDetail(personaFilePath, + packetUtility.updateDemoOrBioDetail(personaFilePath, testPersona , (regenAttributeList.get(0).equalsIgnoreCase("0")) ? null : regenAttributeList, (missFieldsAttributeList.get(0).equalsIgnoreCase("0")) ? new ArrayList<>() : missFieldsAttributeList, @@ -70,7 +77,7 @@ public void run() throws RigInternalError { } } else { for (String resDataPath : step.getScenario().getResidentTemplatePaths().keySet()) { - packetUtility.updateDemoOrBioDetail(resDataPath, + packetUtility.updateDemoOrBioDetail(resDataPath,testPersona , (regenAttributeList.get(0).equalsIgnoreCase("0")) ? null : regenAttributeList, (missFieldsAttributeList.get(0).equalsIgnoreCase("0")) ? new ArrayList<>() : missFieldsAttributeList, diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java index 577c059ca..02686e5ad 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java @@ -771,7 +771,7 @@ public String createContexts(String negative, String key, HashMap attributeList, List missAttributeList, + public String updateDemoOrBioDetail(String resFilePath, String testPersona, List attributeList, List missAttributeList, List updateAttributeList, Scenario.Step step) throws RigInternalError { String url = baseUrl + props.getProperty("updatePersonaData"); JSONObject jsonReqInner = new JSONObject(); @@ -979,6 +980,7 @@ public String updateDemoOrBioDetail(String resFilePath, List attributeLi if (missAttributeList != null) jsonReqInner.put("missAttributeList", missAttributeList); jsonReqInner.put(PERSONAFILEPATH, resFilePath); + jsonReqInner.put("testPersonaPath", testPersona); if (attributeList != null && !(attributeList.isEmpty())) jsonReqInner.put("regenAttributeList", attributeList); if (updateAttributeList != null && !(updateAttributeList.isEmpty())) { diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties index 84007d2ce..1b71e786f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties @@ -297,4 +297,5 @@ resident_esignet=v1/esignet/actuator/health esignetMockBaseURL=esignet-insurance. slack-webhook-url= serverErrorsToMonitor= -regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env \ No newline at end of file +regprocActuatorEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env +sunBirdBaseURL= \ No newline at end of file diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json index e7fa66549..33fb70565 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json @@ -910,7 +910,7 @@ "Description": "Updates Demo graphic details and biometric in the persona file", "Input Parameters": "Data to update and persona file path. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_updateDemoOrBioDetails(leftIris@@rigthIris,0,0,$$personaFilePath)" + "Action": "e2e_updateDemoOrBioDetails(iris,0,0,$$personaFilePath)" }, "Step-11": { "Description": "Updates persona with UIN", @@ -2733,7 +2733,7 @@ "Description": "Updates Demo graphic details and biometric in the persona file", "Input Parameters": "Data to update and persona file path. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_updateDemoOrBioDetails(leftIndex@@face,0/*MISS_FIELDS*/,0/*UPDATE_ATTRIBUTES*/,$$personaFilePath)" + "Action": "e2e_updateDemoOrBioDetails(finger@@face,0/*MISS_FIELDS*/,0/*UPDATE_ATTRIBUTES*/,$$personaFilePath)" }, "Step-15": { "Description": "Updates persona with UIN", @@ -2890,7 +2890,7 @@ "Description": "Updates Demo graphic details and biometric in the persona file", "Input Parameters": "Data to update and persona file path. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_updateDemoOrBioDetails(left,0/*MISS_FIELDS*/,0/*UPDATE_ATTRIBUTES*/,$$personaFilePath)" + "Action": "e2e_updateDemoOrBioDetails(iris,0/*MISS_FIELDS*/,0/*UPDATE_ATTRIBUTES*/,$$personaFilePath)" }, "Step-15": { "Description": "Updates persona with UIN", @@ -3047,7 +3047,7 @@ "Description": "Updates Demo graphic details and biometric in the persona file", "Input Parameters": "Data to update and persona file path. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_updateDemoOrBioDetails(leftIndex,0/*MISS_FIELDS*/,0/*UPDATE_ATTRIBUTES*/,$$personaFilePath)" + "Action": "e2e_updateDemoOrBioDetails(finger,0/*MISS_FIELDS*/,0/*UPDATE_ATTRIBUTES*/,$$personaFilePath)" }, "Step-15": { "Description": "Updates persona with UIN", @@ -4153,7 +4153,7 @@ "Description": "Updates Demo graphic details and biometric in the persona file", "Input Parameters": "Data to update and persona file path. Other details can be found in the parameter in-line comments", "Return Value": "NA", - "Action": "e2e_updateDemoOrBioDetails(leftIndex,0/*MISS_FIELDS*/,0/*UPDATE_ATTRIBUTES*/,$$personaFilePath)" + "Action": "e2e_updateDemoOrBioDetails(finger,0/*MISS_FIELDS*/,0/*UPDATE_ATTRIBUTES*/,$$personaFilePath)" }, "Step-15": { "Description": "Updates persona with UIN", @@ -4319,7 +4319,7 @@ "Return Value": "NA", "Action": "e2e_getPingHealth(packetcreator)" }, - "Step-1": { + "Step-1": { "Description": "Reads the pre-requisite data at the given index", "Input Parameters": "Index. Other parameter details can be found in parameter in-line comments", "Return Value": "Pre-requiste details", @@ -4620,7 +4620,7 @@ "Return Value": "NA", "Action": "e2e_packetsync($$zipPacketPath)" }, - "Step-23": { + "Step-23": { "Description": "Sets manual verification status", "Input Parameters": "RID and status", "Return Value": "NA", @@ -6814,7 +6814,7 @@ "Action": "e2e_CheckRIDStage($$rid2,MANUAL_ADJUDICATION,FAILED)" } }, - { + { "Scenario": "64", "Tag": "Negative_Test", "Persona": "ResidentMaleAdult", @@ -7743,7 +7743,6 @@ "Action": "e2e_CheckRIDStage($$rid,INTERNAL_WORKFLOW_ACTION,SUCCESS)" } }, - { "Scenario": "76", "Tag": "Postive_Test", @@ -8624,7 +8623,7 @@ "Input Parameters": "Index. Other parameter details can be found in parameter in-line comments", "Return Value": "Pre-requiste details", "Action": "$$details53=e2e_ReadPreReq(53/*PRE_REQUISITE_DATA_INDEX*/)" - }, + }, "Step-27": { "Description": "Waits for given period in seconds", "Input Parameters": "Time period in seconds to wait", @@ -11406,7 +11405,7 @@ "Input Parameters": "Packet processing status and RID", "Return Value": "NA", "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" - }, + }, "Step-8": { "Description": "Checks RID stage and stage status", "Input Parameters": "RID, stage and stage status", @@ -11776,7 +11775,7 @@ "Input Parameters": "Packet processing status and RID", "Return Value": "NA", "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" - }, + }, "Step-15": { "Description": "Checks RID stage and stage status", "Input Parameters": "RID, stage and stage status", @@ -13465,7 +13464,7 @@ "Action": "e2e_bioAuthentication(faceDevice,$$lostUin,$$vidwithoutotp,$$personaFilePath)" } }, - { + { "Scenario": "115", "Tag": "Postive_Test", "Persona": "ResidentMaleAdult", @@ -18496,7 +18495,7 @@ "Action": "e2e_CheckRIDStage($$rid,VALIDATE_PACKET,FAILED)" } }, - { + { "Scenario": "166", "Tag": "Postive_Test", "Persona": "ResidentMaleAdult", @@ -18593,7 +18592,7 @@ "Action": "e2e_CheckRIDStage($$rid,PRINT_SERVICE,PROCESSED)" } }, - { + { "Scenario": "167", "Tag": "Negative_Test", "Persona": "ResidentMaleAdult", @@ -18836,6 +18835,755 @@ "Action": "e2e_CheckRIDStage($$rid,CMD_VALIDATION,ERROR)" } }, + { + "Scenario": "170", + "Tag": "Postive_Test", + "Persona": "ResidentFemaleAdult", + "Group": "Adult_New", + "Description": "ResidentA and ResidentB got their UINs and ResidentB is trying to update ResidentA UIN with his biometrics", + "Step-0": { + "Description": "Performs health check of given component", + "Input Parameters": "Keyword to check, only packetcreator is supported", + "Return Value": "NA", + "Action": "e2e_getPingHealth(packetcreator)" + }, + "Step-1": { + "Description": "Reads the pre-requisite data at the given index", + "Input Parameters": "Details can be found in in-line comments on the parameters", + "Return Value": "pre-requiste details", + "Action": "$$details1=e2e_ReadPreReq(1/*PRE_REQUISITE_DATA_INDEX*/)" + }, + "Step-2": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" + }, + "Step-3": { + "Description": "Performs health check of required server components to run end-to-end scenarios", + "Input Parameters": "NA", + "Return Value": "NA", + "Action": "e2e_getPingHealth(targetenv)" + }, + "Step-4": { + "Description": "Generates persona data", + "Input Parameters": "Details are in parameter in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath1=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" + }, + "Step-5": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$templatePath1=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath1)" + }, + "Step-6": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid1=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath1,$$templatePath1)" + }, + "Step-7": { + "Description": "Checkes the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" + }, + "Step-8": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin1=e2e_getUINByRid($$rid1)" + }, + "Step-9": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/@@99/*SWITCH_DEMOGRAPHIC_DATA*/)" + }, + "Step-10": { + "Description": "Generates persona data", + "Input Parameters": "Details are in parameter in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath2=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" + }, + "Step-11": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$templatePath2=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath2)" + }, + "Step-12": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid2=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath2,$$templatePath2)" + }, + "Step-13": { + "Description": "Checkes the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" + }, + "Step-14": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin2=e2e_getUINByRid($$rid2)" + }, + "Step-15": { + "Description": "Generates the hash for the given modalities", + "Input Parameters": "Modalitie and persona file path. Other details can be found in the parameter in-line comments", + "Return Value": "Hash value", + "Action": "$$modalityHashValue=e2e_getBioModalityHash(-1/*CHECK_PERSONA_PRESENCE*/,Right IndexFinger@@Left LittleFinger,$$personaFilePath2)" + }, + "Step-16": { + "Description": "Sets expectatation on mock ABIS", + "Input Parameters": "Modalities hash value. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_configureMockAbis(-1/*CHECK_PERSONA_PRESENCE*/,Right IndexFinger,true/*DUPLICATE_FLAG*/,Right IndexFinger,$$personaFilePath2,$$modalityHashValue,-1/*DEFAULT_MOCK_DELAY*/,@@Duplicate/*STATUS_CODE*/)" + }, + "Step-17": { + "Description": "Updates Demo graphic details and biometric in the persona file", + "Input Parameters": "Data to update and persona file path. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_updateDemoOrBioDetails(face@@finger@@iris/*BIO_TYPE*/,0,0/*UPDATE_ATTRIBUTES*/,$$personaFilePath1/*PERSONA_TO_UPDATE*/,$$personaFilePath2/*PERSONA_TO_UPDATE_WITH*/)" + }, + "Step-18": { + "Description": "Updates persona with UIN", + "Input Parameters": "Persona file path and UIN", + "Return Value": "NA", + "Action": "e2e_updateResidentWithUIN($$personaFilePath1,$$uin2)" + }, + "Step-19": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath1)" + }, + "Step-20": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid3=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath1,$$updateTemplate)" + }, + "Step-21": { + "Description": "Checks the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid3)" + }, + "Step-22": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin3=e2e_getUINByRid($$rid3)" + } + }, + { + "Scenario": "171", + "Tag": "Postive_Test", + "Persona": "ResidentFemaleAdult", + "Group": "Adult_New", + "Description": " ResidentA and ResidentB got their UINs and ResidentB is trying to update ResidentA UIN with his (Resident-B) IRIS biometrics", + "Step-0": { + "Description": "Performs health check of given component", + "Input Parameters": "Keyword to check, only packetcreator is supported", + "Return Value": "NA", + "Action": "e2e_getPingHealth(packetcreator)" + }, + "Step-1": { + "Description": "Reads the pre-requisite data at the given index", + "Input Parameters": "Details can be found in in-line comments on the parameters", + "Return Value": "pre-requiste details", + "Action": "$$details1=e2e_ReadPreReq(1/*PRE_REQUISITE_DATA_INDEX*/)" + }, + "Step-2": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" + }, + "Step-3": { + "Description": "Performs health check of required server components to run end-to-end scenarios", + "Input Parameters": "NA", + "Return Value": "NA", + "Action": "e2e_getPingHealth(targetenv)" + }, + "Step-4": { + "Description": "Generates persona data", + "Input Parameters": "Details are in parameter in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath1=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" + }, + "Step-5": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$templatePath1=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath1)" + }, + "Step-6": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid1=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath1,$$templatePath1)" + }, + "Step-7": { + "Description": "Checkes the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" + }, + "Step-8": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin1=e2e_getUINByRid($$rid1)" + }, + "Step-9": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/@@99/*SWITCH_DEMOGRAPHIC_DATA*/)" + }, + "Step-10": { + "Description": "Generates persona data", + "Input Parameters": "Details are in parameter in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath2=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" + }, + "Step-11": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$templatePath2=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath2)" + }, + "Step-12": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid2=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath2,$$templatePath2)" + }, + "Step-13": { + "Description": "Checkes the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid2)" + }, + "Step-14": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin2=e2e_getUINByRid($$rid2)" + }, + "Step-15": { + "Description": "Generates the hash for the given modalities", + "Input Parameters": "Modalitie and persona file path. Other details can be found in the parameter in-line comments", + "Return Value": "Hash value", + "Action": "$$modalityHashValue=e2e_getBioModalityHash(-1/*CHECK_PERSONA_PRESENCE*/,Left@@Right,$$personaFilePath2)" + }, + "Step-16": { + "Description": "Sets expectatation on mock ABIS", + "Input Parameters": "Modalities hash value. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_configureMockAbis(-1/*CHECK_PERSONA_PRESENCE*/,Left@@Right,true/*DUPLICATE_FLAG*/,Right IndexFinger,$$personaFilePath2,$$modalityHashValue,-1/*DEFAULT_MOCK_DELAY*/,@@Duplicate/*STATUS_CODE*/)" + }, + "Step-17": { + "Description": "Updates Demo graphic details and biometric in the persona file", + "Input Parameters": "Data to update and persona file path. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_updateDemoOrBioDetails(iris/*BIO_TYPE*/,0,0/*UPDATE_ATTRIBUTES*/,$$personaFilePath1/*PERSONA_TO_UPDATE*/,$$personaFilePath2/*PERSONA_TO_UPDATE_WITH*/)" + }, + "Step-18": { + "Description": "Updates persona with UIN", + "Input Parameters": "Persona file path and UIN", + "Return Value": "NA", + "Action": "e2e_updateResidentWithUIN($$personaFilePath1,$$uin2)" + }, + "Step-19": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$personaFilePath1)" + }, + "Step-20": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid3=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath1,$$updateTemplate)" + }, + "Step-21": { + "Description": "Checks the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid3)" + }, + "Step-22": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin3=e2e_getUINByRid($$rid3)" + } + }, + { + "Scenario": "172", + "Tag": "Postive_Test", + "Persona": "ResidentMaleAdult", + "Group": "Minor_New", + "Description": "Minor Resident A and Adult Resident B got their UINs and Resident B is trying to update Resident A UIN with his biometrics", + "Step-0": { + "Description": "Performs health check of given component", + "Input Parameters": "Keyword to check, only packetcreator is supported", + "Return Value": "NA", + "Action": "e2e_getPingHealth(packetcreator)" + }, + "Step-1": { + "Description": "Reads the pre-requisite data at the given index", + "Input Parameters": "Index. Other parameter details can be found in parameter in-line comments", + "Return Value": "Pre-requiste details", + "Action": "$$details1=e2e_ReadPreReq(1/*PRE_REQUISITE_DATA_INDEX*/)" + }, + "Step-2": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" + }, + "Step-3": { + "Description": "Performs health check of required server components to run end-to-end scenarios", + "Input Parameters": "NA", + "Return Value": "NA", + "Action": "e2e_getPingHealth(targetenv)" + }, + "Step-4": { + "Description": "Generates the persona file", + "Input Parameters": "Details are in parameters in-line comments", + "Return Value": "Persona file path", + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" + }, + "Step-5": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" + }, + "Step-6": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$parentRid=e2e_generateAndUploadPacketSkippingPrereg($$parentPersona,$$parentTemplate)" + }, + "Step-7": { + "Description": "Checks the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" + }, + "Step-8": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$parentUin=e2e_getUINByRid($$parentRid)" + }, + "Step-9": { + "Description": "Updates persona with UIN", + "Input Parameters": "Persona file path and UIN", + "Return Value": "NA", + "Action": "e2e_updateResidentWithUIN($$parentPersona,$$parentUin)" + }, + "Step-10": { + "Description": "Generates persona data", + "Input Parameters": "Details in parameters in-line comments", + "Return Value": "Persona file path", + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,minor/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male)" + }, + "Step-11": { + "Description": "Updates persona data with gaudian details", + "Input Parameters": "Gaurdian and child persona file pahts", + "Return Value": "NA", + "Action": "e2e_updateResidentWithGuardianSkippingPreReg($$parentPersona,$$childPersona)" + }, + "Step-12": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" + }, + "Step-13": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$childRid=e2e_generateAndUploadPacketSkippingPrereg($$childPersona,$$childTemplate)" + }, + "Step-14": { + "Description": "Checks the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" + }, + "Step-15": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$childUin=e2e_getUINByRid($$childRid)" + }, + "Step-16": { + "Description": "Checks RID stage and stage status", + "Input Parameters": "RID, stage and stage status", + "Return Value": "NA", + "Action": "e2e_CheckRIDStage($$childRid,INTRODUCER_VALIDATION,SUCCESS)" + }, + "Step-17": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/@@99/*SWITCH_DEMOGRAPHIC_DATA*/)" + }, + "Step-18": { + "Description": "Generates persona data", + "Input Parameters": "Details are in parameter in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" + }, + "Step-19": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" + }, + "Step-20": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath,$$templatePath)" + }, + "Step-21": { + "Description": "Checkes the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" + }, + "Step-22": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin=e2e_getUINByRid($$rid)" + }, + "Step-23": { + "Description": "Generates the hash for the given modalities", + "Input Parameters": "Modalitie and persona file path. Other details can be found in the parameter in-line comments", + "Return Value": "Hash value", + "Action": "$$modalityHashValue=e2e_getBioModalityHash(-1/*CHECK_PERSONA_PRESENCE*/,Right IndexFinger@@Left LittleFinger,$$personaFilePath)" + }, + "Step-24": { + "Description": "Sets expectatation on mock ABIS", + "Input Parameters": "Modalities hash value. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_configureMockAbis(-1/*CHECK_PERSONA_PRESENCE*/,Right IndexFinger,true/*DUPLICATE_FLAG*/,Right IndexFinger,$$personaFilePath,$$modalityHashValue,-1/*DEFAULT_MOCK_DELAY*/,@@Duplicate/*STATUS_CODE*/)" + }, + "Step-25": { + "Description": "Updates Demo graphic details and biometric in the persona file", + "Input Parameters": "Data to update and persona file path. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_updateDemoOrBioDetails(face@@finger@@iris/*BIO_TYPE*/,0,0/*UPDATE_ATTRIBUTES*/,$$childPersona/*PERSONA_TO_UPDATE*/,$$personaFilePath/*PERSONA_TO_UPDATE_WITH*/)" + }, + "Step-26": { + "Description": "Updates persona with UIN", + "Input Parameters": "Persona file path and UIN", + "Return Value": "NA", + "Action": "e2e_updateResidentWithUIN($$childPersona,$$uin)" + }, + "Step-27": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$childPersona)" + }, + "Step-28": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid1=e2e_generateAndUploadPacketSkippingPrereg($$childPersona,$$updateTemplate)" + }, + "Step-29": { + "Description": "Checks the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" + }, + "Step-30": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin1=e2e_getUINByRid($$rid1)" + } + }, + { + "Scenario": "173", + "Tag": "Postive_Test", + "Persona": "ResidentMaleAdult", + "Group": "New_Infant", + "Description": " Infant Resident A and Adult Resident B got their UINs and Resident B is trying to update Resident A UIN with his biometrics", + "Step-0": { + "Description": "Performs health check of given component", + "Input Parameters": "Keyword to check, only packetcreator is supported", + "Return Value": "NA", + "Action": "e2e_getPingHealth(packetcreator)" + }, + "Step-1": { + "Description": "Reads the pre-requisite data at the given index", + "Input Parameters": "Index. Other parameter details can be found in parameter in-line comments", + "Return Value": "Pre-requiste details", + "Action": "$$details1=e2e_ReadPreReq(1/*PRE_REQUISITE_DATA_INDEX*/)" + }, + "Step-2": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" + }, + "Step-3": { + "Description": "Performs health check of required server components to run end-to-end scenarios", + "Input Parameters": "NA", + "Return Value": "NA", + "Action": "e2e_getPingHealth(targetenv)" + }, + "Step-4": { + "Description": "Generates the persona file", + "Input Parameters": "Details are in parameters in-line comments", + "Return Value": "Persona file path", + "Action": "$$parentPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,adult/*PERSONA_TYPE*/,false/*GUARDIAN_FLAG*/,Male)" + }, + "Step-5": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$parentTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$parentPersona)" + }, + "Step-6": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$parentRid=e2e_generateAndUploadPacketSkippingPrereg($$parentPersona,$$parentTemplate)" + }, + "Step-7": { + "Description": "Checks the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$parentRid)" + }, + "Step-8": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$parentUin=e2e_getUINByRid($$parentRid)" + }, + "Step-9": { + "Description": "Updates persona with UIN", + "Input Parameters": "Persona file path and UIN", + "Return Value": "NA", + "Action": "e2e_updateResidentWithUIN($$parentPersona,$$parentUin)" + }, + "Step-10": { + "Description": "Generates persona data", + "Input Parameters": "Details in parameters in-line comments", + "Return Value": "Persona file path", + "Action": "$$childPersona=e2e_getResidentData(1/*NUMBER_OF_RESIDENTS*/,infant/*PERSONA_TYPE*/,true/*GUARDIAN_FLAG*/,Male/*GENDER*/@@false/*FINGER_BIOMETRIC_FLAG*/@@false/*IRIS_BIOMETRIC_FLAG*/@@true/*FACE_BIOMETRIC_FLAG*/)" + }, + "Step-11": { + "Description": "Updates persona data with gaudian details", + "Input Parameters": "Gaurdian and child persona file pahts", + "Return Value": "NA", + "Action": "e2e_updateResidentWithGuardianSkippingPreReg($$parentPersona,$$childPersona)" + }, + "Step-12": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$childTemplate=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$childPersona)" + }, + "Step-13": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$childRid=e2e_generateAndUploadPacketSkippingPrereg($$childPersona,$$childTemplate)" + }, + "Step-14": { + "Description": "Checks the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$childRid)" + }, + "Step-15": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$childUin=e2e_getUINByRid($$childRid)" + }, + "Step-16": { + "Description": "Checks RID stage and stage status", + "Input Parameters": "RID, stage and stage status", + "Return Value": "NA", + "Action": "e2e_CheckRIDStage($$childRid,INTRODUCER_VALIDATION,SUCCESS)" + }, + "Step-17": { + "Description": "Checks RID stage and stage status", + "Input Parameters": "RID, stage and stage status", + "Return Value": "NA", + "Action": "e2e_CheckRIDStage($$childRid,VERIFICATION,SUCCESS)" + }, + "Step-18": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,null/*PUT_SCENARIO_DETAILS_IN_CONTEXT*/@@99/*SWITCH_DEMOGRAPHIC_DATA*/)" + }, + "Step-19": { + "Description": "Generates persona data", + "Input Parameters": "Details are in parameter in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" + }, + "Step-20": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" + }, + "Step-21": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath,$$templatePath)" + }, + "Step-22": { + "Description": "Checkes the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" + }, + "Step-23": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin=e2e_getUINByRid($$rid)" + }, + "Step-24": { + "Description": "Generates the hash for the given modalities", + "Input Parameters": "Modalitie and persona file path. Other details can be found in the parameter in-line comments", + "Return Value": "Hash value", + "Action": "$$modalityHashValue=e2e_getBioModalityHash(-1/*CHECK_PERSONA_PRESENCE*/,FACE,$$personaFilePath)" + }, + "Step-25": { + "Description": "Sets expectatation on mock ABIS", + "Input Parameters": "Modalities hash value. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_configureMockAbis(-1/*CHECK_PERSONA_PRESENCE*/,FACE,true/*DUPLICATE_FLAG*/,FACE,$$personaFilePath,$$modalityHashValue,-1/*DEFAULT_MOCK_DELAY*/,@@Duplicate/*STATUS_CODE*/)" + }, + "Step-26": { + "Description": "Updates Demo graphic details and biometric in the persona file", + "Input Parameters": "Data to update and persona file path. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_updateDemoOrBioDetails(face/*BIO_TYPE*/,0,0/*UPDATE_ATTRIBUTES*/,$$childPersona/*PERSONA_TO_UPDATE*/,$$personaFilePath/*PERSONA_TO_UPDATE_WITH*/)" + }, + "Step-27": { + "Description": "Updates persona with UIN", + "Input Parameters": "Persona file path and UIN", + "Return Value": "NA", + "Action": "e2e_updateResidentWithUIN($$childPersona,$$uin)" + }, + "Step-28": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$updateTemplate=e2e_getPacketTemplate(UPDATE/*PACKET_TYPE*/,$$childPersona)" + }, + "Step-29": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid1=e2e_generateAndUploadPacketSkippingPrereg($$childPersona,$$updateTemplate)" + }, + "Step-30": { + "Description": "Checks the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid1)" + }, + "Step-31": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin1=e2e_getUINByRid($$rid1)" + } + }, + { + "Scenario": "174", + "Tag": "Postive_Test", + "Persona": "ResidentFemaleAdult", + "Group": "Adult_New", + "Description": "Resident walk-ins to registration center completes the process tries to get UIN card with invalid Officer ID", + "Step-0": { + "Description": "Performs health check of given component", + "Input Parameters": "Keyword to check, only packetcreator is supported", + "Return Value": "NA", + "Action": "e2e_getPingHealth(packetcreator)" + }, + "Step-1": { + "Description": "Reads the pre-requisite data at the given index", + "Input Parameters": "Details can be found in in-line comments on the parameters", + "Return Value": "pre-requiste details", + "Action": "$$details1=e2e_ReadPreReq(1/*PRE_REQUISITE_DATA_INDEX*/)" + }, + "Step-2": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/,invalidOfficerID/*INVALID_PACKET_CREATION_DATE*/)" + }, + "Step-3": { + "Description": "Performs health check of required server components to run end-to-end scenarios", + "Input Parameters": "NA", + "Return Value": "NA", + "Action": "e2e_getPingHealth(targetenv)" + }, + "Step-4": { + "Description": "Generates persona data", + "Input Parameters": "Details are in parameter in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" + }, + "Step-5": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" + }, + "Step-6": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath,$$templatePath)" + }, + "Step-7": { + "Description": "Checkes the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" + }, + "Step-8": { + "Description": "Gets the UIN for the given RID", + "Input Parameters": "RID", + "Return Value": "UIN", + "Action": "$$uin=e2e_getUINByRid($$rid)" + }, + "Step-9": { + "Description": "Checks RID stage and stage status", + "Input Parameters": "RID, stage and stage status", + "Return Value": "NA", + "Action": "e2e_CheckRIDStage($$rid,PRINT_SERVICE,PROCESSED)" + } + }, { "Scenario": "AFTER_SUITE", "Tag": "Postive_Test", diff --git a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/dto/UpdatePersonaDto.java b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/dto/UpdatePersonaDto.java index ef705f71f..461dab852 100644 --- a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/dto/UpdatePersonaDto.java +++ b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/dto/UpdatePersonaDto.java @@ -8,6 +8,7 @@ @Data public class UpdatePersonaDto { String personaFilePath; + String testPersonaPath; Properties updateAttributeList; List regenAttributeList; List missAttributeList; //ID Scheme elements or biometric sub modalities to be added to exception list diff --git a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketMakerService.java b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketMakerService.java index 23b990416..200b12557 100644 --- a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketMakerService.java +++ b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketMakerService.java @@ -626,9 +626,10 @@ boolean createPacket(String containerRootFolder, String regId, String dataFilePa logger.error(e1.getMessage()); } officerId = p.getProperty(MOSIP_TEST_REGCLIENT_USERID); - - updatePacketMetaInfo(packetRootFolder, OPERATIONSDATA, "officerId", officerId, false); - + + if (!VariableManager.getVariableValue(contextKey, "invalidOfficerIDFlag").toString().equals("invalidOfficerID")) { + updatePacketMetaInfo(packetRootFolder, OPERATIONSDATA, "officerId", officerId, false); + } supervisorId = p.getProperty(MOSIPTEST_REGCLIENT_SUPERVISORID); if (VariableManager.getVariableValue(contextKey, CHANGESUPERVISORNAMETODIFFCASE).toString() diff --git a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java index 03d72d90b..36d7aa9af 100644 --- a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java +++ b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java @@ -1202,8 +1202,12 @@ public String updatePersonaData(List updatePersonaRequest, Str List regenAttrs = req.getRegenAttributeList(); if (regenAttrs != null) { for (String attr : regenAttrs) { - ResidentDataProvider.updateBiometric(persona, attr, contextKey); - + if (req.getTestPersonaPath() != null) { + ResidentModel testPersona = ResidentModel.readPersona(req.getTestPersonaPath()); + ResidentDataProvider.updateBiometricWithTestPersona(persona, testPersona, attr, contextKey); + } else { + ResidentDataProvider.updateBiometric(persona, attr, contextKey); + } } } Properties updateAttrs = req.getUpdateAttributeList(); @@ -1213,6 +1217,7 @@ public String updatePersonaData(List updatePersonaRequest, Str List missList = req.getMissAttributeList(); if (missList != null && !missList.isEmpty()) persona.setMissAttributes(missList); + persona.save(); persona.writePersona(req.getPersonaFilePath()); diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java index 7ce5e0e60..b027b89ef 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java @@ -1,7 +1,12 @@ package io.mosip.testrig.dslrig.dataprovider; +import java.awt.image.BufferedImage; +import java.io.BufferedInputStream; import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.FileFilter; +import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; @@ -20,6 +25,7 @@ import java.util.List; import java.util.stream.Collectors; +import javax.imageio.ImageIO; import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; @@ -249,8 +255,8 @@ public static MDSRCaptureModel regenBiometricViaMDS(ResidentModel resident, Stri .parseBoolean(VariableManager.getVariableValue(contextKey, "invalidCertFlag").toString()); if (invalidCertFlag) - p12path = Paths.get(VariableManager.getVariableValue(VariableManager.NS_DEFAULT, "invalidCertpath") - .toString()); + p12path = Paths.get( + VariableManager.getVariableValue(VariableManager.NS_DEFAULT, "invalidCertpath").toString()); else p12path = Paths.get(certsDir, "DSL-IDA-" + VariableManager.getVariableValue(contextKey, "db-server")); @@ -265,7 +271,7 @@ public static MDSRCaptureModel regenBiometricViaMDS(ResidentModel resident, Stri port = CentralizedMockSBI.startSBI(contextKey, "Registration", "Biometric Device", p12path.toString()); } catch (Exception e) { - logger.error("Exception occured during startSBI " + contextKey,e); + logger.error("Exception occured during startSBI " + contextKey, e); } if (port != 0) { RestClient.logInfo(contextKey, "Found the port " + contextKey + " port number is: " + port); @@ -939,7 +945,7 @@ public static BiometricDataModel getBiometricData(Boolean bFinger, String contex if (index > 9) break; - + byte[] fdata = CommonUtil.read(f.getAbsolutePath()); fingerPrintRaw[index] = fdata; fingerPrints[index] = Base64.getEncoder().encodeToString(fdata); @@ -1009,7 +1015,7 @@ public static BiometricDataModel getBiometricData(Boolean bFinger, String contex if (index > 9) break; - + byte[] fdata; try { fdata = CommonUtil.read(f.getAbsolutePath()); @@ -1034,6 +1040,68 @@ public static BiometricDataModel getBiometricData(Boolean bFinger, String contex return data; } + public static BiometricDataModel updateFingerData(String contextKey) throws IOException { + + BiometricDataModel data = new BiometricDataModel(); + // reach cached finger prints from folder + String dirPath = VariableManager.getVariableValue(contextKey, MOUNTPATH).toString() + + VariableManager.getVariableValue(contextKey, "mosip.test.persona.fingerprintdatapath").toString(); + RestClient.logInfo(contextKey, DIRPATH + dirPath); + Hashtable> tblFiles = new Hashtable>(); + File dir = new File(dirPath); + + File listDir[] = dir.listFiles(); + int numberOfSubfolders = listDir.length; + + int min = 1; + int max = numberOfSubfolders; + int randomNumber; + String beforescenario = VariableManager.getVariableValue(contextKey, SCENARIO).toString(); + String afterscenario = beforescenario.substring(0, beforescenario.indexOf(':')); + int currentScenarioNumber = Integer.valueOf(afterscenario); + + // Generate a random number that is not equal to currentScenarioNumber + randomNumber = (int) (Math.random() * (max - min)) + min; + int impressionToPick = (currentScenarioNumber < numberOfSubfolders) ? currentScenarioNumber : randomNumber; + + for (int i = min; i <= max; i++) { + List lst = CommonUtil.listFiles(dirPath + String.format("/Impression_%d/fp_1/", i)); + tblFiles.put(i, lst); + } + + String[] fingerPrints = new String[10]; + String[] fingerPrintHash = new String[10]; + byte[][] fingerPrintRaw = new byte[10][1]; + List firstSet = tblFiles.get(impressionToPick); + RestClient.logInfo(contextKey, "Impression used " + impressionToPick); + + int index = 0; + for (File f : firstSet) { + + if (index > 9) + break; + + byte[] fdata; + try { + fdata = CommonUtil.read(f.getAbsolutePath()); + fingerPrintRaw[index] = fdata; + fingerPrints[index] = Base64.getEncoder().encodeToString(fdata); + + fingerPrintHash[index] = CommonUtil.getHexEncodedHash(fdata); + + } catch (Exception e) { + logger.error(e.getMessage()); + } + index++; + + } + data.setFingerPrint(fingerPrints); + data.setFingerHash(fingerPrintHash); + data.setFingerRaw(fingerPrintRaw); + + return data; + } + // generate using Anguli static Hashtable> generateFingerprint(String outDir, int nFingerPrints, @@ -1170,7 +1238,8 @@ static List generateIris(int count, String contextKey) throws Exc int currentScenarioNumber = Integer.valueOf(afterscenario); - // If the available impressions are less than scenario number, pick the random one + // If the available impressions are less than scenario number, pick the random + // one // otherwise pick the impression of same of scenario number int impressionToPick = (currentScenarioNumber < numberOfSubfolders) ? currentScenarioNumber : randomNumber; @@ -1228,6 +1297,141 @@ static List generateIris(int count, String contextKey) throws Exc return retVal; } + // Left Eye, Right Eye + static List updateIris(String contextKey) throws Exception { + + List retVal = new ArrayList(); + IrisDataModel m = new IrisDataModel(); + String srcPath = VariableManager.getVariableValue(contextKey, MOUNTPATH).toString() + + VariableManager.getVariableValue(contextKey, "mosip.test.persona.irisdatapath").toString(); + String leftbmp = null; + String rightbmp = null; + // reach cached finger prints from folder + RestClient.logInfo(contextKey, DIRPATH + srcPath); + File dir = new File(srcPath); + + File listDir[] = dir.listFiles(); + int numberOfSubfolders = listDir.length; + + int min = 1; + int max = numberOfSubfolders; + int randomNumber; + String beforescenario = VariableManager.getVariableValue(contextKey, SCENARIO).toString(); + String afterscenario = beforescenario.substring(0, beforescenario.indexOf(':')); + int currentScenarioNumber = Integer.valueOf(afterscenario); + + // Generate a random number that is not equal to currentScenarioNumber + randomNumber = (int) (Math.random() * (max - min)) + min; + int impressionToPick = (currentScenarioNumber < numberOfSubfolders) ? currentScenarioNumber : randomNumber; + + File folder = new File(srcPath + "/" + String.format("%03d", impressionToPick)); + + File[] listOfFiles = folder.listFiles(); + + for (File file : listOfFiles) { + if (file.getName().contains("L")) { + leftbmp = file.getName(); + } else { + rightbmp = file.getName(); + } + } + + if (leftbmp == null) { + leftbmp = rightbmp; + } + if (rightbmp == null) { + rightbmp = leftbmp; + } + String fPathL = srcPath + "/" + String.format("%03d", impressionToPick) + "/" + leftbmp; + String fPathR = srcPath + "/" + String.format("%03d", impressionToPick) + "/" + rightbmp; + + String leftIrisData = ""; + String rightIrisData = ""; + String irisHash = ""; + byte[] fldata = null; + byte[] frdata = null; + if (Files.exists(Paths.get(fPathL))) { + fldata = CommonUtil.read(fPathL); + leftIrisData = Hex.encodeHexString(fldata); + irisHash = CommonUtil.getHexEncodedHash(fldata); + m.setLeftHash(irisHash); + } + if (Files.exists(Paths.get(fPathR))) { + frdata = CommonUtil.read(fPathR); + rightIrisData = Hex.encodeHexString(frdata); + irisHash = CommonUtil.getHexEncodedHash(frdata); + m.setRightHash(irisHash); + } + if (leftIrisData.equals("")) { + fldata = frdata; + leftIrisData = rightIrisData; + } else if (rightIrisData.equals("")) { + frdata = fldata; + rightIrisData = leftIrisData; + } + m.setLeft(leftIrisData); + m.setRight(rightIrisData); + m.setRawLeft(fldata); + m.setRawRight(frdata); + retVal.add(m); + + return retVal; + } + + static byte[][] updateFaceData(String contextKey) { + + byte[] bencoded = null; + byte[] bData = null; + try { + + String dirPath = VariableManager.getVariableValue(contextKey, "mountPath").toString() + + VariableManager.getVariableValue(contextKey, "mosip.test.persona.facedatapath").toString(); + + File dir = new File(dirPath); + FileFilter filter = new FileFilter() { + @Override + public boolean accept(File pathname) { + return !pathname.isDirectory(); + } + }; + File[] listDir = dir.listFiles(filter); + int numberOfSubfolders = listDir.length; + + int min = 1; + int max = numberOfSubfolders; + int randomNumber; + String beforescenario = VariableManager.getVariableValue(contextKey, SCENARIO).toString(); + String afterscenario = beforescenario.substring(0, beforescenario.indexOf(':')); + int currentScenarioNumber = Integer.valueOf(afterscenario); + + // Generate a random number that is not equal to currentScenarioNumber + randomNumber = (int) (Math.random() * (max - min)) + min; + int impressionToPick = (currentScenarioNumber < numberOfSubfolders) ? currentScenarioNumber : randomNumber; + + File file = new File(dirPath + String.format("/face%04d.jpg", impressionToPick)); + BufferedImage img = null; + + try (FileInputStream fos = new FileInputStream(file); + BufferedInputStream bis = new BufferedInputStream(fos)) { + img = ImageIO.read(bis); + logger.info("Image picked from this path=" + file); + } + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + ImageIO.write(img, "jpg", baos); + baos.flush(); + bData = baos.toByteArray(); + bencoded = PhotoProvider.encodeFaceImageData(bData); + + baos.close(); + + } catch (Exception e) { + + logger.error(e.getMessage()); + } + return new byte[][] { bencoded, bData }; + } + public static void main(String[] args) { try { diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/ResidentDataProvider.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/ResidentDataProvider.java index ca369bba4..8e086e1bc 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/ResidentDataProvider.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/ResidentDataProvider.java @@ -86,14 +86,15 @@ public static ResidentModel updateBiometric(ResidentModel model,String bioType,S boolean bDirty = false; if(bioType.equalsIgnoreCase("finger")) { - BiometricDataModel bioData = BiometricDataProvider.getBiometricData(true,contextKey); + BiometricDataModel bioData = BiometricDataProvider.updateFingerData(contextKey); model.getBiometric().setFingerPrint( bioData.getFingerPrint()); model.getBiometric().setFingerHash( bioData.getFingerHash()); + model.getBiometric().setFingerRaw(bioData.getFingerRaw()); bDirty = true; } else if(bioType.equalsIgnoreCase("iris")) { - List iris = BiometricDataProvider.generateIris(1,contextKey); + List iris = BiometricDataProvider.updateIris(contextKey); if(iris != null && !iris.isEmpty()) { model.getBiometric().setIris(iris.get(0)); bDirty = true; @@ -102,9 +103,7 @@ public static ResidentModel updateBiometric(ResidentModel model,String bioType,S else if(bioType.equalsIgnoreCase("face")) { BiometricDataModel bioData = model.getBiometric(); -// byte[][] faceData = PhotoProvider.getPhoto(CommonUtil.generateRandomNumbers(1, DataProviderConstants.MAX_PHOTOS, 1)[0], -// model.getGender().name() , contextKey); - byte[][] faceData = PhotoProvider.getPhoto(contextKey); + byte[][] faceData = BiometricDataProvider.updateFaceData(contextKey); bioData.setEncodedPhoto( Base64.getEncoder().encodeToString(faceData[0])); bioData.setRawFaceData(faceData[1]); @@ -117,6 +116,26 @@ public static ResidentModel updateBiometric(ResidentModel model,String bioType,S return model; } + + public static ResidentModel updateBiometricWithTestPersona(ResidentModel model, ResidentModel testModel, + String bioType, String contextKey) throws Exception { + + if (bioType.equalsIgnoreCase("finger")) { + + model.getBiometric().setFingerHash(testModel.getBiometric().getFingerHash()); + model.getBiometric().setFingerPrint(testModel.getBiometric().getFingerPrint()); + model.getBiometric().setFingerRaw(testModel.getBiometric().getFingerRaw()); + } else if (bioType.equalsIgnoreCase("iris")) { + model.getBiometric().setIris(testModel.getBiometric().getIris()); + } else if (bioType.equalsIgnoreCase("face")) { + + model.getBiometric().setEncodedPhoto(testModel.getBiometric().getEncodedPhoto()); + model.getBiometric().setFaceHash(testModel.getBiometric().getFaceHash()); + model.getBiometric().setRawFaceData(testModel.getBiometric().getRawFaceData()); + } + return model; + } + private static String[] getConfiguredLanguages(String contextKey) { String [] lang_arr = null; List langs= new ArrayList(); diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/mds/MDSClient.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/mds/MDSClient.java index bca1b4760..5672ddf0d 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/mds/MDSClient.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/mds/MDSClient.java @@ -205,7 +205,6 @@ public void createProfile(String profilePath,String profile, ResidentModel resid } - public void removeProfile(String profilePath,String profile,int port,String contextKey) { setProfile("Default",port,contextKey); File profDir = new File(profilePath + "/"+ profile); diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/test/registrationclient/RegistrationSteps.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/test/registrationclient/RegistrationSteps.java index 4fc9e0447..93577c5d6 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/test/registrationclient/RegistrationSteps.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/test/registrationclient/RegistrationSteps.java @@ -110,7 +110,7 @@ public String getRIDStatus(String rid, String contextKey) throws Exception { reqWrapper.put("requesttime", CommonUtil.getUTCDateTime(LocalDateTime.now())); reqWrapper.put("version", "v1"); req.put("individualId", rid); - req.put("individualIdType", "RID"); + req.put("individualIdType", "RID"); reqWrapper.put("request", req); JSONObject response = RestClient.post(url, reqWrapper, "resident", contextKey); From 6d51c3bf40ff26091581e14a14a4b250b305acd5 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Thu, 1 Aug 2024 09:41:13 +0530 Subject: [PATCH 48/57] MOSIP-34878 Signed-off-by: Pankaj Godiyal --- .../e2e/methods/UploadDeviceCertificate.java | 58 +++++++++++++++++++ .../config/test-orchestrator_mz.properties | 3 +- .../controller/CertificateController.java | 31 ++++++++++ .../dataprovider/BiometricDataProvider.java | 18 +++--- 4 files changed, 100 insertions(+), 10 deletions(-) create mode 100644 mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java new file mode 100644 index 000000000..6ed5441f2 --- /dev/null +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java @@ -0,0 +1,58 @@ +package io.mosip.testrig.dslrig.ivv.e2e.methods; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.Base64; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.json.JSONObject; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.dslrig.ivv.core.base.StepInterface; +import io.mosip.testrig.dslrig.ivv.core.exceptions.RigInternalError; +import io.mosip.testrig.dslrig.ivv.orchestrator.BaseTestCaseUtil; +import io.restassured.response.Response; + +@Scope("prototype") +@Component +public class UploadDeviceCertificate extends BaseTestCaseUtil implements StepInterface { + public static Logger logger = Logger.getLogger(UploadDeviceCertificate.class); + + static { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + @Override + public void run() throws RigInternalError { + Response response = null; + String url = baseUrl + props.getProperty("uploadDeviceCert"); + String certsDir = System.getProperty("java.io.tmpdir") + File.separator + "AUTHCERTS"; + String p12 = certsDir + File.separator + "DSL-IDA-" + propsKernel.getProperty("db-server") + File.separator + "device-partner.p12"; + File file = new File(p12); + + if (file.exists()) { + try { + byte[] fileBytes = Files.readAllBytes(file.toPath()); + String encodedBytes = Base64.getEncoder().encodeToString(fileBytes); + response = postRequest(url, encodedBytes, "UPLOAD_DEVICE_CERT", step); + + // Log the response + if (response != null) { + logger.info("Response Status: " + response.getStatusCode()); + logger.info("Response Body: " + response.getBody().asString()); + } + } catch (IOException e) { + e.printStackTrace(); + } + } else { + logger.error("File does not exist: " + p12); + } + } +} diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/test-orchestrator_mz.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/test-orchestrator_mz.properties index 75f04e8f8..184a69b57 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/test-orchestrator_mz.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/test-orchestrator_mz.properties @@ -22,7 +22,7 @@ ridsyncUrl=/ridsync packetsyncUrl=/packetsync getResidentUrl=/resident/ updateResidentUrl=/updateresident -updatePersonaData=/persona/regenerateOrMissingAttribute +updatePersonaData=/persona/update getPersonaData=/persona cancelBookingByPrid=/prereg/appointment/cancel/ deleteApplication=/prereg/application/ @@ -62,4 +62,5 @@ blocklistedWord=/v1/masterdata/blocklistedwords/ holidayCreation=/v1/masterdata/holidays getPacketTagsInfo=/commons/v1/packetmanager/info clearDeviceCertCache=/clearDeviceCertCache +uploadDeviceCert=/uploadDeviceCert resetContextData=/resetContextData \ No newline at end of file diff --git a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/controller/CertificateController.java b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/controller/CertificateController.java index 1dc21e459..07f48364b 100644 --- a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/controller/CertificateController.java +++ b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/controller/CertificateController.java @@ -1,16 +1,27 @@ package io.mosip.testrig.dslrig.packetcreator.controller; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Base64; + +import org.jobrunr.scheduling.cron.Cron; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import io.mosip.testrig.dslrig.dataprovider.util.DataProviderConstants; +import io.mosip.testrig.dslrig.dataprovider.variables.VariableManager; +import io.mosip.testrig.dslrig.packetcreator.dto.PreRegisterRequestDto; import io.mosip.testrig.dslrig.packetcreator.service.CertificateService; import io.swagger.annotations.Api; @@ -70,6 +81,26 @@ public class CertificateController { return "failed"; } + + @PostMapping(value = "/uploadDeviceCert/{contextKey}") + public @ResponseBody String uploadDeviceCert( @RequestBody String encodedDeviceCert,@PathVariable("contextKey") String contextKey) { + try { + byte[] fileBytes = Base64.getDecoder().decode(encodedDeviceCert); + String tempDir = System.getProperty("java.io.tmpdir") + File.separator + VariableManager.getVariableValue(contextKey, "db-server"); + File file = new File(tempDir, "device-dsk-partner.p12"); + if (!file.getParentFile().exists()) { + file.getParentFile().mkdirs(); + } + + try (FileOutputStream fos = new FileOutputStream(file)) { + fos.write(fileBytes); + } + return "File uploaded successfully and saved as " + file.getAbsolutePath(); + } catch (IOException e) { + logger.error("Error uploading device certificate", e); + return "{\"error\":\"" + e.getMessage() + "\"}"; + } + } @PutMapping(value = "/certificate/generate/partner/{contextKey}") public @ResponseBody String generateAndUploadPartnerCertificate( diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java index b027b89ef..9f23ef729 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java @@ -242,13 +242,14 @@ public static MDSRCaptureModel regenBiometricViaMDS(ResidentModel resident, Stri mdsprofilePath = VariableManager.getVariableValue(VariableManager.NS_DEFAULT, "mdsprofilepath") .toString(); - String certsDir = System.getenv(AUTHCERTSPATH) == null - ? VariableManager.getVariableValue(contextKey, AUTHCERTSPATH).toString() - : System.getenv(AUTHCERTSPATH); - - if (certsDir == null || certsDir.length() == 0) { - certsDir = System.getProperty("java.io.tmpdir") + File.separator + "AUTHCERTS"; - } + /* + * String certsDir = System.getenv(AUTHCERTSPATH) == null ? + * VariableManager.getVariableValue(contextKey, AUTHCERTSPATH).toString() : + * System.getenv(AUTHCERTSPATH); + * + * if (certsDir == null || certsDir.length() == 0) { certsDir = + * System.getProperty("java.io.tmpdir") + File.separator + "AUTHCERTS"; } + */ Path p12path = null; boolean invalidCertFlag = Boolean @@ -258,8 +259,7 @@ public static MDSRCaptureModel regenBiometricViaMDS(ResidentModel resident, Stri p12path = Paths.get( VariableManager.getVariableValue(VariableManager.NS_DEFAULT, "invalidCertpath").toString()); else - p12path = Paths.get(certsDir, - "DSL-IDA-" + VariableManager.getVariableValue(contextKey, "db-server")); + p12path = Paths.get(System.getProperty("java.io.tmpdir"), VariableManager.getVariableValue(contextKey, "db-server").toString()); RestClient.logInfo(contextKey, "p12path" + p12path); From 1353fd632f10a819d6d0731d77de4745fc9a1543 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Thu, 1 Aug 2024 09:46:21 +0530 Subject: [PATCH 49/57] MOSIP-34765 Signed-off-by: Pankaj Godiyal --- .../e2e/methods/UpdateDemoOrBioDetails.java | 3 +- .../ivv/orchestrator/PacketUtility.java | 11 ++- .../src/main/resources/config/scenarios.json | 69 +++++++++++++++++- .../service/PacketSyncService.java | 6 +- .../documents_data/largeDocument.pdf | Bin 0 -> 2138621 bytes 5 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 mosip-packet-creator/src/main/resources/dockersupport/centralized/mountvolume/profile_resource/documents_data/largeDocument.pdf diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java index 54e17b439..64a099d79 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UpdateDemoOrBioDetails.java @@ -43,7 +43,8 @@ public void run() throws RigInternalError { missFields = step.getParameters().get(1); if (step.getParameters().size() > 2) updateAttribute = step.getParameters().get(2); - + + if (!updateAttribute.contentEquals("0")) { if (updateAttribute.contains("$$")) { blocklistedWord = updateAttribute.substring(5); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java index 02686e5ad..56f38b46f 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/orchestrator/PacketUtility.java @@ -983,6 +983,14 @@ public String updateDemoOrBioDetail(String resFilePath, String testPersona, Lis jsonReqInner.put("testPersonaPath", testPersona); if (attributeList != null && !(attributeList.isEmpty())) jsonReqInner.put("regenAttributeList", attributeList); + + // Handle the special case for "updateLargeDocInPersona" + if (step.getParameters().size() > 2 && step.getParameters().get(2).equalsIgnoreCase("updateLargeDocInPersona")) { + String docPathValue = "yourDocPathValue"; + String poaValue = String.format("{\"typeCode\": \"DOC016\",\"docPath\": \"%s\"}", docPathValue); + updateAttribute.put("POA", poaValue); + } + else { if (updateAttributeList != null && !(updateAttributeList.isEmpty())) { String langcode = null; for (String keys : updateAttributeList) { @@ -1013,8 +1021,9 @@ public String updateDemoOrBioDetail(String resFilePath, String testPersona, Lis updateAttribute.put(key, ""); } } - jsonReqInner.put("updateAttributeList", updateAttribute); } + } + jsonReqInner.put("updateAttributeList", updateAttribute); JSONArray jsonReq = new JSONArray(); jsonReq.put(0, jsonReqInner); Response response = putRequestWithBody(url, jsonReq.toString(), "Update DemoOrBioDetail", step); diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json index 33fb70565..124522115 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/scenarios.json @@ -264,6 +264,12 @@ "Action": "e2e_GenerateAuthCertifcates()" }, "Step-43": { + "Description": "Creates And Onboards Authentication Partner", + "Input Parameters": "NA", + "Return Value": "NA", + "Action": "e2e_UploadDeviceCertificate()" + }, + "Step-44": { "Description": "Resets the context data", "Input Parameters": "NA", "Return Value": "NA", @@ -17731,7 +17737,7 @@ } }, { - "Scenario": "157", + "Scenario": "#157", "Tag": "Negative_Test", "Persona": "ResidentFemaleAdult", "Group": "Adult_New", @@ -19584,6 +19590,67 @@ "Action": "e2e_CheckRIDStage($$rid,PRINT_SERVICE,PROCESSED)" } }, + { + "Scenario": "175", + "Tag": "Postive_Test", + "Persona": "ResidentFemaleAdult", + "Group": "Adult_New", + "Description": "Generate packet with size greater than 2MB", + "Step-0": { + "Description": "Performs health check of given component", + "Input Parameters": "Keyword to check, only packetcreator is supported", + "Return Value": "NA", + "Action": "e2e_getPingHealth(packetcreator)" + }, + "Step-1": { + "Description": "Reads the pre-requisite data at the given index", + "Input Parameters": "Details can be found in in-line comments on the parameters", + "Return Value": "pre-requiste details", + "Action": "$$details1=e2e_ReadPreReq(1/*PRE_REQUISITE_DATA_INDEX*/)" + }, + "Step-2": { + "Description": "Sets the context for scenario execution", + "Input Parameters": "Enviornment and user details. Other prarameters details can be found in-line", + "Return Value": "NA", + "Action": "e2e_setContext(env_context,$$details1,false/*GENERATE_PRIVATE_KEY*/)" + }, + "Step-3": { + "Description": "Performs health check of required server components to run end-to-end scenarios", + "Input Parameters": "NA", + "Return Value": "NA", + "Action": "e2e_getPingHealth(targetenv)" + }, + "Step-4": { + "Description": "Generates persona data", + "Input Parameters": "Details are in parameter in-line comments", + "Return Value": "Persona file path", + "Action": "$$personaFilePath=e2e_getResidentData(1,adult/*PERSONA_TYPE*/,false,Female)" + }, + "Step-5": { + "Description": "Updates Demo graphic details and biometric in the persona file", + "Input Parameters": "Data to update and persona file path. Other details can be found in the parameter in-line comments", + "Return Value": "NA", + "Action": "e2e_updateDemoOrBioDetails(0,0/*MISS_FIELDS*/,updateLargeDocInPersona/*UPDATE_ATTRIBUTES*/,$$personaFilePath)" + }, + "Step-6": { + "Description": "Generates packet template based on the persona data", + "Input Parameters": "Process and persona file path", + "Return Value": "Generated Template file path", + "Action": "$$templatePath=e2e_getPacketTemplate(NEW/*PACKET_TYPE*/,$$personaFilePath)" + }, + "Step-7": { + "Description": "Genertes and uploads packet with given persona and packet template skipping pre-registration step", + "Input Parameters": "Persona file path and template file path", + "Return Value": "RID", + "Action": "$$rid=e2e_generateAndUploadPacketSkippingPrereg($$personaFilePath,$$templatePath)" + }, + "Step-8": { + "Description": "Checks the RID status against given packet processing status", + "Input Parameters": "Packet processing status and RID", + "Return Value": "NA", + "Action": "e2e_checkStatus(PROCESSED/*PACKET_STATUS*/,$$rid)" + } + }, { "Scenario": "AFTER_SUITE", "Tag": "Postive_Test", diff --git a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java index 36d7aa9af..bc796d3ae 100644 --- a/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java +++ b/mosip-packet-creator/src/main/java/io/mosip/testrig/dslrig/packetcreator/service/PacketSyncService.java @@ -901,7 +901,7 @@ public String preRegToRegister(String templatePath, String preRegId, String pers } - void updatePersona(Properties updateAttrs, ResidentModel persona) { + void updatePersona(Properties updateAttrs, ResidentModel persona ,String contextKey) { Iterator it = updateAttrs.keys().asIterator(); BiometricDataModel bioData = null; @@ -932,7 +932,7 @@ void updatePersona(Properties updateAttrs, ResidentModel persona) { break; } if (indx >= 0 && indx < doc.getType().size()) { - String docFilePath = jsonDoc.has("docPath") ? jsonDoc.getString("docPath").toString() : null; + String docFilePath = jsonDoc.has("docPath") ? VariableManager.getVariableValue(contextKey,"mountPath").toString()+ VariableManager.getVariableValue(contextKey, "mosip.test.persona.largedocumentpath").toString()+ "largeDocument.pdf" : null; if (docFilePath != null) doc.getDocs().set(indx, docFilePath); } @@ -1212,7 +1212,7 @@ public String updatePersonaData(List updatePersonaRequest, Str } Properties updateAttrs = req.getUpdateAttributeList(); if (updateAttrs != null) { - updatePersona(updateAttrs, persona); + updatePersona(updateAttrs, persona ,contextKey); } List missList = req.getMissAttributeList(); if (missList != null && !missList.isEmpty()) diff --git a/mosip-packet-creator/src/main/resources/dockersupport/centralized/mountvolume/profile_resource/documents_data/largeDocument.pdf b/mosip-packet-creator/src/main/resources/dockersupport/centralized/mountvolume/profile_resource/documents_data/largeDocument.pdf new file mode 100644 index 0000000000000000000000000000000000000000..04f7e549152c465b11534c47c9dc84794b1e9baf GIT binary patch literal 2138621 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
Oa6s^l)^vV(syC!`Wr^$*D6j1&ws!V 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
    vzya zb|Nw_OO>s<+3&W*mEr-F5Z?Sju&ELKY@WoG48ELfY|8W?+z zxhoOQAgPS2g^NkK=-Jzv;Qn=jRcoXBjX!smA$Kyr7d>K;_$9lN4d-Qs;?knSs(B(4 ztsBT@l_uev3P(6Ed}MTJA{9EDr0y>ks$^S=C|92R*Rr^mp$Ia|gO6W2MItDwTX$cC z#alzOhs7pR^wx4=JnXwg$^j!Lek{sBLZ?(GnFKnH*lSTHim7d_!rdwq{5VsWjW7P? zWFH|8^_$>UwZnMvAK$eF7IhmtOO08^sWSg>vS1Tgk4H~zKYbWZ)g6@W{!l}wuCO55 zE&3l>dq7%9L@%lg)N&e#(KPrbKee0iX=%VgJXt2=Lb>pC!od>D0be&uf(EEP6BM6L zl+U^|Nlo}Qt}{p6N<=}|04r4Dw(#$#@s=!{X&Nf5N%Nhc##6{++@A*HunG;LP@7GQ z1O2}%L?>T>kPVQ&wLK#_gkSK*?Bj2@IZ0s;3-io5O;WI1z!0hAA(+**l4vh-ZaAl8 z5S6d%vI9jWz-Tgue(eKl8Yq;siK!{x-(Kcsd_F*WIBEhtH*WR_(w%P8%TmA zi<8jg0;~bqla54)_r6z7s|X$3B&sx$D^U_@cSY)#TF5nrmIBtG*&YTyQ6UA^pqTD!&N>kG(Z}E2sHg5gGFeo}BN`4N?nhJ@ao@kXp!FDYj{VJ;%wGJhTn)>fJNc(P7BGm+L63(7igq!(y0lR>R zFn3|jJ`Oj$9$<>$!x3u7cDHmW<0D5Yq5MA`BjT~siJApBO-a{u)@R@5Di)5@B4Bp~o2~4`uQU>&&R=%~4Srn!E5`h1Hgx+*5Ov+RI<+ac*lZL>+%zMbyyJ3 zKF3?)u;3lR0~da%TtlMwNiW*(BvKxaOF+aakR}A>P~y-?bpl2SIvGG4ws77jNso(d zqT#EXS~je^D34%J+wi{vGQrVpjRCV!pk zy&V27=u^j~;674VNKV2CSIT57#Uwg_@c2^FlgJ;7uR?GGcS1PoSYYTFJj1a|`Spo4 z+ju3^FF2%LXE-55_jYgTRYUjL$o$LWpE#Ac^+M`^x!VY3`8BI;Q7JxZznrdEsfwJRsht?6H&V(H+jzPfll>}#+>0|CFQP~gJ_ zO70`94xPYK5j*(c&xl>KLLHjx$8TDH?c7$w;(rw=3gRo&*cdVmsMx|r8@(UcHv`7` zJR=J+R|NBn7JpZ#0Xt6_2%|Hrw*4qkliqyr9Zn7lnA36f*=Wgq+;8=q)S@f|8lev@ zqR#GTSW?-B!CQEquh{E`t_IT>kPT?t;61`ovdqLglON+(aGTd+e5%g-CEVuD_C=1(_$g*S)!*{;pq znKuvd?M|_OYD5U2w;5gJ*nBOjsOV$-JYSpvQ~u<8>Qt*Po?p9x5b^=LNJn8HVZq{f3_&Fk>8%7?GHO z<%ZN+V^Hn=1=_06*3@Sr33v-tD+CL%$z=CvWb`7m zM5Z0I#j>UlPFF@@FOblZu-k+;tx;iz$G=WF6nOETi&SND9%z;~6aJIZU@8~rNuHYO zy7ozIf`R0Vs48;XgxW<3r?q%8oiyKT)V5{I)>drr>DC)j6I_~7gvpA-&jQ-0ZK5uP zMZiP4Vqp4)Gy}LH7oIhI7evY4aMEZ=lGM9>R`Ig|LYs>>w`YA14+E0E0r8uSM#s*X z0}IoEz}c-Mqj&Yb2R9Lok(0wj>@6Ea-7z77}YS#pD%p8&$owJ-AA& zxV&DoZT&eacaPw6(gMKlQj@eTclkftvBfB`8N1n5qU`3ia+z`*V)VA*kp?Y47j&b* zDZ6r_M!THXWfe7-Bo&`Z@(KMB%Na}4xMui!rloK%BT5v>VZRm~0bVw#S^Z5iY?5Ar8~NoeMMq)qNLij@fR1<_#c$kwEI4y zhSdk>$66~5if6lPHlVe!RwY@a@QK+j3y!oej-UMFS?wQ1$<$bxz*spBZ1##hi?{+* zn}=Aa@RwcNYW=d)BD}0d05Tv)K6N><1v%vWgq1(PdiU3)&I46EB)kz$mmdadr^wI5*D}PgJ-zt9*WS8|K_r%z%hg7xLZIf4b|u@ zpWGT5%8e)k-X|BZ)%_d+_d1^b2~B>7>iB=4A^*d1@xRfK|8DsB?=<8;1mgcW4f(IK ztN%Sz^526m|5qBq!o%@DXvpG!q#gf%sO0fW+VMq005CLkuDhFH&Fo!l#&wooMN~0K zKFT`L*O4T8SBj~*Rai99v5~IN)BgXZ?C>X6{ErGi4r+rsVT7op2j>r9TH$IFhNABUIg={*7Q zaN~y@=@vRe*W}em?=WTwXXfM=K17>rup3<`lceM(exy;m_^|(-NI{7X;=7v zkVN|;C28Mhmp~so+t1(m#}Kh=?YXgKl_-PYgQ0ILHkeI0`sTBMwOCFN%Pa30s`{CL zovUxq&TBm$`2B_A{+>O^t3j6x2g)PZku-XPB|ET4F_*q%3C$k1&o4%syR3UGBW-?M zXr2I?%~s}cBGTr9q)Ia>f0n5uj0cI3W^u~zquksY z>jko#9C+Vr1slgS;!<%{uTvB)x<1nXs46l&2@4fgh9Q7V(7<%6~Sv!Ovs#ET3! zG92hzYac)X+sK3{!oevKs79bSc3*6&#JwZsT(#r+DO4Y;>EHn}%(jJFF=vS**XB0( zBP4EEN?p)Zkp+1V5C@+m+c`S{zPrEiEA1GW9)wr`S5f`M-{O#AP+Ls-;nM6@y?U@q z-((ul`}PZdh6I-VczyohWFCX_OPZ``O#+kJ+~BQvx>7-Kxi2Y0W9o_bx&Ja_*yb_J z!#*l5JlUf6RI04&cR+kHgeR@9>PsZ%fuXn~9>9lS`5^~%8oEI=;v9Or7gIGcE9`Cok~4qlNwr_#RSej4ZyJlKFz4SR6{#pGEo zEzxPE(k=>?zX|S2wYL1K?g}l>ygdIpLHz`{O(wKOnsGK9oI9#22^u)<$zHHcP z#e=OHXd~j;91`egr6MMxAKmM`A@=}qBrfkvHKG4RQqBV}2f&12RmdD=OAv5R{}MY3 z79ZRi!!i4?4kZV*isiHp9#l|iL% zS!@1867+;ESN=t_hd~4NQq+mRTY8dp(&EZC+BZY$M6;{FdGI4UP(!@JHZpQ6pw)3V zXzKgn>I1C3Iydvx>f_e{{>4rvA>RigxS>C$ZQC8uj6>q~kx$XNk3KhnhJV9o?#)tpyA;1g%z#ruBBZ|M&^PO6~>a9%W#e-}Nx zVS0M|%hAtR4U`>}FTCz7`!Pv_`I4&IXgC!E?yZR=1!3;Q=TK=Pcal`D@5g_v@Z{-s z68yT4Ak%5H_1UaU^bO&VK~6waSL>i5Zi(R*xM-4l3=Ts3z7v_uHT)@$PJ8Ejz zI>FBtm_rIoVHCd)JL8QKd2N(XAQv$IWzGodnL>K zfH|AI9^!_hq7aFX%o-1&5M|3i357E&LQzv@j{d}(!3)XiG%B_YREaV@Mh8adLQk{$XLi9ig9=W9IEZVza{HMwzBMmXd)IKpb_(bIbP zgVITb`v%{hH442=FCNWkZPsU8D>g9O*H@&P6|Us5qI+Q(zCEXd9RCdo<@%~Kyk!aq zVT~A1)l^VJwsXRreIdA3QfQ*kc?}MjBRdL$`hYv5!+QSO1d} zU7A?H3t0>L=C)N5fc}tAHHoAsbJ-00;O%*Tb49K8ppEN)nT2Y-7w8{9aE@2_MRFVo z8;0TjMhzj#m<^R&uDl>oV3qcipXrh4dwlrqsYKY#`G2kRV1*5mJ_6ATcDxrdO>l>5Y9Q5mBO@VyMtWq%4OTs5q~H5PYU6P<>p` z5Z+vC7BGoYz1Qd)Uk7ijxn;LU1FPsJeJXC6?f~QfEwdzN&BW`XG%wDS@UvP1#DAUB zO}CCwyf`HQf8Ghwrwir~`GKuMa{W2ihKHR|bn@`nUu75w)`q~)ie`+evTy?pb%98=h2jY+MtQJd z49@awQ9EwQ-e5AzVxe)LpnfLsO4Qt|-Cxe}%G4n|+SI;n;Uu!eAxG*tGzP7$A z-5*lY7d>wu@O$8u5iDI@LqcMI3TeFLJ;43H>by$zEN;Jy&`#nrZQ5|X%1eUe8-J8_ zv)E9f5nLK+&Z&@z50ZgrMZ{D6QP#MZ;~}JS-20&zX4fI2ja<(~4gElNJ5iM@$A+sW zYX7e{j(=AZ5~7}Wyge@5k2RzgLw1Cs@)#va@{LZN-QQbNwr*nZjUfS=w1WcKD(I5) z444Q?T0PJ1^~?AT&2i<2Y4M-MRd5GF&D9>97Ulg#DCb4^L_6#_@RJBNy(v|B z0t{GB%$e%<;0&D87XDgj!$6$4vG5_%sjvRC?vCldiCVW(Vh48-8NW;1C$8+=(@)B!GL-i4Bw)b+U7o_n5>S$FPe1l)Q^#mSRh zheZKNY%;4)Z)^BjnTdVcz%7E@0s62e4SqSXlabZM1#f`+8vjV@bQ_EJcP+PL~r zEt2w4S45LG*qubxE2->5${iB>%A9U&Au0I*J@dpuBFVm@oX^MzG?3_*h>6kwXadZNfKxj~ z%*`c%lnS(L!J8@eND}Wf~lq!g(*V=c~rta65tm9wJ4)%;Gn4S9FFEy zx>2~v;Z`A*5sQy6Gdj+nzX0jjKYgaOb>~Fadd1QybC?=0Afb(;vp9>{+-TRK_U)1@sk6?Lu4 zOV1npO*}YXDT^&%NV9m6u4LXVi0g~NX=2yQc+AdY^jjDU^)r*;|T4tS#V%WD1 z{pEl%0At<#CQo$|5jK*iuwNYB-@r8FIVs|I_7|GNEMJ)FR$Hj}) zP9d|iPb8dF^=)5hrh}^)=v|bU|D5Mca z3cei;bRLrfc_SS7^mJNrekUopc;Y8N*2YepnbN^RvkKdTwWhL(*(mnQD8oskUg^{^ zYF>X&^Jv ze9uta5sBu4=%d;NH|xb2@JO3jU5uzD!>HJHSq$QN5qm^$XXc%AcKOVIHs)s|Aoy+6 zI&$jbMc!7c;)g?-I4VqTBY1m+SZZLCCadd@w`>US3;)L{0NnRPF7Cg~>he|;c4ZRk zun@@(qH5E^X4I4-`ZIc{$dJv( z$;j6zoiCXa`^n-oh*fC&GudT=C#Tdv!Be=DPqp^}r|0(VGa+t&^?QvJs}|$OcV8Xd zH=eX@DlSD5n_F5QX1C0sgg_Uqo&Z>A51!P8w_^-rY8#`aMaLY=*s@nMgZH!iHd+nT zU11k2#BTlTU^d1+pm8@7Njn<#TMP%tz3gPq%H zMctHZWn#i1?xT4I3FY6k{_)!>!1A;nwcEEV-J-!hw2Td=vUY!8)s24NwN<<@h8(rK z6QAzcVu9a)WL?b>URy)u&Qh_C#UD~pJWigC!kk@2{wHQ7R!lU8rT9tgI!;3x3j#E` z>1zz1;?9##!C`%5T*NW~HXkd~+G9ya42+~6}KURrGp06(GnZuraAWBYu z;T&RAg@Zq%6i;AyaznUe2$q%|RF$y^akPMNX+{FH0jbe_txH+Nuf%Yo2xeN(sl3Gx@ulAbrDq?O^i>NZk*!73jUY!vYSc9_iqVM=N)$dPR!vXHpw1qyyULNW? zi}uQHusUXd?|n0$6K#t0?om@R@j-4ea*)a^1odzARbn=h=<(bDFOv@^RzGdjyPD|^ zXx1o<{C07{9uMXa7o|y$$t~ty{^Q2|!PVWuBU^TB4ql+dtsOEQ_$%b#QceH;epmC) z+1UUFO)5+qtqT_LHw>rGuZ78d9!{>5y0h0w-9zkfLGPDQf>>vC6GxbWc@unCw~`x2 zL!z|P(A{ce;Yc-nV!vFf>{_EPjTlA#;6mjjPZYx-|4Nb;2K-+ZXI+4DAELq)lcH4=;RT!|AO2m-$BTx>rmUH0_Ueo_SO z+mg#Rp1v%!Lj&if>gX69gzVE7*f>CFzW_LYU7(00v3%9fKIA!r!;d}y*k*SoD)gVB zlHe8Ubz2%~3iJh?*%;IjQZTpUW$CPc(55;xG``=knX4d=3N#=&)!dw;gQ}Rv^)n;F z$vAJ;QpeeATd-WyOqzzM!7!Os53W~48KR2rbkqx#hbD9h>S@E@Ul-Z z2|ccPt6rR5YhUc%;;1Ph;{Rk-dmNQrodA=g`xngPpami~-M5!q%wZDgHkol!Ms)GN z0Y}lC=by$3dk$5!gx7^_&OxJJn(z5ZM1gm_{p5v(k77Zn!=obPBUil4S>pKkcZ+>f z3}a+R!Hacm-jz5>(=7R6B2B)groPB!(Z_aqQVg!m_LFe7vkY}owoy*`KpYbladx|P ze`Csgq8*qGz=FlbMt2z%-|;HrC^x4#>YlqU&^e{50=*rO*>6V!*Fsx%%rhvN%(T*( z&s)x0?VRrqV0>491$+87)BeYT1MSI}?w3sTYO_0M*PU4VT)$Iw84Q9Hd>*oOSS;7$ zJ=G+k-{g~Q%n}8&|cK|styJ` zGaPr)AN3nc``d44+l%7*-Nlp)`i_z5U5vge_l#kR4`qJAeYS3`87?-{ZOSW6%Y>H1 z3)_s$m?rx!WA}0PpqFU=B|E;bu-z`4XY0TOZ7>3BVlfg&8>XNOm<{WlPT~?3bv<$` zXdf}s&F2EceDhHONymXCcQz&afNGtZW94Y@Dnk*5S!AqF9Rn~0$YY}8lyKllwY?H4s0^M-W}HO3$BQMXmOvgZu8PB4Wgtf*QWLXz5)_fTrxJUO$?VHR zd5z_!lJOS@%sF&-W|yYE&aS1L@f)SQ4e;pP%dY*SGjUilC}Pbfsw|# z^^t1sWrZJ)vBB3k^Ug(!68E(uOf6o>iZ~Aq?Cv`SF8OY0;`9Uuh(6cl7FSV@PIXdxwU#E(5iw7V>ES zs#aHI4?}0@=hx3H4)0dHESu8>TikN<+wIY+c1m~J7R}CJd#@tn8Y!i32jZ}d55Dca zC8x;`Es(L&ANlblHz@KX#tNa$=%X9sm?8wyf8ZRt)~jwL?nv~xJ16X_Sm)}^<{{`k zFwm@S6$@^tR0%G6*aZ1@A#zY3H^G71;UHBg6v{A4{O-fYJ?m}YDevRCcX8%U4PW4m9 z!RVvo2djm6hJ0IkDlJB`yBS$sXWd~>#C>L3y^SnWXDyb@3BXLV4^Ls=HT`dFqS`|S zm@E-jMPD@@zdi-d{D4{;oS)Jm2(XSPIcg6q~}<~ysWT> z*9Kub%It= z@BaaB{0}R||AsgIyOZO;>{(&Lj78pWK6I5jGCV~4d0Iohsw7uiT=5)xIbUjMPE{RG-RKBC`|F~GWB|uRl zbO*{&;z6ZS|TP77qMOXx#_3?v8_cdfw+b{be3mzOo*$e?DLJ zUR(k**ZX$&)d-GAJ_A0_*L(a3!&N`pHb?8_%?KSy*8dGJKkT2kPFH?7e>P0Lx9SDD zoheQI^yC3ir+*x*J8qIps(l`+1@5-@I0Zg)?m)1A0%twO{83*rIG%vf_u}EyP?w2|#l@X<~=Rg}m;m z?Tlfcr@L>9+*4g-r(X99#q$f7f>iA9?@!LCxtj#9rSjYEI$YHQtF}!za2=r39GO)e zD;zNHvB|~p+xflQK9s_Ck~Oq-Q1;!_Ob*4vB%&}Ge=`T85qj&0d#|dsehD_7jNZM@ zWTP}1`UyA#&&pdY=86Aw(jT^DjqA_nGwmv@p%^{3dWdYCW)k)d0j=2a@o)GCO7V~d zW-}liTR+BZyfRt7+6#u(15d>>d}+z7r(!C3JJ6L~?K!2$9))vXIc-FwZj{T6x2}5x zfKQVwA2Y8rle8ik4$wG|#m^XEo}g89P_-eRo%EFwlME|IuZ5mHd<7C5$t(7#=(t(_ zi2c$cn8}U!yHNcT76g%D;BtHp^@a2pS{|Pg3@QBvn+x3Hf>oHS_vN;R6I6$*2GMR) z(pp8;ZXw%iw*G}A+=RzWJAq8wd!Lyc@XFZ4h|0v9Cc;hJe*A&VB=yR;2Ttp8E?O2( z9^%0Ru)bCyUl`sI=frj1UEC5?)q6~|sW;fFwN51h0mU-&d^2I=KunC2Xr=g5^%$fD z^SlCQoYJ!I$Y?vJg~?n25shnfFTHN|4|Rwj8gKw*Lrprp>LfC__3kLa$Y}d-@8R5- zrsa0*(9@>yH&M9DwE%>umK~OMqo#uX`E1{d`3X82bo61_BKVKPbkS*-M`x47JG5R5 z4Q=Z4CK>(QO-j8G!Ean9{xVa0oO>Zx_%g<=H+xq~4rhSA!jUTQlrMKLdcgwBVz@+i z5fDAGck&xD6-%UOy({N1>=x?|2PeVCcaa?;1y1?on(Yg*df>8~`ui~0#&|}7{+Y>F zV56CYuKE!p9o^2W9=oMk*@1up{4+sN8fmTvc@9}>vuCB?JCx$?p`Dx~K({Pk2v7ZZ zwumbQWuw|DeEkGCba-aIVqMov#2G3x?xv1imSk-tv;`XqMgt+z#OoilA{WI3HUST9 zw?d_^scVGz7j20Uf0(}d=yI)iuJr;tuq^Daww@+yfPBwXg%8_7uSS~88d zYIL;2!YTut-$EO!`KRgQxeNs&+~Yjmx75#p*5o-o^IiS)Ikg{HccP>wD+lt{LAxb$ zx%^e|q>HW`b;JRxZ;dp+h<`#LF!OVF(~OG7L_Lmx!m|) zxcz@Qz9{Xn`0IZ@N8EX_b8(Ciy8Z6w@6Jp-4Y z_(fJCWB^w)#8cP`T!f5)Z++CaWoravVd6J=1Be&67{oq}LM07|Z)BupLZ=0Xb>tOw$xa#B6r}V zYqMXqtWdA2-oZrU3kjM6-xkGIZjnerYx7k>XVF!w$BXtpA`Jpv-&WXW1&f8UFadRM zmzt4KMSZK_Py}cR?`a?rt zJuW_I1qy@Ex0WmG*HGjFxW`EHOf{5}uJp^=R5L7M=HzHvg4b<}K6`^UdO*2E5St;! zVSqJW3@+s;NBUo9f4x4i7yu^idoqF&R+jK=l8-DIqdHM>#x)9IlV$z&e)`~GDH{`Q zP}Q4AdtA(8#zbYAfTsdYr0I=!4miccV3}5G9K!Dwk$YbFy?DPVdXYFcV$@eMQ0D)| zzY3|ZB*CowMtfFUUO+|J&KFp@vWg#*MUd#7R>YB5JRzP3J4%Ej>&&%-Bw9OS{cVZH zooJwi*-K3F$A$_@aq642JvhWXD*<08CB$H;5KB$56uO{M>zTL+mrflgZG<8$1e_Q0 zRalK>p_cg)Uav?2=E{ zOu-VTLpy5?-`wHJzn@_wLHdNKt4u>F;rZI?8UW~%*|sVbfj)=T^4yiVt0M$in33tY z7i>pPThc*19ye}Vr3n+g%r;86ER_w6(t;3y+yCdrjyBhcvT&R-|P^eL$)BQGQnWV zWnF!YzvDO2WU2NQT&RGMfoyH!qvdqz3Uz-XbXJ>8;w7m=_ZF=loC?%9OUorzInZFB zA|`t(5FnZJI5=}@#}3UsVwLYKq$`g+q_4w9NDkR4MHG-xE;M%uCiqrS{$j9>c&Vh6 zs@u^R>MC&dCNZeE|2Z>Q4E2QT|AM0q80}~Wd$zI z)_)~b7|i~Ls8T1R!j&_*9a6ptR@jPqb-E)a%}SfM3vuX(9)09p30X^=2!1@G%vQcV z(*G%Fj-~^Inxs+hNq8C6fYPp?EQ6MpG^b6G7B%u)DqM@UxhXXUOQ>y2;Y$q6@-R{ zisAZsE2`CF2=gGM4rd!+3;lFZHUFErsMO=@Qg5+j_l6~^6T5D9) z0`=4CfErTP;N;7;4h3t?S^%=Y@WLZmk_T1%F9iv$we>@+nh2TVmt7HLdyY@WgA}qu zF~T3h1sI)+U0EEzn20xtpFnNmkyAqjSl8$e9cO2J(-94Sm>0q$vU6)445iK-gu?VD zk#SNUkP^`fyzM@>{DrdjCmWv$^lKGmEyb_gsZsgy^XU0SSuZ_P%^b4-L zI)pVNLNpDS&l?{o?D8~u*6ByDHt#tOlBf$W70a||=UM$yV={7BahzGHrkuaW#6*LG zqPXo$DX^7@!SkYieCImRf=iMSs!llmF)Ku}DaVslZB>h~(BMr5($Zd#{ZecRJY~q=@bj85p-L~#9)$Gw zLkQcN08I7~Ksw>Y&8ml7L4SUY*RObb{{T+mM?8GgJ{+7RcA+@*e8iIj>vOJ}z%#@jXUV6b$>r<5t%=mt)$d+b>A=$+I zbaIM7xpec)bi2&P*j3N_1HtjS9HdIdMh^AY>f-z5*GnnP*_#Y1ZvhhZJdgUt9GlC9 z$rkw@XJU_vv17Z^9c02tJ1Exy{itHhXU`t%VSNNAnBgPBvQUR>^iU6Pbs~MWqb$7o zGfIZeU@_d%(cMsR2ZyS$UxQp%u^?w^(SbA~e!pg#YwY8B( z0Xo>a+2ba)*9d!nK$PxShQaZXhjW3Quz57I+v?1dmWtMsM|6f+sHz-z@J{-g=-b~y zJSm^T?1}Az{d(Y$7Ol)YLgPy8S;zb38IwKpgCfO`b|m7H#nsY_EezEVT2N|5fg6JA z7tJho#g4ip^{7Jf@n9WL6SKlDp!s3r?1Hw=`~X`Hg3Oi}Q?xq&=x#7;Bhu>4)O4-N zde--4>-nz5t9XU$)oC*}1bR2cY49QYs``Zq*Slbxl76er5IffjgL-kkPxH>|Q)_zi zi0THFDR*)%$1(xe3qUwAJzTlheb5=R1EowzI@1Xa_WZ!4-kQ~;V!t%%wNL|lGSb47 zND$2q8!w5tT)cI(uV;1R9fCZLkfGiCm}2z57dC9oxx$Ttl{Z%^rA6qe$qR+t4Q=m~ z6T6dKCish(7IrG=O9LmrtO0-@qo|4UEv+p=Q2fL#IJ{E)GGcw80fAK#L2XZD~3BR_BmUY=&e zxi~6QNBwFv7^QQPs5`TDu!VBG=U%P(UiiGs`M&WC|0=$^r^M^{NRlx12w!&^F?DAs zsln5(+T=)sR-zeJMc9z>q&WVX=o;R5NnNwJ38Gj`=Qv)&-6$*!Vzl8atQ?GkFr1rK z#34x2pBFzen>x^sv}7) zeqD*pP|yScl{%r0;bJz*W-E@KF;`hf#)+1_V_xbJT$Y(KbxX&iP$t6oT8gV-^$#?O>E3MHUJz#roT+);}8meetD22 z-7|puG`M;!uoiF zLAui^X71Dl7>PmBaj15WFABQH+T5rbeFHtm7UuD2HQ>3~*kKgCnfm5A&7CT<54$|b z{n9Cx`~U$xLQkgZ4vp2E5(&MQ-cUDAD#=P z<(1a}ztT2yao)r&L(}H6;&=}b`-2w3Qw5nLx?;r4N6fHS;e8sFm?}Mcer)t}u7bOp?7*0otdQr!G&aG?Nkg#Wa z@rSdm$%w6V9|uA7$%fhM_bkOT$nz2Gv?uSn!{m-M2I3k^keHi=2C4!qZTRfoDw6ag zZ>3I@3l|oJYgzZvs^e_=)WXijMqq6BQ^(&S$&o>oA2FsKJCs4j zH7ssvy|v&aa?u3HunPLGz<3phpL-q37;qRqTLjnIbok$P?+KFxyny)(vbrptAZ#C*_%YJ{(XF#8W~W3SB_+o#S%Z zRXtZ?ulOf`NQ{<$I%cI0{BrnkeCF(aqQY$`=NfxBH_TPie}?^9W|A8+^tEy~(xjw= zhccz-1*^ImLfO<OwC6vA`q%IVp?1{g*$n#uk8dZgy z>2!mI4^~};uKa(ry;E?d-@djT+qTiMZCf4N?5Jbgwr$%^I_cQ9oy^#J^IyB_d)Kb- zt-X%+;XIgC&%`svoa6f4*S+2Lro+*H&^ppsJzclheu@Hg*x+(i*4gV(AP-gE&z7_< zS{Gxg!mtl}l!b65`*iO(vL1Z2JkWv%-P)#}AsfpA+6=a5w9<4RHGFEF>euKrM)a1J zVn8}newSd=U!4DK9fLGQcDv)skjZa zQ)cKf>Pe<<9^%-7Gp7*=)7ctrrZ{n6jy;_v!PO&&x^+w(G}4oK&4x|v*RML(bVIus ziG+|6jo4MzhG8oPwSc8bx%*M-s$iici41+u`ImC>Nv^-4p>i_QXcfuaGE1qi-`$Q? zXPiGDf8mOVc4_-t@fenpMarLAN3QdliJ%`zc}iu^9VuTE1krjF)AN7GtIw@oi2OK; zDjKf4OhGlZWQaSu+{mENao0pEo<(PZRLV)#+pXk;OjVZUV$rWhRD+jYOpU%sA3lsb zep=szvNcm+4cXu9`q_63eJ0|KrYBpE4rzJI523ZNM zvY$ydckr#YS`LLYrZ(MXZ1!bD3jsH3r6oHa*3;VbhJPf`Zi+L@G3^T(A9+)_< z`Vj?pQ()mydc134AJ;xRq3Dhum%&xa{7Bl!Q{4f1dd}F!mC-3{%80a;mh*e*Po;*& zmx~I~5L}*dTT)f*@CXp(des@DyG0L}F+y`7I`U@U!moz%9Q>6i=Fzo{tl}^Qc+uK= z{Y>jmFII_!cBW=*7#feHE+btuq$?!1MNzJ+2_x!Ez(%X!d5Hhmx@z3__x4{ZuFkzs z21$s1Tn;xB%M+kla>fHNzmukEL{cnO{3fMMzY0o7iCb%$>#w}Z?Z9=Pidllv1Yj=z zrYQF7&(f~`Dvl!~HfP7X{NLstN{Ai+giIs^f&uvfm~ME^OMZ+H;=!_gV5*MopAuai z&&8<^6xwrPzvJk5n?o!h*G(-;1LYNeg29MfJs@UQL4h!6%48*`-ZgH|FmYOJNEDbi z2^d_{G_Ho?+)35z0h!*S>qrxEn!kpD)EneqdZcFC&YPq*tOzeR^#X&Z znjL*_#_+UvDe(Cz#{`xObMklTxN0uL>B!&~;JU+`ZiEqeCMFSIn*rbCvAlj}OcL?) z?}qV~Yd+iEa-0SB*#kpKp^M<)Ud^3VS{dzMpSbzMe0& zsc!TC@RRA(%i;0s@z~zp_i^o4^2PZX>2{x+eF42WhSu12A1*I1=|Asx+l1dwS=J9F zUcOpRh8t&Xx%t??|ImJQe|d1^@$LQ4DET~F^UgHuZjW|x^f~XT{urKPXrz4{cfQ2b zeKSqY?{(in*znQ5kv9d@*k)c%KkNb4Lq1M1e==-NLUZWX#TjYacV}F!c*`4x+S&o8 zqgmtME~}$C-uj(0H*-k=avw)Wj+_yIbDuY>FPlG;WSiB!FU|VPOWRqm-Ms{2t=5W2 z76tdc&gA#D*<#xPu-I=B)qKB~>N=k{K3saIB61;6i%nCnzb;b=ecjzZZf=+VuPjSB zC|SIxp3jO8d}(7IScA3o>iI`$qS>v1D^B^BOM@e2u;EkXn1JN4XgYspoV0n3)+o@= zvT`EehZLWyTEfmuNOJEB!bgIiywzhL)xON~T+>P4M+m!?N%|@CoVrxK??qlUo+?7w zo~Lo1ryiy!c1YR_fvusSr!x#ix<5jLT8Igylr+>T{Pjb7+?|s_5DlU-yJklg78_ zU=;5;K@dC>y!`!^BDgX@=FW_#m9PC=7I_*<8IisuPpAJ?NoYiI#CFa#S+H9%?-jAgO} z!>Q<`xdoyTn#?$CzbX#{0P;iZM4KpP?+mg#(Kqe5s4Tjv*jsx zBc{T0T3{{8fbk~JvNSdrGi2%Kw}4E5b*c<`I`Od=e!%mi1wbGh+AA75f`0X^A|O5F zF8=TngH-^FX_kG}Ml(#*va?}_mk#o$+`j3A@ARwb7(PgW;{PuL)*`oF3F7dKc&DKE zx>WK>LC2N?Br~iTk1l4RlARQAp-{e}Bzz}O>{U=|pRmQo0Yig=gO}0UuN4|J zoUA%Sk!6J2?-kW!zes1|Wo*<6#JrAODagD^%q*5H3a4^b@QEQRz6w-HI(G-YYZKPQ z62Ez&Y2ad;!B8U&VZ}a$bj;fhV&XW=w2yFE)o=S%?N>7*Dn>!z?KHk0R3th_l1DA7 zSLDoxqUoQ^(JHW1AOz!YmRYtW15MB8{{srHq{^$mOraMEs7q8t=R^DbROoU$$T;}8 zgl zph41}>U0F!F*HN1t*RvkI>^U_yxV-A!7Q2pL}40mAqOg`hy!Co?2nsK9e6-QbWN`OCrMX1ht>J6376 zKuQ-y_JRe+?14~k*g-|2SPsf2o>s%i30#x0Ey>)nYk>*o#YIcTM6+WbI>c63U9r`6T?SfW&p+Rk55H zQx-U1O;>e#yPzF&JUv9dvEK!Q+7M`}nZ$)~4!K=#!6ZjZX90C^0#%m+xN8s@`VwV8<-Sa1IcD;|&oDA}m8opzWX%8jByt=A_n? zma&JEM2(D~{2Oe0VlVLDI9E6^A#KKqP~Es$9r!t_1_%T;b`LUwC~mkJApe&tW;Fxt8>SLVM4 z;PBSHk~y2)6}QopS6o;~w;F7kb%m{#o?YUw#wXC*~k|^gB2$ zEPg8C?X#TD$cBS!sxPVN1cEP|Z57~2a`OOco7Yj=wLN%Qja%0iI!Q=fYqQ2WVd?h{ z&%5J@y6-H<`_>+K8+v z55NevK|_-Z2yq-pwffUY>=|Z(GF3a2GLbaki2$h%KKB^Cyghr)b97c>j+eyV#tC+1 zogeOOkaVXVY{EeX(i{YjR@tXr?2D>~LJyC-b8~@6hi4HuKefyK(FfPr@g|{4{65MP zW8Z{jr7YIcEC;jzmwRL>T;Ni-|LoVwFV)}ZcVrcRu!(@5gYiaDp}&(S>wbdw6%cEv zrb2RY;8m&X3y8yGxl|hEAckqLih-}#+}Y3#NQ6MBjueZnqdfj@S;X#kLWs?ZGehXk75(sf9G%Y>gv=zP)=B|K_)VBbFQ=LN`9wLp<5{iSFZ5>ja*7-fhm@` zLO}}?x?6<1`$-`DK|p8b1g(vf83**9hCl~g0UIaXUy&LsmJSC)^lb}Cc+>$og!uGk zTTTBMt-^pft%*6|kUWkj9*tXnyj)d{D?llgKNiyP@EcQF$lPPWjXh+!}CV%wcR z`oSAlAd8EjvFK`66^#7O`W4(AT~Op+0`v|;xhyEqycw@Mgqaoo=jNd3R8CVm@#$P5 z)q{ERdJZ9~LwU0vmTgg-9#{*uCAUj&Gd5`*lMd6xW)~%}sQDv(2$HmvoJPoCB!xzO zh$;CgPAGaU+`cxgxX%mGyejF|#kgQ1%@xi|F3rH2qJnb|{f|qwPT7hszBAqKG%EFZ z>-usQ_JspkwoD=wL4}YOL>O=l?np8TL~HkPnyWX-mFatj+P{X&0ZQ-Ki#BtZ3-ty0&08+I2CR1x zaDFv%5o&O+Z+NJIm^k(a`crkZFCOEGlJ=7^e4php)`WU1wot>vH3^LxugH(3uR9O! zIj#1*t46ldt#0!WuBLaqyKVi zC2H+GGFTt>E6Mi2X^o0dvjKAm!L(x%#UIx)=yQIms4@2;61u1e{jFHgp+pL$6(nwv z10hX$Q+9B=FA~Pwl~ZC(aUjBnlHy&`4r#bnEd$%V>mc1&G0~7#4#mgb_3f%T;P=ck z0rmQN_kR3-Bcii_hMz|YQk*rCd-Y&Phv)aC zq8M{#@OKD~qZFSZ4=4h=-`JGZ+?g*!+J=(UVS%DZq!Ch`h6r1Yw^aTW7(OW21sO~+ zjcN#MzE|J4zj{*;voxYtHyHHsJrTk%aN<0#7J!zmr@ZB)qF)A?b4k8ZWa>W1%4-4B z!wuTGUhVPDi#-GPo57|;0oA(Em~NJ*%{Rs{&xZZ8*ww>fH2>XGF#k==6+ji-~T1(Mn6`X8!IW*Jea8a?IoNi%Q;%FZm{5XET(F8-8V){trz z>AhdSPq7N%s0$W_=hR^7brP+7r=(k(+JJxKh6Nms8)&cy)VX{RuLIsEKnv z$(1}JEcQwm6fjdqYw3vTO<^-|fSzm?Yw1lmW2JoQ_FsQ5Cz(7olM}rm*|mlH8!HW* z7()<&-CQUXd{+5(8843V#r8H!C>zv02sGiiXAl>xy{R)}>2JHpp^kNMQ-xGLe?jX{ z$*nV&10&WM)@nYJ5F(YT?7N&1W8)VajBVB{6F*21N0k|u-!zMm+cXGejp@uoj!)gq z+Oq_;qqzKywSJFjGLTelXCmg~$b{c!*?4d_4jLbNEBAT#wsiaZ=VyFK8D9n^;U@#i zTC^fU$q+$HeNi?EB269%i3@AnZ>eYUMnI!!x!%w+ zZ^1Z`3$w0XGiT#z)+pNk?he?Wg!*yUC;7<}Cd;dq19$+HCFb#rbwU7Df!Jg-#%*0^ zqiFpc~bDo~T#3#5txH&vcR(n)Lyur^?6btR(>nh_UYvX4DT)~Nm$<(bbB zdi1D&r>pw$wtBg;CVXIz^#eorBq?q5y7iMOj39q&pdp=Y4w>)kFa1ubg=vyq9)7e| z7JmRzY|Wh{ME$AlUyD4j7&2Yex}c(uwKY1Awt9GDUB*7_g13oaUGd@#Cg#}PTCsIE zS90*3SuuiG6VgRPcPLr4)nUyzkqu1uacX8Z{&d$#;)-S)ZVi&|`<_|$R(f%x1T{XX zdIs!;_xVfzUU{e!v{wHfgU5ztUU8b)5QTLHpc#X>`ga;KJ8|@uXQ!iqupHJ~yD%e> z-Pfzzv}LN#vunO(9?cl1X(8l-uj3^(%}A6^%0ck?|+(V-! zZo$C=$%N9kDNVL&J3jqOhPC}lv7D_aI5N%;8A9MPNxLUfyYfV3NUO6jHdxa9r(dF! zd}=b(p#M~*X)9F&|&VDx9JhD(<>k2+Ai@g~-6ShQu zZ}+;G6%F8uY?$50qa&An3u;D%ieG@HSG-3<;V=u|z*nSrXLFL!AADw@L+>nkBJoWR z1~^;%V_)B%BV7hBJIgyy)oGjylDgioI-Fsf^eP~VrI5M{uVq>MH>@|OIOfWIZxPNZ z$oMQdjHW=f3OPG75b=p=ESF@Nkq|xj<5X2Kjmp0tgZ%ks(yW4-a0sFP#{BtS2oW&C z-JZi$9mf|0l$T-R_sdQk>Bg;G7T&OwY!_=J{e|V;`770qj)QMaB!`yY`4_E}m%@rr zp|D2r?Z&^= z7u^_N+JrPB_yg!XOI0{~PG45x3Y8$O{sa`}HBT>)hegZ5+S&0}4vkfDn}1^60IP=) zc;@)CBf=+2mV1kD_7`L#8BI2xD&~p^Z$~4Yk;YNuDSWAyvI8)h}Etc!CO6!dw)ECN_kkD==a^$($)edu-Rz zQUtoo4zn}QMigzfyd!rcnUt^c47n3)+1Ws>Xb09Yn+z8MQaHE5lkXGyC=}Hf18QfJJ$%m9@3YA{o~6D~^(-|M9bIR1IY35K`3jF}iabR0(5R1MXTg7NoK!p`{g0rDlD`rv+s7r|)>djHCvb=4lYv>pFB)49g? z#EW-T7!VaWV2j!d*Xbf(kj(F$9D?;v!AbBWAy~WhYAL$)gg`N+aSOcJuDsewk+@by4A`DkA$XGu8cZMj+q9ck@`~Bo=3LXbv8?M|g>V#Ty3B_9^#uvr8QpmJ?4G zpCp*?`;Jv!tsPN>Z(2{z^0RHupPeOv#b?`xL~jd)tN{WmuhxpSH*-s`;|th_jV7lU z=O3nxnd3*VdEf?h3{(+E^V`3Z;5%0+RkE5PgV>uP1K~0vJr>wZ>n~}fs*Ux$OP~e4 zmUX@B3k}59Gz)d68~akuzgtRlZMV|-l)HD?m_j(hY0mtCUuz6644;%_5J!76|D-O$ ziO8#k!_N;6`tC`UAd>`(FA+(+=Gz3$gKN z#(F)txnzbam|$4+y6Po17lEIAu}S2%%H1ius^Z!#Nc|Y0H?Fr zlYR4}8(c-lL;TZm-C7(6WmvB)F+#V1{L>&L_1VNM%J0hcl!o3tsb8^v5S9{iRt=Uv zQZP(cJb`duEiJ+kc#uo|c9_U8KytW4Cu&>|QGdEsBB0{5aH$9*gWHz~dP=qyi3dLr z)n#)!VscV`y0qS7c%)}iob6iP<|0}HBs(7+Wv3uORI-A;%j2^{$xhXGWEP&zL|p_1 zXi_Ci$oEnfe!kvr^F`YHKgvYd|6BLQf8ZnR|K2?E?|kGRCh@<{NB-sL`p@~2f6u`D zk9>rYneo5zk<0APn1gS9)`w4oyT3fszw}uNCdtHh{*PdqAY{LyH=j6?nuV85yeMCk zpsf!D{no4khD;dubUqyk>A&+OUp~0>-~Oy)&n^zSmu26t{o3u%M>_udm)zd3<<^Je z*4@@z->*l8tJ78$1`(P=m;Ga3ADQ0G-Xj;s=dN!+a^5TO^?JGOLm0yT)mCky@lPlF zIQPeMj?c%-C3iF7Q);!7uXkrxZ|3%E==sKGO}nq^B_L&KyL-)az0-VtZF}=oKc}A7 zYkrGQr><&EAZz%ucK8!@`z^T0$G0x7>%Gs#Ss;4=;5-f>q}TpB`ovYf;plZnEZvPA z_x-v&?)C9}d%0xL7m01xIclICe~u)uQ~BMS^d3{2^NN2t4G{O^jRw@#Qzarho>I|2 zr9wvm6<{Y5pq|uI9(AoYoQ1)ke&ImA-Bi4(a*&sQd%9K0AHWfx?4}ZPCSaK61+qLe z?Rg>qiS@pg%-E_ht$B$wg*Q6d&iLwhL$9DlC7xKW97saFLN;XW@uD5wSH5p9X!ziV zK90mUH`+v|7iO2?M78o@R|mwBjE9#w?{jAjP0MVSp6O6Dy)_CW)ezU}cq{Tw2_RTwJCc&tUN_Cn{=T!E0|RRM0Q z27a|W7}ga!eFfF&2jp^OhnX(TjzMMvW+J&uQpmU|>E?x#h`^BXe>d^DvrclZAnn!2_P187rG*##_G@719B%PlLho#&kzXPM ze-czB3;!MQw+ortLDCVMw^OZbpq5UKeKw-cm@EFL;6q;rtguqn%2dfV78rolE}Z&( zLSVU2NoM=8Du_P&S$*|aOp(C`!Rp((jg?Q$)2g)U4hyqrVbS1xqe1+6W;+m%kX(?$ zF%^$=8C?g&j7xwz-+GSZC zKeWR|_ch$gNTc!3@WCYcNnvAE*}r|ABQICJQ#u+32Q-QO|z*fj~rFK36ic^rrx zpmH5oA#}(<`vV-(KZr=+xA>UDY=ej(007uWW&btc5++<%g7cRmVhCqDG`wbKgz_@I zpW%2=UP^uOaL}R`X@7cHK;mW8Rj)`FUT7dfwa_HOLqgsHYmB((LUl%J8f`ZpM9Awc zCHm?J^igLG+5~<0xiEkTLR0wzbY7{aj7rq}(qtgklKG;=K1d%K9-8e z?c<_~5|G|N#^Sm~PyQhERuHIPqB6BXgi_yXK81cN8PNdW_f zVX@xP%VY0j_<-455;n~JSvR=xhUkhdQl~1;Pa;Vn!-dOAocg%zg9^5^Vo}pS`RQ6N z8C!X3cjYs&P2jlju&4Z1Dn!jZK{6$Nr}gF+?u^@r)qhsmGc|Z1Q8BIOZ4|#4>x??6 z5yT9TaQr&bnT9J@DF!W?N|blV!@;lni{|Uh56zBKV_!l2bDC zak(ilQ7xc}C9Mfh=8;0h z0+nCDR0dZTXN1_PQ{Qq4CSm$?pRcH3u|~BnNE;wWVRmF3`qts#`LE0FK>(@~{Kw;= zxW+G0kjgsD3L73CK#&-Z(i|4J&e(@aj#KAW^2wm-8Ct_=}deKRcbU`YcY_( zUyM%x4ku=naf=faAZUZC-DKTzOb|p9!PuL!fS^{k65NDnmqg({C9;oYs!4~pKRJ78 zGO{U;vTK@3P>BQP(y;(QGDfYU&Mex`jJnJYTWl6WRm*{vk}o|+Hp}aj(ML#bf9xk# z#ta)<#pNFGxCO9B^+t5d(~BmuP66?>BWWYBKx+BmZ)N@*u(jWI%4~Z{387c$L==#r zCt83JW#zkZU3Z4RcxGC(|UAT-oHna9z% z_aO$2?|k;DKry&8{Vu?;5OP|sRFayt?w_#*i3<4eFLiYmf{RD|n^$V?IeRovBmm3w=*5zbWrN=IZqZRVhhUBAFHc=|E8K2N?1Qd_uzTmL< z5k{Bv54yvj=a;@Oc~b!}SUJBT6b<$UQvG?g-2R+EL8s^7GhLOirt@@HRFPo^*)o%H zB1@Y#2Me+W^?+rV!+A_hd_!*O=s3AN8*Un6|O!bBzDZYYVW!Ixr&JbQYl z4V6@i+RuEj9fl7uW4QbX~RAdzI+7msK>dTjG*4r~eI@ErE z9}xwaX)P-s4_0IELij8P`8V)xjE=p7d^5b*qn^Tbwmo1}(aNbDjcB3ld~G1r1$8w{ zBlmzujHuqXZ4XC_rd472Gg^x;J-Jw=kA}f_(_$mGR+-lyt{+v62I6pXB5a^@B}+0? zA@RuchSQZZF7odL2Dn&w_qNS9_D_UmHEFt}yd#`{3cw`iDak0y-#u9>^W>+2lz3$= z+ACr5HlPpt46Xn*!{b6;cGFm@efhNL#(+6hx}bCA_0}{q7$#Ub2J_LGGpItG2>4Hb zjS)^fklDQ#h$rit@4M_vtDoZi+mOX<-OCe>kZc!krYyEV$hhX;n)Rm9b zE~_oWL?rK7wDuiTZ7p{&qyZni2`AS->L|16q9qiA@WzZ3yho%#MEp{szmPvL zjd#jm1;>~B$AsKj$yJ)ZO6$x3vl)35#F8VLD_HXPqQ^~bz^u!GeNt{2ymR4-I@n?W zA>@sCU-M;wbtoy?Cj(~MGwN-K#5#w;_yY+5sbteZpJCo7D}889Hsa+QDK5jNmF9G5?@c9mErY@V!&gVj}#y4#F$&cgqKKt|c_uTNDQ(aSsAr5XHVyIsh zzi`};MaYjt9UYNINynqiy!dbyQOOt4lo?SYPa|StNHcecq6_)~0|;xMsz83cigGG}K!B$>$YJ*ApcCndl#*70vF4 zV3XEOJn#~;SxOQR!HRce`J)HYTufQ)q=!IZ%{120pJueObu+NRKi}}ko;aU3cqj9$ z6s8+!yiC?99ts5{vpNJSt=sb4PI5z)qO(s$OKu_5Z76mE(u-<{(3o?hNG&r)u%arg zDCfO^fHx_U?Ga0(oYRk%<1QbDoQ(F4@ zPxUaGf46R~y?_|;uu9OInR_IdI9%wu7(Xg5yvbgn+X5TEK_S`sgB}`Y3>%^l@uHfE zSiT8TxS819!XN|YiLfYxPA1Mwp1Owc+`f2vq)%uRr~$Xuy!V2ry9=E%*{NtK8)x|j z&qm1XspC2VE=Q;oRaTvK+bQf86I)iJGWb-7pd**`#*O_sHrAT%Op7^uRHVOJw=t;; zgGHcLom#x`I#95( zkY^2I*OJ!5i8UQY;1;xWz%-*k){~77szU=I;h}`DMyq~?KeA)<+o+)WJbS@=X%{4P zv0&%v$}x%CFFGP>GQHDRA7D&zqT(=NY7MlWsGA#ASq{XZ+ij?_Su}W4tfMWl?`|Zn zp8|Duq)ib~hVP=Dg1|+nKHSm9gO6vNI1C13PziMIcsCyCGiPEJ78f$*RW?uJ+l>4J zYW{~~L-7Hpv1+4~M_{DC&DRYvlAStSs#L_h?uOoF-p?|tkYTLMWBSn*al*RgLUFj# zQTP|FG#2-8=!h0)a5#zDLjoloG{TY;o57fEDnI^P@H^&u{g_e#?PjY2g$Bx$2n;3LOHG~ zIwEv)S|7e&$)iB4e_Hp;D1uRhWJJcWD(U1g{@?}80vy!kj~M)J{ci^$HtO`x0+3IH z*CK+hxAWbPa(JJTX&v~54PAaIzwA73P4(X2<*8JgXyUKOP7mv!;j-{O`hV_!&;F9r=4L8RB2ZF2l(jbhNWcJ2 z(QsU)6Q!)8yt*0$xEq#vJ)!d-QCZG;K1RJP_b;73uIa%fbK>BjjUZwpz&`<9x)we_ z>Na>vk^F_r5j(@|?ujJ87q+5|u4$K*;}tz+-ftjRN3tmkm8BEu2riPvKhl#{Md~3Td`B~;6N>^?XEQkL0@U_XTtUyW(tCPN) zi|`=tC`3d9U3`e(c;Wl+<2c^PFpltJWJFKy+jJ1)H40L$8su$pCf)gHj0*=@%P;d0 zG?ozADT`iG6h}{pcohi{L=QB40lbOsp=-i+D}<>(0EeHcQcOfcg-|wMW6jFdXsUE`zwaX8)l==E% z4PVvpRn4e0uvcH%amOcP{F-$Vs)!UaHW7QX4#7A;xGfcs5pQNBXDGtY#9v^AZE)-K zs{rqFW_glXl4nC8fc8%((1>EvKoOzSfRjI7f!r8D^|`)>12Y2|24Jid*~R!P?NA$E z1cEg_^%a6o~lvl5~bgGka~J8VbgboTLj8F~v7;&P*@wvFtE*kt6pZ#gtt{Q<*vU8uvAH0@( z8N87_fB5H4z&i##u#~p_E5f#rua1Ee^tPUd=eagOBySzCSQfxyB@vu)anVLCu@vV` z^u1=|ju2tJIatc6rcISXV;v4sl|si3zQi!eYnlA1Em3WggFVl1Jp$I*m2A~*UoU0o zjT0INgD~xXDfw+-mT%ImnK)%+6g*+{bHnqpZqN?;8zarvY@^X2z%|6Fe|rtoG1R!l&NX(kd)^Zt1m%2+cQ~9Upfd;^uuHZ(BH9zQwG-*ZYroV z+kf{XwId3v>U}h_ezob`zSs9m=lNQ{L^Pt(X>MxE!B=6}&iiGw%26BQWJHWxB~6Rx z{jLDRL%-Fw9|jZ1fMAVyN}tY9OE6|#k%t(V71^3mz-_p#&ts%OO3-h3#rIQWo0a2A*Vs%8G1&iG*y4D z^0dVf-Rzj~yhm}qh(?S0)}8wt=wl^P8d(M=*YDB1Q-bI@pqHjypn6T$Q5cGF{3i@k zOg{o=YXL~z(Sz}_H^wX>r4og`vo6NvjQrVhQe=ZwvCkIbB5hZxYLjigNN_&!>};Gu zfVTCEe*Y5gRw!jK(0;BmB}IHyzMX1Hn)NRZ z)lz3}4@9EKjMBV&2JoOICsnSSODW|<>fWTvX*6HDaXYr2i98(&r}*375>&Bysn2mE zYIgT&xf*T{ocvm`GCr(*p0IIKX6#g6Gx6ctWp$4clJd(m`4TqTZ*Lm8aSg)GtQ3bM za|Gg+52Nb+r{QD=`Cg3~RvluXL}nfBF*UOQs-BUP9VhF+np9)K>Wr(Osp7@tz>p$a(e~*~_&v=53{lDRf#cw=8DwQDi@E-B% zzZcZI2TX>uLrN9JE@&B@ zGQQnv$nj5pW53yQRN(8Q_FHzfPxpE9I4$sXe0jZZ^ZdAVYF7>jQ5!oPi2d@B z*#;0gwsUUq7aM-QTz$toK8D{I4?gTt;d-c8Q z1DrQwX|IUySc#bzboAq8%JvsNI{S-&;g1TDfLkoE3jH>~_y?FSM$OwLN{!3@0FM#A zj4PWEdpql*+0O0Xk3@;L-{-X{IA((EQfH-k!cZ7+2Sw*@fY9*PkvLsR#mj9Yl_A9t zeSyzuJArTa*UkQ=U2frk!|J4|X39+|Ol7xi8M@;_U zLbwf$mJAh&$WfC3YJf8XMN>PxUz11|&7dbc@vl1mOOs6C42Y+(#xt1-L9344JG_?N zkNakW(Ylz;M2XDa2yeAle7)DvTE&+Bq;R43p8bv?3l;Zn`kF~=F8uqZbQ!_>b^$3? zYF!$2Vs8@7pH|uBJJ+VO@awKAAM14hE}ctTwRS`3vnBBBSCq|TrR}|!NRc%Ww8&5mRnA$79y)D6))t${c>3`-UYKJz-J8RXL|xDX>Cadn*{}>q)I8_MhkxEiGBBK zfcf>uw!@>`RtL(5@-;c121y4jh&YtK(2!<=sChp}fw?T!LLPntU+Xk>U+fdBL7wj5 zb4{rgc?)^{2hm9(6-wDD40l)?gK+GOl8&0kQC<K<~@P1+CSbR%}qLsBKF;FMGCGm@0 z>!}D25~V$E<3AB`GoQ?kK=%ykdr;}1t0TmdTU8##L5yUqVjQH6Oq@V^F}FMKCQI0y zmTUd6tvgw+>b8v=BwUO-s}D$B6lnEI`lv)jV#6DC5s>vl+PbEpSHvi|8{&%xu~wci z5CeE(s}_nek7{6X{7FSq;;*oX5ew;DY%3Vn02k6`E_)at?at&3xj;ia6=5jn*-f16 zdS4yH{UzB|VNL@2a&}zT{M6InOy6|ZmyS2z;*aPi{_T3a2H$f2X}|||w7;N50W9IQ zW*+(8o&OGrU@yn~)It_(SvesbQL4}>J|n%Lmdm66Xs{Ln(2I#xsO@f}qX?4BvsEla z?ru7mAVgGYDku=RfbHy6r1Qa}o_-r6sD84P8omC-6N9Ge{0FRuI^V)(lIYB$BTP+{ zPdu$s3r!D+ZeJgN(PNgGyd6yD%K~LTzCo%L4T-o^ zsYyuei}!E+1O1o$IP>=2pR^r=6AUqAMMKC333KN{39uhM*%+juPe1pVaw|y0D_4Xq z@^ICeeZ+4zJmE@L1(}-_;TgD`pr%A~fMrQqbCKzhe}xae zEPv=VhK!67k`-pOV*~|d8F*vo!Ae0#QrKglP(^NhxCk7zdBHf`HH99{#a0L!;#E;$Y93Pn?%N@QF^Q zK-YwPD2_ESKBq|^xhaqsisIoy3Vg#=X>9C3c_ZjF4{t)`gPZ|Yk~l5Rcs6RUf`dM# z_-7JAsG`vWr@ti8Q-uTBl3eZOfLFKCq&%!q;%91JnAqLccdMVOp|gg|i`Gr=M%=p; zAJ~1cLXyJS@3IfJ?*LKP52(bUzHiB_y~gxcq2sVKrD$(3A#9RpUzoxefKEp?H34D< zh@-#~RdDV&upP5(D6s%83@R1fUA|Ehh(Z)&NH{2gGTT#rX3O5|ajxz{)Is6x6(2&_ z=@itFSg->BVz^(*tHryIwxORCoI%8ptyQ-J!3J!o(;`M4m-mh;10e)zhPES;eZSaYT1S8zX(XQapA>+t(nyno$ zy@57c+053z4LUw%Jq=Q|>cWd{-G&Suu~MqTO5Wjl{7ku7IeCW3)FrbjmLrdXWu~k@ z^w|9tLXk(~s_Hnv-ih>YeIS6$^^T!xZ8qqZessG@vomXb%*os zz$G%(bFMLmypvjnYlW}Ov8EkU`$JfNchg312CHROaFyYQ(^8^(x1<6ERj$UN>W*o& ziL5{~B)n5y)%1kEsF|pWNXUxwinb>dGsm-=F~C(0CTcS-tV88dX|1DCN5u$bj#V3* z`o+B$w14(<@nO^Ekv`=mC}=f-X)Sm^PEau9$um72eP+k^`uD*xhHO!L#zQt(n+=Wqgm1N%X-%?C1rV-LtE)>lRPj391UpSONSwqn_qcgRu#)fM=es zz`vPhKdvddI`>T7=FVHzzG@3BTGryAc-PG9!Go9^UE9rBB9;YYKgzS$DDpY{9P9*Z zAjzu=*@p`fc3X%v9qr2&<;b|3oauB;?JH}ql5jpGqg$`kU;JBlXsBLOZDMOm?WBMS z|G>0J%>C6lJ*ieG{w3QxbIlf3aLpVUeGRF})8+`zPq~Xb>Dl62#%$8RBu=ntgcd;m z-2Fzt`aTX5Tmb!eApmXVxYOX$I+t@v405^(UN5`On&PVT`zn&MhGo>vrMt45R)k=x zUu7w9-Udvf-d*{^eaV{#{M0KRhGw6>*);w8Lc)4yNA+?~Bk?1Md2z19zImwBCLW}A zM;x+VbT_)fHl0To=)N7)9Sbr^I=w+D;@)xNslbs&9r21s_JZd100OSU5> zUnTr*zWUs#EdQ?>kcPy(@Yaq0s2C-H7^mi~lF)i+vJ@s0)BqsP{eNgX$KXz)eO<@4ZBA_46Hf4tZQFJxww+AuOl;e>Z9BQy z``lBtcimfOe>&g0tNP38?)7`t`#xYG%oQ4~3h_B;3Ji@d_m2#NbLN5uZ)!sN6$t@^ zVZ(}dWZ|!gWo@E`1_-Vu*#1`Xv+uV$X4Lo;HK5aPz}U1-y2xUxOyKST7^ zH?!fcQRAuQAq>jJ?ZP=s##a@h2DDk(?^J8s;)V$8oZc!%U?cyWql1}FbuHoCqP($e zRKH0%#}^03#bsG3@f}Z@7r|zn7Cw1Q@0aVsWUS{?3NFGsm8d9Au#|o4$~s1`HbG8e zBWmv}He`gutXQ>F-U~r)*G9S@#NV_qLg-*Lem8XJ?G;imTZZdoIOAK6=c(m%MS)UX zD&YvI2TvGtES;5a<<1D5IP#=dxosbHdpZm7XMpF08fz@vULk5zi9qI>KZ|*A#J8pp z*>5n`{%Vi5uO=3CVU&Euc+i93e6!bS_hNQQ$x=k>C*Tw!vI6;vuQD_%0R&`YFOJ+4 z5;Ma*GL<}EnyhjHO~-}mGHP8OJYQF}Bb?LjJkO90%oX;^H*B2xBD&8nzCP#?MtG#A zOW?1v7+>ZkeQv^O&X)P@zOfNJ^*|ba!6=sDdgCrhOYOFj%Wp>v`3RqR!B-K^ec>ym z`94TQwrh>MstjpR)vGiy)}P7^viS2-i{uqMyEYv2Fl7yVSc&lrU`F8u5iD)?5g#VF zqYR$1Af)ICEfLypEOEbK89Q z{oa1UmR0vj6T_EYO^Q&@TKj3k1zH+3MOr*=XW=^yH;sw?h>_1qZjCU z%JqGeD#BdNnDF5|1ZJ)nd2Ks9jM+f|d|+X`2jW(^L$P?{Y6x?KJ118z(sJnh_?LN$ zD%jvV#>^Ud<}&c$Rwawe{*1Xhw2}KUP$o4w0cBvyaG7%*cTzhS`NzWoDgScKCPqTb zRD=bqu*QQ3Gsp|~FT$}aQ(Cz@LRtpXcdZEJS#i`*i$b)?%H?V)FI4qD4KQ;ymt0NV zBaEr(T7R>GV7tXcaVm@RodxeVy^u&Xhnd_|S1j{QoFqzWwzt&GQ}Z~(yM)Pfi7ZU? z0Nx*h^gqYypTxMR6hjR|9{>mC-H)t$TC>XdR+bzqQ94Xk$Hkf1UPcPg<>F>aT0eM4 z1T_lN)*a7ohj}x(tiYJUeb_1Dxb;&_XhYdqSCNtt`~xqi3src?@gNsua~jFVA`IwT zX9Uyp83?zM;YZvA)p1iR6pGRNFTi>`0trv zH_el!3$PV;axoL(GwraaN$e&o8;A;)@Q#ezo!RLL!@`(O13^pyl{sTvToWlBLc z`T!&K4ju6{1kD^YzWo@<--)|ehd$m~dD1(rkTlT|>lqu%4Z27XesUr8&7*>)lwyHm z4ThYXT0D92f$UFt90i!v$|UJL5d&SaDFHuWI&0Jiu7dY%TfJ^p)ee(Kr-ZY2_ZiR* z45($BKa^dV9c2~$txdNNN-T=GuAB$CLH3V7OK^(_Q-6m`E~}GGN&X;exajNU_wd&jsA>qvJvgc?^RnWtVy~ThhfaDJ z1mvJ3Ot5}!pIELaqacunU3vcwtjh;{O}b$yyWzl}A^&-&5M;Pr?z zQe?c@^DDybbp`20d@i;^yB%A|w>w6+uy+&;9RpF7J%>+83IY?=+NQs+?XQw6f^2e| z{&y{w4HhmXhB+A{>!po2zWZd6tLxn?=%H>xdOb*=r5r~MxCord280nG-9vJR3XOCmtOLR1GI@@c!Jpu>i1S;0`o^B zie8UT`nwCZTRaaSbIlnP`F0eu{&7aAo=xv_U6mTPm@)b()n6^@uhTCjnBEMNzn#Hq z@(fUJt*9!^iVPM~Iasp!OvYYg#3r=(u}i2R6T)lCbCV_hXerqdqfS;-%Y-!&PR!QN zI?kAR-mmlsDs*1v6sqeF$d~EwuS}KNPICN}w(G{qX1;E{;0FHGpZKi z7sew}eap7ugGiAGoYw=S#R)7O11afq+TdB;Z0GsMM@3VpzVB*n-G(!st3U#KX?!GW(we{+qg{ENF$Ds-C;1(4W zeMgsuOdx$YpLo1`MOubhkf|-6^ZuLxs!Y1mMZM%A428q9mpPe9K*`H7R%*f6;}PlB zb?QSPe4?SkRu~=v2=e54z6)(eHEtx2zq$w?d-iGYBFl#m`8i{e)wyM|4;&5ZB~ab3JMs?)&y2HghleW8q3zel>r;yFn>E(x^T8`wA9Iv- z`=`voSoO(TP8Xq0r;|X_W%XDKPx=ozxsQ==NycgPVGEDO)~mo}%x-NRfw%9#Wi`Wx z(i3IVry1YgzN2sX;@3m(!a0G_WwpxCCtcC!tf89>SBuUok0JE6`rNgc&W|VEBI8Ug ztB=#wuYM17f(xB|0gfkz8H|eVNARnA``fOs+lOj~YF*vWM@N@m^u;Z-W6VBlVp@W{ z=KeAhi5Hh_3G^H`;Pw+8Sle<)@vk_GPk^9BqO9eK4IY&@rxtz8j#J$y&#nhX6pW{D zQAg(<7JXEdf5WBR=KYwFS2F<~OE)r=(}v1MgU5{RN2qjx&(Nnd+YmA@q+T;SxJH#X z%R?+Zg0PZX&Dud*suy~%Ll+p^6C#Kp?lqC6--!>RGbLzfh6NDs5;{~fB0qHRr~^(h zO;D0862uH5u5ry&+^d)w5lAU!&n#R>&D)KZ7@HORTmQ2ZzAVsM(Q0vJ>n|X?3>ZBE zS%Gb#sxf0qLw}$-Y)ZpmAbe$Dtu8j+<%_H(A_cyZF~j6fE)B##SE?99<|4j(K3|I* z3lpNNIyI42D+=@_TiWlnwk_1V`9M{NH9@*{Sovv@03UTFiHSGNGy&60X zULU$25c-Kam&;s?Z<^5koAw7Get~UpJK4j4Gvx1Pmq)#1A*| z4_>w4!dgbsal+-51C_XwZeF|Y^B_De#MU4cLHg>WEO^)z4y6`|pyXk;na(pj6Z9cf z31PtI>$zM5;C6(rQBEp2gCPA8243-2`XENs!X3k+ca zRHU>>VL
    J!MqCt~o#!;&D7RgL_t)Pm$U_%}rQ&}HUzG~mP`dj=$6oGq1Agr{>v zR@p%M_l4GOvlFqe-F8Fbz&rkNf+Wb7VCb)f=wl*Wf67nlWwrot%0#KdAC@yD*jh{` z+Lujsx6`!-skH(&kD!)kCCQXV5Sqz$Ql?^xO8CpC{bdgkuxH#^gv3|YDz|b^_kwqS zJP%~yDce~ZrqCn@E~aqc67^MIkm&K7^3oB4fOJq_N2Xe7Br&Ii0$vB$jt4Zad9qcm zgc3(2*`4wHRg=_{Ou~z15{PK&iu2Z6ZLt{qtKnSm52QCVChzLe_&|~wb1!S3}_9{z4o4D9Fub&=_aB-qM-tMjRBk(}(#q9(Jg__s(FKuYU^=3M59 zG?Q$Y*oLoS!fOU%GZpA9Qqej1AS@DiM5W_>mc*s7A5P3?lwq7*V|316j9f1pH>l~; zC}n90w?n<|sUxu;&9w~~y+C2Iyh}N$OsxV}v5)DNaS8xPu{VX_>T9Fj`mz#jb3a2tTs>1AQ>w{$ms zf!c-9cTK)}G`p3Y9}snSdvh1=cIpWv4_op<38K5B?lN4Kc;qiMp_=kYbodbA{fYKT zsP&g{*@Yg!H1ilI`_gU5wk0XcpgkYvy<3Er1j{JY<9IF9P!pWSI=U=9kNoi&ioVFV zWRYA%NwNf*w2iHX*|42@Q&(~^+zrBviCIsJ%ZH7LYRn0T1v|0uh$M-7HC|Y9k@pY* z@<;|nv-BmWn(*j}(=84e^uk?d`&5R2i-E(+5_KH9_KeCi%c;G1%~aoF;2-aOY_T8T zpb*FnSHn*SqVBV(*>e=%1P=tV!e3rk6M4cKb>;fLJ*RXH zf~8YN8Qn?hvCAHa!z&5BLTJ!LLZC%D4V4to1tX(Ru*OkIzk zZeiK#a+F&R7Fq(P5OZgu8!lO!e#p?eq)sz<>e~ z=V;)c4GBNzkK-E9Ic}9(vxXGh^{Pq6PEQ3Ccc-(d^tjqGX;-PckysZ2aEPy^w>%!hZ0h z=#sURzj;*wEPg_g-legB8~{}v5V08Tfp-!9i>J1~CQ!H~TYkvX7?t)pj9!tSjL8wh zD!JAK0by7~j*(8{F;a8uO%|f(>(mvIr-0&G7K;CYxv)WRN326tJeLCLW+B1hD{`Zm zS!5hp72+}&7Ga+dT|1CjM}Csw!j)taeL2-c8XVQ*#CzXOkArn8WCq&y=V261y02 z@>EspSbH!*l$7j{iR>Av7L};Q-#$oKgcmv6QHTU>np~viCleRIaHd}varcYD3+l#- zt-c}9HCXU<0<*2hL=mC3^+1{c_i zuvnXXQ0x$uZ5UL;pDCqr1%Kq1~VFa#CLj-b8EbV$cHC1WZ0 z$;izXr%i=2Zf?H`-Uk48a(l4r>W!w_3xfs^w7Xpd-eqq|LIRlow^eH171UbEqF-TW zysL2uY`Rc^SQ;DGC5;!=psZE{WIY#TSO=5{9WzRgeM0Vt|Aq<&m+G0oD|^$@oipi4 z<243v6U}S>)NaGdU#h)CSZ9LV&o)KGaR-tr;;pbOeuTRvswQ=B*w6ybGiBM*kU!~z-VR9nK2*maPra*!tKD;69wH>UZ(*-vi+`#0pUGw9QPOKDWJpk7tPA7 zE)v0JVMr&}Z9kD-we4{;J(@a=Y*zUY!0sJ&`)RFS6oaRuVONjRUo_w0aTq;kYf~_- zUF|tePF1YGq$HHn&LIVM01Mrn21qG+EU<~JsUa4d3$(lmtJNiNa7J(*06UhJR>4%5^Ma^znqyF6tRT6YJL$ zmZZ5WMAsX4>A3f7S zsPh%Z-5`5?Rv>b2LGCj95anboIpl4qU0tyWi~FGG5F6VS0!1Vm{9k5;`kOhYtCF}Q z3_iE~F-^r?{<4_g35tmK)r*D9#r%NX5esH>b{d!i&H&@(gS>~_&=8Lt>0j?O@@M!Q zMPJx#$z5yAg3TJ4L{uhv9dV(~0+=i>9gp->S3X;CwkBC*WmQ&+x1kM4 zkrDz;<+@Lqt7nj&jOH3V(&iF(9?J3`oR_DN#)h1Z(>yGV54bL}H9Q-4t$h-*T{7q& zmJ`F_F#hr%9dk=pQb>UBf~nHwbr+8z{EkEYHfGK38MwUVs&O9*QbkB@O2{at&6gSh zdU9Vi*dDi&Bj*R)Z^?HDi}$Bt>#O_mOKp{pQY?TsrJ_?{F{hw>D?k6TLs_^q0pb?X zE1S;b3xN+EpL=svTjR*^?+k!w8Z1lNX^5N_FR*H$g0XKl%z!mwZWdyT>=+5lvumd^ z*SGD#GaXhBZ|rKXtmx`u4>>b5&CYcHtH!b?c-|l;&3un+`JL>tdT~QX(bF9#a~6@WI@7G>fJT+|uN0 z|GYi}i5<*lYvrQ-k#5q=Uk@7e3Cvl|$eAdk=FtE}(3OS^)*@RGn^&i_#SShD4fDIo zVl{uWYX5{$mT$#*j;Freq^tT&KBVR!j`4-XEl6dy(;wcm2Fw`D4hxm^kGHl$S1Jz@ z5=&~Xx{ZOe*(DP!*L(eZ$eT5Qtcs~WfyOc!Lk1yDrNf|~&$;4{pQwmc3)PQD#D5heB*$TdLW@MYzi zuhc==&=XCRp7~hTLkmt+G*EfRgMPP7nvBUpFvxl=Ec5FO7NbV+!6Au~SF^6r!%X*1 zIJ-;Quw;hH-#aO?k(BL8qIS(2PqX-Cx~S(7q~yNtzY64~R_2PSx+=h`gsw0d?2%T- zqPlM{$(+GRMswG;zfQzF;Amhl2WC~Ui3$w3)cyz}^zQMq2hHOmHck0+`a3O~F1!;b z?@I*kJ+5=YHoTn~iJlT^4Dm2nh$zE1u>`(YVGR09BL-w6rVCU)5{(qwxKp<9`e00y zz1(|_Ew?5_>Ue8NWhxC8#Oka;<1Cm27PB~WJzep?BIAT3bn9im;hgih|1QfqPLQXO zmiq~BSn7k zC-d(had}Zmco8O3Pq?Tzd)0*BbUyp(oyoII6zYrvmZEjgs^%Vqcg0UX&ZZ0a)1 z@D&0j%VRIq?Ft~bIm&qm20w8dz5`ZtJ9cG;(af}1ojZz84Ne0@_Th}8_s(NbZtekb z>rF?-lh1GquNOij9!YH>Got9vfNUR<6?sGIV_uplkM>NQ5M!%%1F#n^K5TpTb%kdv z99A0X6zSuggT^-$AjEz;Z|&DZhim_x{HHVr&-3D<`YCJv%g4J7x0s0aO%=hJCR}8s zyh^1uEXeSg;XG?&$Rt`Iy0RhfY zUT_f^PQ{k;U@GMwzNOI>8EHmAk3lw{k!k-c-9rlfJ5|cZTGw!*3yj?~2r_={y2_%M zlh((4;-b97?q^X#mVRK0YQxJqRTqFaG-6k+iNpLhGz&4ppn{c4o$D8EiZ5}dDD0m5 zzUk!2J%L+VXUuoAqL^>6Fa~~H2iZtl_babb5vwIgvV=~+zWmQY)j#l7kiN^CkWbU*BU$G=|;%)q^Bpw0Yfxe??u8&^}|0uxaz zu)q#^Dt87ypL1Q(JkVl~M^*yWc~rP`u$4PJ$Dq8_TKUvh+EcL@yZgyH9rf&+uCPR2 zdT)-g1=@mD`x>4EXs&2M#Yj$zr`sira{o$XlUgpoK0vDqrc}SKJG$bkW&tCGgqC8a z)t$;loNzuF{W*k3`N?PiewdST$PzO~J$1!nYidG_&dovm=>c^*is1&pZd33QS`!q@ zLjem8e=C{2p8i~r>Kss_kU-q`0-V*mA7VA*WacO1#);n{fD@*u?nm~pUNF!JD^kwM zy5cOjcIn?+pf6@Y7j<7;MmeidUbGc;z*w>>>>FJ!aZ2d!-vA+{%>oy18Hq#ep-D0a zLuyC}hX8^zut6YYQPvFBT4Y)ut!xe}o4aw!bS)JnhSf=JxW>;;3HnWKn7U>!rd?LF z19D*X#~!}hoxGQ>*6~Q#`3(Z}{6(Nju{n+;J(?Zsez524E~2Tc3o4#~A4f+E&A}qD zpwylakTFb0Gv;Lh*bH*kZB^MygB}0UPs$wCh!3uIwdOuQK#BC*cpP;16skYTm?3GrA~=~`nD-ry^@byrAR}{XL7EK^x*-GGCOO| zlv72RV@Btp?%t=#rUVgJE*@}5^kLpLFBdkp&P;)+>?^zN!2EN>=SP=-6}`6StcaLq z?~?r1Aa={;?)-2B-tSouq-m6&8vz)?R9U2<5ikvj<&;joerLS95AYgfhq9NXS@g^P zMu7QmMpQ}wxz~lcl0`~9*ASf%(FzFWLPRDG5R~O+0bOY;!UUMroo$)Dx?&5#wM=pOztLsep7jA1_68y6c(zwB;40h+3BX z!_U6MoiER@4FUomwX2Vu6XM6xj>rAJ0Ub}b(ys^C_9creTZS+A+bZ|={|{~WH$B9E zpbZ@VD#!R2+VIZ_|NlB|_-AR09(&d>bzq|7pDN{HO6k z*Vp%LtI2KVBgglBYVBrd?b~?a+x~Ho?(<*9aNGCitET(0y{Yw0yvyoY#;^CMp{=dY zy(N9ghqnv45M!LR=g&H?uVf#e_Z(YShM14yqpN2--y5t=pZ4eFE}o~W!MD?`k8W$W zbpW*On5v^7U^As7;tJjjJm#3N6HLKFEorW&XJz@>Fx0{sWPvo1ihMaVdOW&3*&L`68 zMLmTLCEAbTsSj6sC`Ms5*5XfU6J9Y}p~@2DzIRSx#QM*iuJ`A&wS%FxE&ieZ7KF=V z4(<&7u>8nc+|;r~-Qts2WExHJae=_~p_Ov`yZRQg>g!n5)7ZAu@vsRndRq8ss|#*PA-`H5fS(h=5eLjfODQUA#|D>+Cl7Pi&&TgBzn5aBJ z6!i<=X`8TodYl!YV_4eKfemg# zn>pI8nl*X;dc9R|hT?uY0Lpvgt7i0eiow+O3xxRBRc%`HDfxq1r2W`MduAcuWo4$lFTBEKOT=_(@}vD_jRr!DPENh$?sWPzh=iw~+~tYI6Yj5D#kyh0U=3m6;Rl zcfX(|dal_x0v1g0gFtmcW{L-LPB#d9$2d~qBqYaUQumC+1($;(fH4S7KN7T;6A_Ht zKTICS$YW)Vu|ha@Ybe-jQg$!^(a?!aL^MC-=T;g;7{-DH zfaCW8S?jKooDa>1vF%b1dkN~C{@z5HoXzDiKwJo|kImQbFL?swoI@6V9bTR={G@7GafWBK%%PcWJs?G7 z5x5K?Mq2rWD=B0EdNrZQ+)--{Z=y)+%%kz^NiU;o|JpuUg1N|ux7gx2kPM*%0`}@y ziL2b0K2^+5$jA!sFcW*;(xNPO_`Q);ERp*Y)x2QG_J~-XAGKnUvNcn`ZM*c&yn5>V6uV1NyIF*?^} zvP%DZ$|x0_v9#v^7)4g6;0kQkm$Fu*yDGJ833McSgeKi&+tEJ+-(63-ZN=lNqg)}H zrCCGs`mRiiajybl0x}H-apW1?brACCikuqv1}3WFQI-+|mF9KGdW&sti>8Oy*!z3S zA{p8u$H>FNCyzJ^U>MiaGjTS4xznDVsfP`z$gH=I?JZz?+bH)27D!+{KhwsgPbIZ- zentd~{HY0zFd2|kB;9kGG5A>I zj=dOP0|(SQRAGaiuk8{5GSrsP%#U+M5+Vj`^fhtuZ$M6%u zp9DiJaAHplx+>3;icTBECvUAMig-f%ZzKuYAHO3r12(K4tlZhX0Zj0G`9vAAd}nmj8OcJ($&p}CoXq*?O`mdDwMZUTnI2nUFuUy4Fp+d{jUXJ7Mo z*+9jpF`=>d)|q0{^b>kQ!W%92Lg#hWu+$-a;iVmpQ)AXCYS?bB3nS4LLEZPc7=5k>t`}VHpS`# z^owbkNwNaS&jVjQQgpz&h#8_(@Zu=(m@4`zGxssT#L~PFdBOSd00vb-cnD@eN|nJK z$r3TGMB4h!g42QF9g;qw9pooxCi*$?J8*```!TQKtF!%1NPl_fTfM>-UPbJ(OC=()4JgHfW!7-N z-J#EaP)rLquEY_QwIirYya7W55NQQsZ zBo0bL6H=diuNsFpA}zILAH#G;Bke^^I-JN%8s<_KT;x#LKm@6!8YQ`t@J+7$?t!Um z@%%v0<~UABqR~vOa+$gf%mXm9?COZTrWm}C6Y=EYD6F5t63&lSW@eO{Q|stx<)g@8 zKxmO?3g*R71?CM-RJxKO7I`ryl0In+utHaym8UQY?DHC51e=>LcZ1Vxz6|L6CRCcmcZuLBFDejya$> zAc599blCO#DcfrPAuP|iY=hM_dp#^oX-`QaF6?b?8LGq%K6n%+610(` z+9{#~&{_DIM&1GLZ#&4zADIU}NnLz1VnP9dVBzn2)o zS!4hSEJTzljj!0~j(;q4;>H0#p!iX&M}zg?Ip$o4GJ~P9siNQMhV>3Qr4Bynwx@)E zr9I>3qf+R!E2tTpI_j^7dyxg7@kd^K59IVJSTNAy0Gb@c@FC>xbyo)Z@aEmmDkhAw zp-;V!`s;duLQmQgmiBZq*#xOp?Rj6ObgvTV1+PZsgn zqU~CT1r;tpF$^+iZ6FyI8WLO#mCXtosf=LN(S3l`FmQFVV>Cy>C3?7^3;GkFL_3gnC-6D-2?W9au z2+@fmL2EA*lQf?0wuN9e2opPvzox9lB~7e-uhHZ+;tpFp3tV1epnkPrZmZshj-hwG zzPihUlD)S)A7iO8;hfZ?y|bM%K;0UiTn+G8`BxMKXJU%Fn(W^i-_q(F*ha#$v!;?@ z?~-aln=|>?wj2&^Pb@@tirXPP)pfYbB&4bj2MFk(u{B7 zUHLq$2^`1N8rdTq{0hpc6SJ%F?Fp%2Sr7!Fw$502Z|8Z5p?pLthKPwdOCxr7URYqL3;imUNoID(R$J_}(7I|`c| zM)J5k!61J$L3Xj(d(1XUYwUZ@jI=_Xm84QY+KpAhYv(9Q0kSSEE3{g37w4>|RN+mk z&gLV|vG}SE3+4|VoB%I8IvDngjqcm~vT)!G8%}Ngi@5;>;k(O|b2V1%pW76%>JkZ2 zs^KgMm4deRU-6X}QhUE6K3|6Ddr|t#lhSs~g_ZM5jd1!J%l;2NQOCycJjf=uQAR6t)^7vw};& zRWE$hG?o|n%6L!-EzBlPceg=YHd|K)iydyZ7eOdc=n%Z@oqH}&sp(>Q8~JG zjNDRK$wYf#Yu$CY4T#8e8LM?hI5-P(7mxbjR$Afez z0BA?X?~qC&D{&Y6g`xGpBt#$yfJ0hSHUo;|?bWGB z2p=JGBaS#!Mf3~f#BOv;#hFEr_fdoor-fiVVIC2<)N>Ihm8QD%A0!mjR?6UhrBzoqm@;YUHS*>;Lygg-Nyft4ieOvk3`M1hgXYA$6B z-b<`{KlKf;s7uxdkafsZ!BA-p(NDQHQXUK*9x;GK7W@TFgjPRTkRBpCicVtEFWhHR0bN=0P&nYR7y+H~{b#Qx z73vTu?YK6I@KzgC$jt+x>>zt0VcL14n#*hw(dU9m6L|?d4};t43t=u734juoFRJy-lRg) zPH-kfKoaOA{=7ZjD|37TD}>8{iv0lUewy^WH(n#So75jv!M;SJ5_vjF$otFNq7)8! zWyKIlRFHFS@HpA-0f!HlJ56oOH_ga~Y8lUOh_I1t4JO&Z^jLLIbf){4F?t5$RAd37 ztoEV?Sk^-O2&kUXKFnd``Hvmx?);n;5`D!*H8-t+)~Wta4y}i`G%fpLMBxzL!vu=M zjpB?6rzmIC4qHFAjNeh>_!(Errrh->19%MD;uUs}5XS^->I2$;!7}Oi6B5#9?5La4 zm{sjq0fZSpT&_-6EVMRw6A6vEE+XuDoZ2FMehp}Y7tu5O|8+; zs;ki<{9v>tm*#hv{;@4K8a#3Q^XA=lZVpbv>NYYW`0N_F80ht;6_=k6p2?{#D@p;W zMOF4pfuq%|JGY_`RTWdL_GbO}4kAm~E?-$Yq2>)~xjb>ML3`^=dx@akdzqT@-A+?< zxU+QGK`PLRDY#qnbD!*ok@MB#{aWLFYXMHrr-5|W<=B1L%OT`u^Lg#o9HK6TT*+mo zqWz3+wv$E<>%-X+bZk+(Q|wpaA3^}f76JPW6Gx}ONisRAt8$cg*OH#E?yI(JSNV%l z_m;bm&~1@m!7Gm>Sv60-z6Eb-lzf&}=Mw9=-N!W0m2=3Mm3LF|*4G-4?$VrXx(%V% z7C_*`)8n+Cz3?IT;@IMe4C&<{D}{qjSQg(37nyz0mkn8CCB z>Rf3~MpZ#fDU7<0A|h%#q3~-4J}ZiFN!`Bd>e2(`d|)@du8oB^Dh4)ytL}I=+>d+`LbTQ<`q)~KBG*1B z`qlV5$bDYKHpi;tg#Tj2;8}o5Q6h>$?9ZxQb3LHxW;bi~qh4LX?7Bre>~4gfwz#h? zh<5`K*8sCz%3oN;Um){>C&+nz%J@m2k13v6n_XFR7i6ILL@h-2Co&Ppd`UFYaci?rzRC*ymw}47yJ*Tz@SCm4R1DZ+A+-9gccbsOnQh5<-tq5j%GC= z8;@8FeOhM!geb}*EREaq&xLu;S#-XD(uy$2gMQAN=8`ZAzR$#Vy5tUaT1GB|%% zS68p4U1V4W2mPo}J3jMWQ^UgGK^|`?wNHpIj%ly96j;(AqUe2<#?9LnwvJRr7uHM| z{glPE@RzRrVuk&0wA2++q1LR{ClUQNweuVNyrzuF(H&OgPq%}L*Q_$BJ25?0ib(dB zsgdPZugZz`$FxoHq4QvU3whab!V2>l4MPtq(d6#}y*M3S`6;)TGD`tVx1LtLC6nC% z6SuU$Gh#gmLN@H9ANyYFj4<2${UF1Voa_J8He#GiRGH;L@l&w32pYAQKSESPb3c_18G z)V^Cp2tWZOH-U#$511>4W{pP9Xsud4+9I3u-|^`}bR@-Xnpw!fM`tEBX555knBgFh zwo;4nZ_J-n+)ctYo3M{VWP8UjR(=%+NkIc%?;h__=W{4w(peMw=eJfa>7=_CujMqQAT3nz@KtF+M?U#W~) zG|%K6s{dMLa#IvCZ?-Pj z#o##dHZICNZ-w?RqqQPZI-WT9EeR%|j&Q!;3u32(>T7YEFfu6OtWTE5D; zu)2jJ(8x=Lzl@$F_=}8V>ELV0x_EAV?wdY1{WO0+T5_|}`Q{8?d$wDjpLE&xFH-`a z-{bhVZ_@DO>-CoM^e$~vJa5^7|NNP=b<6OS(t86oAQ!CW=$hv*rEd%^4aLeLq?=|tJ_-MzhOV56&&snRQpWY_N z?%;+PcF_kXhQ9gMt@-=zm@)OE8$*t7wPV-#19mbhO)Qn*`^k=@>IrU)Nv76jAIQd* z3ywTLq*QWo_pOlV4_4ZkGgWra@I&e8JGa{s1N=Hq)S(WJr>icnuO(aCt*(y;OBuD& z;y+bq+#ihk#zj9r!+8h+d8NraM#rw6#dZ-0y~o>$T?bZuxy(51sI9n!) zj1`W!Hzh;R%l7{8uMd6fWK?(8MITV;RofuP8JSj0WeXSy* zE`lJup--`SS%tWsiZ#H^!p#H3b78&@-_CS{PuD8u6jNrr*hrOFgT5MzG}j;@(%_i?g???d7u zSqhu5ZH`&u&=dyjSW7ut!0`JbaOE!FPgJQFm_zJ+hI#Mw!} zzjx#@{+y_G&}sed_C^3eT#MNWWvn;oMy)D5RTD20QL@BBxCaUNWC0~B%fE21qmV#OA(jX<%D39D41-#LuK4i;&;lNzQUl1A!B55wyX2-aY(lL@P zcPEj{an&($%I!Hr?pR`1vzZd8>Z(V(pVD>~w|7$3@?&NMvg<*<6q;AvgM(2=g8T<0 z_SOiLeJH-|MkbK@oJ?ZKbB|p{#*R6KgwU7$$v!T6fp)-n3c+q>$J+mp{aY0>O zyR&#(*H;nlB8Gt;AsQy>Mg*1e`}`N5?!so{DH zwMDZZY*q-_()ZiJ05fg5gFZNKfJuG-53VrH3nmd1MO3-&+HN`IpU@sgh432vx6y2P zodVdyW#GO%-#yuw>Db9hd00lwiQja5;5zxJlZ=G$%G5Cn)LGFb=}Bq5n1Fdp*h4>sfuxrdp$?7N7$ot>5y&<5 zfJr)rIh?PmcWhl9>8&^o{)}LdnR$ip6tsGz&&t|U-LdCcSa7cLI<}^MGRufMKziI@ zoa^HF7rCK|*BiJfy)U2DOkdCxvu>q6nm*#&vOn{woi2Qj`kJ$%=1eB=8Wl?E@-Nlb z0>itDkUL|W2j z3Zq|ko(VsuHR6mPhXF01Z!|ClqmnRGZYtAQ9+OpKf0u5I##owuy|DcwI35Pw6_f9sr# zhDRMJFWLeX{hkdzUPz0H7IvyalgfOv(?y;bQy|JqUC{bCim5^mb>%(Q%>6Pg*T%xf zr|PfFZoIy2rs|}6C!`t2l#ED2+oWY?4mu)A{fH>F%~v9&zOz|{XXU`kH&bz3^>`C= zVlJzzu9TtQAWEF=Zep)Nlom4$)Rg|zzf+s@qEI<*0lW&jz~rusImhbSV#K_Z5ddy> zWzw3mHrcb+9H*nnJ30GI#7OixGvly^L?g>s}jGE zg`*t;z_!6?psmtsu)-kSFE?w4(!+FCL$?)QD*80ym2U|AX`1wi5Mo4d64JP`O%GYD zD^zrU36|P9b==<-_S!Z_c`I*#`)~~J16R{U{dd=pvWPf~3>88%10`5PyOwi~JvT^! z*Ml_Gw`%W)Jg0sNyN02fT#aZQ4Y_EzTqikMbzx#mB-Hd)gYIsZSy;s{a(9=-bKMuh znLkQ&22WG&rh`C%*K6OCJa%!GBEnxK;)k`S8 zZi@rS$i6>)kFyz7_L#ic=R@CfmZ5EJ-TvdiKw_e#h3@g2Y6Aq@<@l^SykU- zPoef?P*wy}0i#f~?!^brDKjl8g~0(VL+;x1-d7KY#ez1+!n5DHEtb6>qqMT>k`?dF zo=1NJ=XBaZG+Q-bSAX3txk<(ls_SGTrgy4$K#)L<@)Z`D!le;8E&L7!mQVt=}zG|654AnFu&ETmlBdM{%DG6DYXnabcjGZHh=Kcw4hs$?=Q`9#@v(T*q1#OgwSUu{F(@0}iJ9}LHhP;Q4bRNH0rx_fz zKN%~5%x+ZXHdTGx_h_ShZ6;yq>=Efi?QNvNhDyFBCh@+W2hl@)p5gPsd9;Y-H2I|` zE6=qu#NbkorSEFM%CuJ35K86Jk~nWXpG6GdT@IGI3V^zk;pgJp#vJ>UG8!*3$Tg9AT6 zogBeM0HP{*7uz!~#WX{3hXpyT5og?1-AC1-nz9q;yKca_-Q2r}69kjX$oX4_oAWC$ z!Xu};rQ(gTLr!PvTUX~J4 zC39H;vBxk03mj0ZCyQYkcg}sQG6+?O4PQJg?qwSAR*QNsgLw-gv;n_BKDlGR6a;#GG;P*_1Yh!#0aK=%g zOC=9Dnfi&WMOUF+x|PoQs?5M8mSbLN+cPTPyFrV;PeBg%I!yNO_n@(^;GUDO^CY2G zK$#7k!e{v(-I)$QbqCKPA_?08MLt^5p31oGFjLH#af9`&!CGD{DA7C2o2FTAcvkfF zBVU|kf}zGwREewAMCX(gkv`LnOBoTP-qO=11F69#LGhI2?A2EA%q zsyt*wEi)+jM0d?*l4mLHfxG?g-W;aa-_UF6Z#gXCczIIsPjcn!a1UqKITl-%w=P@< zoI8`&L9@>8<`-})3!}yA%}$4Jho(L8czToEzpq;dJX9QVKc3~Q%Q`b)7S98M+zRu6 z2}KX5&edCQN?Log6$T=i{ECT-6BiNJ@&VDXl;&qGM%ZraQnqmWVuSBQ3CrzPG5j!znHE=MnoygtRx`z(gOOkb;vc|KCXaFnK zKB^-1{C38)*y^!<5Q#^QaWY%-FOEi)tIWnl!UFf^(u~!@2oW6dCYF@f$L^npO%Nw8 zGPVoNX4qT$y%SYz`6iN|>zj3|d$`P1A`Y)iP#(P9-t7xj&poXIUTOO=4l3-8lh84d zl{@M^GZxNBm02~e=15d&df1Qo3z!7$`^KlZQm};CKg-|ap?q8fL1mgFJmF_9&w{ts zkB>u{<8@Gd`~(8Gd}jt1I}xIVZgXu!t26W36GKKQ6dCJxDmh_?`7AWY>tV)fxT{Si zIY+N<70`H&lCYSKZim&A6~9G1D5cu(_`Y_)k?l|vB3B)=Q1(>WCW*I@ltp9;Od4Xi z)h&&dLM`WH>2z@9e4OPx(}zZzo5U-VtJ%Nl#ug$KEX376q=WvvTrIJ1o7|kmke+P> z-AeOIF|YCh|72Ium9`J?DZP-CSUbkpa9d6;|n!x9X>SJh$Io7BJq(0h&2lnr;h5ED;qt}eY>K6Z|X+}PrL z7#hCZsyH1J{=|%U4=IW2pD{TKr*_B=t74kv3?36XU$#QH0umjSI^TI;ytN`9Xc57k z=fD-fmKwXG0ddK(;eI9F4kB`t<#+1o32Dnm&&X#*-h5WshGD8$1jwZQYjv_FTyfRe zMM#4+3(Wfd%zX4`Wy*68+fLE5tHny&CDBH7s&dOmaFfT!!kUF46Eg7OlewD`>eA+)s-e-F;tbxvy6vwco^E=XSV0S}4tuLB+JKNl8 zAyq{Z9ql+0Og6Z4>^YNKC2A9m2hVtoz?nLk%C2GI95mL0H)F%?x1WF8#2D!ibd zr4O~3p_=)+p#@wBE+EYNSN-iWjFPoPn{RkVh{oR2@UZowe0qj@M;+3U+ z)LJ!B?7dr;SVg)-^CqVuq~V{q-x@N_oJy8y+RG`PZxVNsb~CDFbx?=Ipa0GqvUOwj z&;ou<^0eKLnqr!;c6&NKgl&v_bnxF$Zhmo9&ctLKiej|ePmIj`tRqQPIgx<+^I&uD zKXu52mEz;?{~v1bU#tlKi5mR76XM^g!9Pj;|2Q@H*AUZxqz1hI-mLiVr~x-C2haaS z4aVbl#*!i*?*5?$98SN%V3CzuBfMaIc`_HkI2c(@AB?p5rI%C!$pcRt3~Y^k7a*jt zv+%EmNtcLF{;^PZBSrl)k;G+~lm5EX^KrA(+S4_dv-xrJ@Zl#A7)03Z|M9X`P;(>) zh$>2R?Yw*o+M3N67IEw3{T=ivq2B4)`gp!K>Oq#k@7~D&-xBJCv&S>L=c~K51NCm9 zK>LI9HILJpvZ$@+3zn^qSI?*S`-~}{1bq}Yopg)WE0QmFN}6{JumCx3Jy7!RwzdnelHdq-XWILjrd^8ERf`N45KEL2mSKZg)X|{dczV_haZDkN3#E zNeqQEefWvTjqU&IGfMGlKATzq6Ddvcjtf`-Yemw28^`%|)Tn zhpmH~NAZjhs@erm#HUGr%aXg0?xG>w2NuF%!RK32#PMPg!#hpkzj@Oaf^(Hbot=v@ zi*=KTTb%T&HlIpZ;c9fdvhYJ}3(HygdI+v~MsH%G0mLXv(KTpyiYBYSN2yv<`A*>LUmDQ~?p4om&K`Uo+ z5vySRbr(N}dwwe)VDXVr-)UVP(G!n(zZm%*%%zc)`FG&!a;iq8=r&+nx-L^qlgasT zbHMf!K_O{6a}iDl2Xh*nlqm{}38E1!GqhP39z*jS5Ij!qxa}D`fF(BEv+kP*i}ng8 z(TYl5>Tf85q=nj5F6pkVyGaZwPAS{=E2g0R<*H1?vK;gn+kAxAoVw5m_Ti^ReZMA{ zBY8iyy-GdQkbrQDNdaV2RkBjH$cvq8%R4L(`~O_$=Yt==HM=WH8RWvNQgVVthiH^NTom9s)m)v&+RTTp^$WzUGaaF1$yq!OHssv$W2>x z)U??-mSSvmo}^9%Ten#^Bv>y_iS~2fk@3j>S}3WaC(6$B(~jJDH^U-+rNgBA4nD-1 ze+gWF%%}r1LXN(|Xf%QKXwpo<-^|sZA61EG_$5z;G9T1{;=iV8-tavJc6?RV>#1Ur zR9qQM6h;B8VESvgr{49RK#nm-eEx!@DDvkkVHYMKWzS!dZ5W+NnH=wO=8^vqjY_wKofr;XMNwM`)3B+SRwlV;pDt5`Kg)tEe<>U^j zQ=T}l%s{XsN(l%i))5(acbl8`azGe}>7Y&cas1i%nIK_fe9)Mb)S}AdF zL&C*n7*n^0KUH4zvZRAsTqVMq|2zGlBeAREPhN(h`v)G)k)T6n&j=z4+H8C8jM|tQ z!DrE&rP&JNb1eX>!&wTK`$&ZhAXNNBQ;encR+=xo+0|-)0WeZuGij9=V7}23E^&5e<8n++ zgw`LM|HR#TyOoXOI0Is>ORw;LL(|V-Y%gr6mVZ2{3C*5^Hvn-^^|(Qs``TzK-s5e( zn8Pu){-c6$qMptY{i`SuQcf1~c|0m^INRJY%)Jp7K3w1D0JGz-&nkJoWrj2!5_u`u z9v9KGi^`|j4p!C)IgP||8@s5`H1rfji&bh3e2ERiEJl!w5gteRW*Qe~)zvZ5tPus= zl!uXaD##_H6Sv?<5ol!-fP5r0GS?)nlv6a%*oYC9(0^|CcMspSjM>Y8{HUdh&y0)RH(l&h?L)O$nlSIjV#+$&rAU`bM!YS{aWSJnbM_iDgdWbBjx08~Sf%t5);~ zoYoiDtC0t5B0d{@%EYk2c~A{|SC-jb|NUaUph;UYu_p^SMZ_@GfE8CS?SpvZ8B#wP zJ!5;k5L{#s*i$OLbU!m>T1SFZ5CVBQG4849-@%Mtfom2@VP{o@VI6Q?aG} zn0V;+sp_p`x&D+Vyzc!?2=K)Z|FWn2k2zWhNAs}jkf0g0s|?5dr-#+kHqQ4d2^qM) z<5KQa!KR>{ZGsjQ^O>4__ke-qH%5qMq5JXvDi3XxC*eV3AKc11NfE|Zr5a68-g&hb zvPy+X&Oy*&{X5Xsl;WqNcm+h>-51M%#3HW~^j%4CVH^C1YdTXm6CGnB~ug}3Q}g^aJTRX=glSO)@E0jcrbQyNC5+@VB6 zAnQu56fCOY7jrW82DKGQ(6ooK6=I6$l+t z5V?~m7OMrvmP*mn04XWQiVH6%!KE}1vNub&wta{9VSoPo5@5Shew-na^HjIXPh7z= z?`SA1maE1%>ox%4n|qB^=Z4bDO6E@Wopyb*UiH>K*SHRnKNP(@J*?kM@flf}yOTu} zGo!%iBO|vVd4-oW;l4H3uY^vY5h{yEFlpy|d$i=q&}Iw2qYxF|)Sr)RVAqUtnRy!0 z14mr`>au$rod?Wl^a7qsw)Wy=Z47`$`%%MZOIH-QLrYo`#gq*cpu{BDGEm;k02jMr zyGupWsi)q97?qM> zG7e|LP_g6a#b7(*K?xaXe)QYjw^C=FyL#mXEu5|_q}A`@h52b#iywU}%3@cqBrP|mSV%|cg~Y|8*j3vBr2(5OVzO`9R+b^A{jU~5 z6W2qPH>{t*d_x?8QuSml*KFVSZW`hOd3i24!m~VEqDmHC3Gmx1r_-P|fL7h39^I3y zq5IU>YB8Fo8QcAi8R-wI-blxgh9sv@-i)aqYOxF+wd)XHg=%{LwD{CxSMXc4J2t1&hM?qDRjAAN@zAv!1`rK^f3Sp=b zcJ<{k`yuOjnTp18(huc}aLnPXizG^}QxT-~$qF(6_c)mOWmkTLSs<}OvL`koZhN41 z+R0SlOjk1?t^pQ~aHig`CM63_aU%}saD^d`;-&jYpU5l$dP^D&#!D(-B}B=Hsjp*& zd^RU49V)gYXWg@&$;O3|-FMAA$?NLQ*qs8`H^J()<_Euxjwlw}uZ|+EGw9T%DyiIQ z%t*@wm9j7EDn{}7L>r_fOr^~mm8>6t1@&WkCl`~F4}YDuMarBPaL_CJd^m|H z?{#5#R|&h+pjDfBt$UPCkTcf_V2V7vEA8}B!FOF#cc*d5R0u1aE&Z!&fHbdC+t@*y zOYHkscvkoihq|iw$K;`=bSuI(TCTjk@j?L8dEo-kwlR zTArHx?XFDU$PQgH{R)IVjrzhni?}4S=L33YpK;)b@J=QlGTk=~h6~wsU$z7O7C6N4 z899Sg9qzo$%Tn4&afT76XIZIvu`>n)iGCWrP$E<@4B~2n-zeV>($*v7jPw8EL0Lay zZ;oou7OkJYyc#|Yihoam(dHYQR!X$@1(Te~+Lbc+fwCv(p^uaAAJ= zr}927lDuwBfv^C{#O&$qw*9EftSJ1x9d(3%&)AAHQnT9P*YNfB)ssZY-kK?jvmBtu zAC34*|J8ki2sLsu-EbDJmfV}_#xH{B?v)ELq=))q_#jwr!NMZ+OEe_X{>#N^>@ z@D-H=wuz%kd5-*2B>G<3JdXuE-t&t5bW`}ooJy}Y34!RqST#yvl{CkJ$@@c`N&BDj z0OR8@TL>b4YzI-v6)R4ss#(z#zj4kmm(>Dhf&DhL{ifIW`>(Rqd=Ct_Ox(E%qQ=z+ zz&TtM*yJE^*^CPvyL8G zEGA;+jBTPN7#R7L)3u~DPnY{p@>)h^kLXuV7QpecwSqJ9SP+%Y4KMXXGNcmg>&|Ep zzpYe4t7QsNg#|Y>ZBZA3?$M8^?7z#w0XklqCT@rad$bk z!mq+~4ewS%&&@$fjIw3wj0&-@_3uHkcR;;hq&nVGhLwqPKA-;ZFO}P+;pbwSi15zA z;o>eMT}XYY$T|1Cv4+zwMEW79d3Ufdc!*g{!M$Mxy+T?Fzy@Xk632zN%91Dk-@fzn zHh#oL_Ja1w?TlWxT}fH^fAdzz8fUo$m#qDXsF=^}H!8aCb(}20F0J$DQnp_o?GcE& zY`!xZB8a7*kLL$E>0S}pK7V^WGo%?9wg?C22G};p;E=Zc%byc62}Z@;l|B1>!Njs2zQ|kT!6y(KfP51ED=rF%!0v$8Spb zA%H7lPa+{?&1;JUTW9Lr##b)s;k>DFdn;w~_xZ5;k*lC2^nLrwuL#E3AMZ01FigF^ zc@z`lCbB$UdtJO;gMCcbv-K0zYlI0)>cr$Ac*$+=3`d{4UUwKb=>?^GBc*pm-Of=# zCJHCXspaA8wl`YIizgLO*PGEPhNavZoChywOr#c7{Ti^&bTe1-J7J z7%zHzmT+Ffs}Ody zyi08KbV>D2#+`|)Vj_fa?#$FfktFP*k5 zuJ@YCvw_5awE`?XHMmT@pa==kmn+PvEGMoq+JDhne9M(Y_Ik2^$&7Zn$!oXT6c|cB zpce&BF^Wt{K2XlRrD}-#YYIfFgDXV<$gvlMzQ^}{F=SEe7d{5nmKf}~j@%f0nkM}P7pjgb{`WBC*S}O%@(pt`&wGUpFNV3Q}JHRQstz2 zsPZPi$&%H4;{MiE5IA1Tj^yXhg&QvgCOwJ>a>3d*2PH3|cF7NiqihN|pXQ|(W8zusWhS}*ubmieIyO3^iB)!O zuj8?J7-FQPXY&tj8(90qyfNReqI7t(@dTL(c`IR;BicF#S#LzqNpSgH1OCwVZsjc* z##Sii8n1{ldQyZ>j~P3s-iQ1wJ#hWshOQD_9M54Beanf?e|)@p-)siulpUST|H~_Q z|BC|QKky3Pe-}Xf8?X2mBlw@@75{pt|Jmul`|nMR|BhF1@p5qd-@Kw`=c}jG!4viq zBt3_rKUf3=)v@g#9Y{V7L3ZN=-|4pxNV$ctX{N+3_2Gc3@BkUDLOK{q#nZ+qj!58q z&e7s&eW!!Qt0H?pT8$P~o8O<&Y z59_m_JSf>@27T5XE{xuHGEC?WjA|+I({1cO$EDxz^gemT$wABeYJmJktKLz~zFd%7 z-b;>~mz$86*2zfKM%y!NM*YX$`zH4tF#A$*`2AYO%WVim={VG8E0XxLCmNpjz9$VQ zXZ@tj-j(g4xnMoC;1eudB|97*yh|L^=5~x%UgdQ*A6ii@y^p`irB?QMJz_hpCzRan zWYV#1WHc%o3ETlsEpGU8x{Mz>DehPzs(j9jZ0AE#1Ia3JZ%@XS@59kbSC+2qosx7j z3(xlhedofU-VQ!L@cZ7*OGZxsO8A~@=6D0s4k{d^y7>sdQR$XNZ^aswJIAV-)N#ZM z|JH`mgO*%R6-M2*{R2cl0O%Td8xQ`cW6COCt_7W@P!wqu!*k`H+ZLJUfzd4hiyL7J zU3+F@eai7TYJ=?A2D$h3ard3FE|e% zE8r6*{zgR{bHyuX#7QO94p#6Ci*&T6o#R1ULiiz<0(#I8SxZF*FY!%!-r*Rh zw_=TtI1M@90} zUy`F!j}$>FMyoBRBo;*405foGo#tygHg`Z?h2o_uyZowM%z1G~CfJO5FGxAm$sApc zKlSR_sKcob6MKZm+Sn{X@%Nv5I$Pf`B?)|F+>$qVelh{lfxRUE2mo>a%kVE>B&rcK z_x27?>l&e_Gn2VRyD*H9ROARliFkr)fetA1(8+xRI4UGyEmwqpfH$iU6h>o5~vu;pSaNOgpK!F zp39tNd`uP70pLyehl9p+7rLYW&=lRK@uueF!H3i5S-phXiHEjEcL8H^plx?T_B$u- zZdrWf5DFqZC%9tIL97F-e98U#z@P{MTeFu zXU(RRENJESL2%TIa5UIh-PvfQ46IYI=?k?&6L0o`#!esqAI1+nbFf^19yIa9gWkuE zsVW_5XU*Q-LQHB#n!c2o+%{Z~`f0gPYlOdP8DvHqt#;bkCTeTFfs}l`!n$~$hy4#1c{b{-n#Yku63}ciU2`$-$MoVP%*1iM-0-AW zO!bWGbH3>A0vLel>p&==H8D9_C^%YxmkC`W#OVR~U5`7RfULtHnJu0$<`YRh^i4u= zxgls73!Y{I_37>s7r3)zdl&@juSuA3%Uwy66@O6BsGS!F++9+|JaQw9{c<|FqnPg` z#!-R8`}$Y*Q)-$ta(hZDG&XuLG|l*-k3*mUUtGn#>QDL*@N=;5eGJ|naI9Za{8Uj% z#eUOAgc;+4EJkAb6_G4Vis1hCYR>JZtn$g9jDC}>8p3aIoD!8h0MUQuHiW|xc3Kjy z-F_>y*}~ka-$zrZn$DY3D(xy{!~15<_hkv>XZi}z+^yM8;SWzBD7(r5SRBhpo5w?l#8_o-)Oj+u2RA}Sq z;h$>F3TfXB&WRWnb2xj3+(QC?I5`LWGI@F5-;ELy&F-zd3w7wjLS{%@C=FeSaIfdgE6`9NJvLKv(_es% z5QP9^_5PRwP(+eFd8dj>Agf4S{Rs9+AIv3N;CS@D0i^Rx+^5IUKuwh#)5IbkP4y*d zA_G%06f_KElJf?$W@SM7ZVe(dGsoXe zd?J*QiEk;dic}!h^<)=9FUn1gsIO7SJj45-Mvn;fF3?~t19EQWduvs4CG!4B9Wis8 zgqR{goN7vDu_1<;K%duZ^o*t8!b_u=$zC{z@^@A9iBz5qmFUpZN;oo{pv5kxZxm|h zjdxpi#tZKUt4H`l&czNb4fx_(radMti+@Ct#taVhQzm1G7Z?qCMNuY;}rF84|2r zu#JDu?I7X+I(+p>&UnkUktbqAEDc?-gO>EnQo3f!HljIE4#K{#m{3eVRe;(V51sqlFu)8VAwv1@Ns6_7`d(V44IbW_9E;vce8M zl1#gY0>bbc;cIO}T%A&;gyieo=}*zpYMbtut9h;ra2>u+x$W9JPy5Fj|GxZvP$u>kw7QcZZh`rc>ryEu;1uK~#r4Ze*O z{Zx~=t8mpOjIkl9Kh``J*wF+hR8a~_7}zkNY5PKn){U1%pL|raF8uNb50X@$`UAGq z;MS{BYyteL!UI9=gfOWp(&&lxaG3_Fouw+B{mqFeF`43N`_;&{7xa0S zeYxW&~OJtcH?M|=?qVjmxynsw3CS0*CYZGeO&Uj=agX z?U!$MKCHhF2ZthTBRjp=1kW_544mgk*$8QKB1t{}g6ai{zQ1-;7@ z^6Cv#T0cc7Yk?LmgrY_#EJ=@RQ*%LS3jw}MtlrGf=!o-34SQ|!9#?K6%hP|yV1nFt% z)oKkR>*+=w0Jv=0zDKW!VL2)a`#T*ZSf~ z9`d#`bn}gyvQU9RmpLh8rZIVN-w{%@JfHE11N-Nmy{*jzHOu@G(u`L@ES3CUziTS^ z))ChW)+!rQn0n%}+ougaM5K4M*+&Jpa{E}|erU|`S+5~8tmWIzn{w+t?8ck{uv~-K zm>aK}Lkl>j12yGc1$Et;4Y;H2O7^Q~FQitgGVnNb(FxS^e34 zPnBFBEIh)%S&>iK`kjqDsBA5&nKHy#9)KB?qlS1M^d@@?Skq0U2Ifhy2 z6f^wG7)~JsW&|lwf=NsQsq6g6(J*bo`=qZJ{?948-~4h4DKa6i_S(S4=eM!`)zg2; zeaeeQiVvXbu)5R!bj2iS@)HmVm)4jVcHU>mC(ToXgL_WY)_*ucdx!c;{dl^$JX>qo z^%O_omF=RADKyE#w^Gnl3H<9acP}7;6Vni|xG-(_Rm{vA)zFIwTZk%HYeU(pWHtrk zG{%y#j!FcUD9V2ft8|&6cV9^_n>7n=xz^y~E~9&dCmz z{N>-kvVKK!U(*3j5+@G(RnnD|tu|Mkh+_UlKp92s9GYqvFVvQj$r@6Qx{zPSOSO*x z`Cr7qu57=uJbU65r_;wVRp%F5yO|cX+FFO%L&4i4#?3m9AP(>!@~}wr%kfs$jMYn2B_UPiaFbFLw9>o8)Bd6cn6)Awd`t(ieiDPG)y7vbDQeJ!9tgeZ2qz{Y?0y z`t(=j6>Av|eV$FCSmn$gMV~zl>cl%oeXC|sQ6DoYJ}lz-m`8c>F!G;dvEEp3zh0B) z95tpgX$v@{mTraseu03+mBr~Gj9kcPEt(7+b3MLHByxb z$w!aLVA$vkKL?ES{gN`_{n&%V1+sj7Fmi{*-8NdIq|}v)W(~Nl`5A&WmfSWKVx5Zo zVu^O(T?Lt|%HJEeU&i8Q0&?TH>g;B#vo{q)(B$qd^3`Q#GjozHJ}Me~&Wk0=IXK4qgPaVeIJfJH-y)+)^d_0u_k9)oCISxS?IxnGd>1tagvT~O zGE%@iOah#>x~88o$)mpP`|MQ7^<7Up6>K%A9uf_$2KMah zknofpfB4xG6XiGh<%AVI)yOaZxbRi}wOteH{gf?z?j@DxHmPO6Si{u$L;a*@M6Mo5 zaT&)!?b%FEE(K{ku=Cy;&pR7GN7dI9%SZj3RHGn(A!b?|zm~=ID6&uaCFg zs)g-ySsJrBajB@-Y%!5=K3Oucg${nfEzLGlu7SNp=1lS%p4o#ETW}}CgK*_sE^}%o zy;Z|Y3p2NyVwB#1RR?LQT72!{cTd%-KzG`C(-t#$TD(y0A4&rPeP?-uhbS+tY`dS! zM>*nQlZD}ilX*0}*)@h5U94+$SrC;)tWAVX1*J(eX3dfwp?KfZwH~=q%i6YP1x8cK z(|Zd#bF?`8J>$18`C|`XA$C%ZkO+*@YS_yMYi_EW=GO-c9>rM6 zT`&#q!q}UethMRAf;C>Zq;T#JNyN7~Sz3(L{fUms_xU5*GkdBOt{dHT9+JCdl9O4} z{nThHWQk>-hVkj{o)2sInA=F`Gt%WX`n~#==}GN9E2KP65M%86hf!h}F}46IU^R}C z8G2=BhxavnZ)4w76v3cvqs;29?R~)MZ7^>vT;lRr@ucN}ZP$fw_eomv{BwCLrfjiL zz)35jZo7e}?@dExf8yI@0Zs752?_6%V8ziC{KsoDobN-g&eHzR^N^eJb6LoGrBf2P z8=q;3q zF_We4+@e572F6KdF2GKfY$c8~Y8firU+D zvnDN4%KLCv+18e1=Bp&_;QMUoNhM6|r0iVDYFlFb8h+BNFzTo(`c9KI`OU06T{WjWh>iqF*yqD8SMO$jDndi0Q zl7TmSj)_!Ulo*_*b5K;ik_69-#yx{cu&$;!!=@IEBrCCUJ;7oGLO0+poxp6Jr&F<)_ zj0Veue*w0o=AeOdEG;>zJRYv&A>7U65ZvGAR+bOMY!qs%|4+vMU&I6dDdYcl?ZUrj z{Qu7ilLt5qr23WV zh@P>aSUT9KuEfiGq_?y+_f3qN(U)ewW!oy$5sH*7eDt7K7eYlf!t;+nd_~~&$HCI$ zYSZq;$6G>A;LC;6Rnc(J`@PXti%2(e&+ApI(}(N-@isr;zCTVm9c3KUeo6`i-#=Rk zZ#_Y;cWXUw+(;IWZ{5izSwq}`uR1{=TmeC!@qg3n=9^BZ*Fn2q^TZp_`{`Y03bl2< zOPA%XN?Ys0p5R4^aI{nRQQx-p<$fUSIqjT~!0m~4eZbqe$MHiT zLI$dr2D4a}JM6chnxmubppU(Tpf}IAoi(Fw>A+9vnuSjK6?xBFI#<3%&usdOSHd>L z-x@E%b))my9^alC&-1S3dA8isMt2EOa_;7g_I1X1|1(k&7xylT$|_m(fl~1#tT$}! zuM7;K?YMp15x=5nj)Vzq%eQ)>tAaiN=iBWc`+)){T+2}hJS^Ke`2_}{v0^%78@u-o z9gsfT9w)*CenvE0@^!YjfJmdOm4+PNXjJl}_nJOYq!-Qe0NXOAa+i*(tZM^M=_a>^ z_TVfjbt$oxhBv97n?a)kL~BLQ6Mm?3y$1{rVp=}w1 zm>O7Usr1o4%#XVYg#Oj)7p=QexGH0z_2_M1lb5;&r_|y_#V=bQTBJh+IJco`IBWGV z1}>To-vrx;E9CrB^bI#d18010ERJSodi(zuZEqD+M---O38=K7^3|L%>N=64J zVDvgDvepKH?Dw9?EtV@oAb}29)Mg)S`+4&cy6XonJq=}x@CnqduFUVdAMq9(WRy^~r7HfhRX-T#cDX#$*&HGBSF|z44ml zOZri8&T7Mf+hpwlAwuN?y zE6T-HqF@oVk@idOvECy()_JoTwdzc{aGWZRm48M$>YIN zA;JwMJUCiNB#?2Hunk2tG~k7u)v#s&2Xlw;weuG%V@`+p1(y-682E83g^J)G89s;# z2gRc;^V}t1&4R$h&8AW2AWZlg1|h&+ZpQ6hQQg_BL6ZS!4H8|fDiK>AK6KeauxotDUH{CO<9Veql5dW)lT-;H) zW4fY*Q0AhSI_%J4)&_&;HafLOD=cQeys1N#MYwFWU=Ur8T>T#z6mRA-v~+Y_Nk!nC z#}C41%(g&(D_k8ieeIBDLihKac;;lJ%z=v{C#zX2q6eqo8#7gE`IfL^u5ZyZw28H&&1_QddeNL{T~ z`&c0z^}KRy|4Pcj0u5QV%{0nRnQ;G%=SZLi^)4DhYakaBLqJQ%WvD%I$4GM-XsQk# zYq1}&{mAkC+)1Zp!`~y#x~!iTSRnvViAQmQK)3DKkC|xZT9d>qL1s#1Mg@+DQvh9v z@Wg5Fl&DLRH*Km0fJfIlaBtRPjzJ^jk*@%i^B;TNpu3PuIFEA z6|$IB%#i^-BZ{x0mK|=+Vot4HaMs|>%B*r0I2iW#-BdQK#qE3%p;|G&SePcV@r1UDX3n^_8+^{9cTod6Nr8a4_JGE>(K7&;(*ae}@C#NNd?+L|hoO~l@{$4e{wNbLJuwJu zB}O+Wk>f`jmDM~BG5uIH)VR61vk18SxWa%A_Jpw-bTIQx7bn zAdx8B^Fj0PT3+Djc?8iD@YfiWBvHXKFK`npmV+UiY}EJY>G~fke!@(mZbFsvB?5Sr zvXW8pxsqcL8rsSJo-v$b4LX695MJh2)+eN4gYNUiGuIPvnQCcl-zMa)M;&&Js4vO{ z94=Li+_Zi^7hd<)tIA5I#T=|zZotR|{~6Nik z!2U~AEi1+<;jAhgDT7y=FTH4FsC3&JMa};uY*fXVD(S~2d`(Ww!dVvAPI9k5`@QEih=aOtI5cai%ipTu97z zw2m1zpCDO3*t^&Dt24tv#Yk1i&vWFK9FY4VtIqYBmo;6|dq-;3vZh!1>inwBWtgLA z^3KyIm2Rs_prkPn2UM>{5P~N(rVrM~+MhK3v721H>Na931c`}iwOv4&A@2oV zU*aRC9&Cn~X9Zgo5>(@Gq#Ei=KA6VAJ(1EbAVuH69Vxrq*le6M!=8cfWRdU3-fjwRN+>UfMIW><5V-l5`2v6U)itre@zr|dy>)YF~SKoy?mDX=j$(l$jTN1cU7^V zGuN()jpT#U?JdJlRs2tDqO+cFulFI(06oN1XW>DnTJy6a$Al)PG`N9)Bcs7X#K8-U z399|!R_yDSbGWM}gz%39ubT!PUPn5_ege{f6HPP{bImD_>U4>-EAJ!SHhm#37~FjJ zj(4Vev!lUFFFrK>3MRgU@yg}ES|KpX-{p_f`TOP}0B!9p%E19o@jna-g}g67xCpb; z6m#_7l7L!;6y|=PweE;c?*>J4%lI9_5`X0J#a?p+4d<2np|Nib7ePY0zHo4}lW2}Y zUwh=?b!*Iv*dI*f3pwyV%#RIG7ixoxPRBggjb6Cq0wr5de$c$)GloIoVkKrgg?&AL ze=~Ou;|AtC=A{PJ=xvm`mJd?q+Nrz&$3(iIW&(P`(9cZxUswH+ZJ2qY6)51m_#qH~ z1C|O+$cmeD?TH88Ln}SM@?2J%_{nMx;O&}%ih)I&6+%#gg=h{C8RFo?d{Huj?5^1| zEwZ@UAq1x9ajlo_pHbp5ppNu|~b9N%UQ~&DioQ}G^Uv4R{ zZOcA-sf$DH#F+Z>2$>39h>BtN&}IFVC>NXcpI6N3FX%9{(szylv2c#n{`%cQ6-yLZL$t#Hx zEeZnvmY_%b9V_7Qus2&BMCyN2DsQ>A5vFGcG7=_^AiXa_x8hd7bw60b8YB;xxR2US zI}=uuW1u=|GA9^SdoK_UR2v~e1}0ui_ce9{-K-`wa5)24r>Nlb^}C?CT~4x<$o)0g zNq%tSKx3&Pqg7!07ij-N{t*G+w5B8;9UG`O1rJW zDOBM&66wcWR?}#a#MVzz)4W`vo{GPjeyDNB96AwxyqCiWV(Zt5phRg?qE2aUKB= z28ZM&&PrVYJqx~Kf$nLh%G2xA4On({ySI+;Yt9o4ULRNr+}!2WW*0x5sF0Nem*_K& z0!@Sn{DqjlfATuBrhY|96ykvPZ_#L8v%Cls6|EJzI~$cHrnNqd9}C`YH+v0yBieG& zoYf`P8EwH4~*XGFE!lMQp#St#G(}sO|Poo>pvaJe&!u zj>tD~8d;vf_NW{@Cb1qmgP6IezvceR3)>VW?;gsV7G7FD&)pD_7qPP?g(QR$F zm-REs?JCji3Z1cdJkx%D5y*@Wqv0}KGUgMU9=7JVxY9NG=K@zIijt1V%vkiOu?aq3 zf}6`?CLVFkxHV}`q&Wltx-8>&A8cl2PVp5HJj*-+AIoY_KbpD_D)T>XG~bx`fh8V5 z9_DUZrNulh$i2K8Uuoz0{#w45S%vV@BzJ8D^ig%3;PKzeT~w)$FY%~cy*EceS(gUq zW%t+h%r6$7~V ztND{v%OEG4`=l-+HN;<#WJQn}kEG|&+t)7aw(R*I)HQacb`G(j4!y{f*!80Tt}DnU ze6W+AGqdAT5IBHk?-|%oE6V&+K3{@15rzbv4b08po{pNq%4v(37DZ((#7Hv(<_4)0 zRQu^Q&s=z4Az)1>$MOC2?M)MJsTqdS&;*N^# z+^^Yhqb=#kt%Ra`AcqUfuT{8W6<_n_Xd9pzdR3;_vI1&~<$g4YX6^&*gIUAq zzYNoHI=`_)XahctoRmI}UZ!8q$`Nev2`0aSOHKHR)5;=`6AEfZKg1b*lWdvv5ORrc z#%#wdSlglDhr%#vAu-B`u}r$Hq_IFkFLq1b#Q0QIDe<^A=RG)S9H`EoRuahbsXGXG z>>TOHG$3a%sv^r#%a>eeNSH%g%kY+zLz%4)Go?Yz#uk($)dm#U7t<%cgSJ;7`!$DS z0&=DZ8OXu^`=CT7@()lxzp8TcyM`3HJXOEW4f$Pi8M(N0J(LsRwh5Bn z*$UOAhb&d!8*6r{`XPHwV}0rHwiOBsOo7iWg7}6TCin7)X3QA(nU2?Q6;3N=ktpBw z?%rX%O_Q_oA-guEM4v3W^xZV1&`JBVGFj#QSn{t+P=K*il+=mX9Wk&~tI|HY2F}`P z+X0E#bl;k0Vj|alb-21k;3%wI5mL4e?2~qJFvl&Ld>FYrQ(dO{bZ97GeO$GDoHTQ9 z^=r=l_*_zREwzVh)=?HnXAV@C>_lXITB@Mw#JK(AX;dwcPN!7b)SgXzaYqxlb~;_t zin`t|5M;&O7sB-{cUg*zTP>j`+Gm@o@)>^qT4U_zsgB1aMQQT`!ytd2hMrg`4ak^yM?K3NI*BlPO}<4u9gbRn5* zmMcr%ViLc@IC-5_Z;oj|&4{umPz>e7maia*cTizH_nK}LNN_9mcI{W zq(>APuLef~(36R%JeTF_LC>2q26rg}nGyEFYHtGt=nrOluR&YJk2J#kDQ0d6;X%?YvG= zWENq6Mk^G438T=@E~|0;)jvSJZklzREH}ZK?xY~ks^2;lKG_8f^ z^Bs>&l@}R3DV4)C!_4+=C`mBc4JoMGO4qM+>U(}i7zcapSjPAg<}!b?DK7a0#Xrm_ zZg)!jxu5TKA3@{JCr?<$Tz#oB^PK~=3PeV$#_#5jSF67N&aqGmE5%#=>tY-qxgQ(^ zp-KXtAB3^4pE3S_kjejWCH!y5GkL$~T_xFo{?Y%hA=i7e3R`aF9fW!9Z z^#cjXX^WboIQ^mb?rT6#@%BSpn?4~Z_sc!~^!U2H{qf+2d-HU`_n*LIOK8c#U@op^ zTPVPHJpd^8c=2!KeKC||S%+`` zZP9r(ySP+;#VgOK+)xx;*+r(yb%@Z%@JjuODeGkCzSs@4RTKf32AQ)<+AI z0`K!&0W-{6YxYHg2uxa z9Ul7+xFV+Y3~uDK^Ddor>a8#6IjOEmEg$gcG`Ef2g>aFSSW(>o%Gwn#E;>=qLo0%! zxwAmnQPQU}ssj9HwgCg1>yZ7jt}QgC{c~D$ATpGQ34m1Dw$nnM@vPY_2tUgOtGV+;iROjpju$g!=>8RZKd7*Wp9-ppN4#)AmV^BV2La&DB;O=JWnRxy zXCK&P#}vftjxr{OBGTmi*{kBZh2|2SM~!_xBrJrbQ{B#XNE589a`YfcJ$* z2y}OMBuNJlDtV*GHRN``%t*fDPa64mL}VaY5nk;R7miy?n(x1LWuY%hYIfHQ0KFj0 zor1D*>`IA3{!-)85YoGt-RR9(& zmHjpx+K-6oE4(+>a&?oDA&Q)5
    ?!fIC*O^fwO~M%c7IP$eWz^y(f+dGFF?98$jRg5G{I22Tq|X;JthlmXR8kAcqvk}O zw_GBsO9p+tzE(3#bfSb0f3qWa8B6oe0TC20OjLRND`sx$ZUFDpgm6O*WK=(}-vE*D z)&R}o^`e0Hkkhz=)jOj-1ch(_npV0)A+|ju1YEQDy1Cb|u1wUoblhJc^*}Fg4Uj<~th=x3jnr)asIB+4BJFjSIT)vQnJ4|VJtu|ouy@$V>6h?BLHy{^~&n0 zEWJW4xNXC4ix?x5N6L-2mx0B&V&)xSv3R%RsBKhg&aHu6NS_`k8?wB*M`&x6rF*i@ zXxM2<^_D(H9901}{A@ClKLV3K->Ht!(Lpex{a7>KRY8i9jPl2sMU2xqF&K784L$H6 z$;YT)K2Ci*XN-Y}2lBKIGV;=6=j*(jlR%R@r^Zo7U9fMjGPkTwvUJrMhMR&E>|e_Q zR3d~DeF1@~8KQVM=bPJn%eM5MFscFSQ>|Cca1@29xQ2^9ut8Nc&~Co7QMb;VpZI6F zGY1@6^v}6N<^37g%$}*njN8*AFs-u?q|sggSC*f-GG>g@_unBiB*@o`Lcwk1kZ^;5 zZt)|#GybL%40Lm-7nMloTZ|-}2jSRmG2g6xLgE`N4AoI`ljg!osH=|*S4lWMqR9`i z+WsLthJhhVYDnl0jFqWI2WI>h*krNo?_4-fMBRe;4BrT8$ulD}a@np=o6GE3I;R@7 zk5s#jR=QB2)gsB9rP0Nok1agGqgU!Pyu>tzOxHWS;rokr^Up?ELrH<>edj?(Q8y59 zq%}DJ3{=VUQ;A17rP~cT7%QXBY`a}B$LO)2jSaM9^|2GC_bM13`-ym7#zuI#@$lxa z%2-w5dwnA7NWaTTHzd+Hi@&!WyX6u-xsU;Mdsf78PZVhG@Pbon4NkSxpv`CAapN+P zc6OkRYF!XkcwOJxd_aGtLHG2fM(y~qkJ5g3qXfwu$k6r4NYazuJPOV~gw8}ia>J!$ z{mm^%hlzTP8r{NI)i$2P_}KA_qjb=I6B?RTSZErrOpyHwk%)T6)UxQdYPRc-VIcsA zCtJY=bM%zvJngfIniSz5Rl}dWtIS$uB7|e_5OLqhdn83^V)tBF74_%LQ9KEKI!vP^ zNLl+S*L@MuachGD0axe6F;~+kH}OP?+`de9|HVr@efEgTEh5XDywX8%VPTA2_|asf z5)z)QJLZAxS)MKrE)&lL#Ou9jhJpwSY6@qCadER1=08(*=rp;hYpSg!)by4}zs(5u z;VjraS@VE`@H>CdjFHHjTrI&;J|jvgp!d;-B&0*Bx1@3>NzUO-kB8I;cf91~HI4QYigp{OVXk%S=YQq01EwJJE+9eEt_IU@vrQ+nW?O-Pb;x@Q#L~X*a#9 z2kKv4R?VV*0`6fGrhMkME95{dUFI@wjzDG#v?_oL$`21g#ZiM)d$7_e9rqtG^f1p> z+>-JFtn*n$ybfm{WJi`&e$?BJ30@C zv9Cs0zsO^SdF33CkS(`;yWj^^7Ln{G)VI)bG|JIvfk@nYqts{72VTQA-Z`qtHwO^B z*mvllWk`bw99^|6(jjOL8!jM}q!ZB}vCO+kx(Y?-ejggn*goI!3pk=jHr6)nif+J> zxt~g|NS^jD76@M})0@Z4(_=9$qEyxH`z|d|>K?C_DU8t>ueE*&x|yDuEy9)qx;=s+ zaw~+J!bKNJY7IXj+}&!f9d#%QOVaoZZ*4|^zw;{AB;xeWib4)@w!pqW<#C{U!q`vz zCbQ9y3?7{Kx)zX;7(w)|c2_^;f@!BU|FOGli*>tCq+sEr!YQYCrFJRMnjE&pvki16 z^(cUuT5}7?#Oq`{TKat&VVtEAfPM?)Gy;%0ufFne_{AwX6>R{171G&;)X6L2O0F*B zr4OON%|hGVDRt0sDn8NZ%)|@E4g_LsT?0GGY!=y*QmonS#CJ|CTC4+xxYq8VKTmkk z=HK~-W3%&czx#1g;edpNH!U1aI+?LojJwf&NhQQtRQBqNNo8h>qEzhlbbyDpa;pZS~wYZ9fy;y5@ zn2wQi7xqaQ;_}%%cE2+H3Pn|HTHiQ%^0U72luyb+0(Km zwR5}p4(BKH0LT9^m0R6@DHrl#4JNyJTB!XHd^u;V$U$WT*7MP+NOPTY2#aGM8p=Tw z`X@ATPnXth!8lHvmo>Ug^eryL{X`Wq8Yc+xdG=PPgunMuJ`|s(018?jOAAWu*1I_~ zv|#H&{R&?V-k`2yeE%5HPT}r=`HGy`Satnl(a0d~5M6d6kAVO*(2$+SH1lG+zE=nHY;#b7wRN(z~HP)QY6jB3E>`Mxrw#3?ZeDZbo$qpk*Bqh z=6H{WVk-lIkTCuKH*Tr_fJ`}hs7OFtGXJVa63h;;aN#FQSZ*2mQs|5x} zS-M~1clwbgL0qaq$u$a_o$4I}p?qt7&D6&Zvttg-h4YN4rOy96Sp;`*$xLV}sR&$) zY2l*mk`?i{)(I%Ez`k>KWkh3biDHT2LX(8i3wv+W~H`b+jQ82pZD zYmLjv2z}Tmm%nb|fpy@-0@@TnW%c6!?vSR{q^x;Tn}1Mey;IT3XSY_!A>SvplR6-N z8+~vcR?8lK3#aML)@`VWz{Q~%A`_NXPRL z8#(z;NzvBi6pnG9?oXF4t1^D*XE@2Aa+};s)+cXL@y)oe7eay`xfQX(TSGf4%hq!= z*X6F-9db5Yb22ND!l9bwDON4%pC!W7E@i|Bl9yW!$=b_+Bc}Xuowy^VH#$reuiY}X zN+t|LIF<+^BElPGyrY|-5*m`M`oMfWBgVR7O=6;UZb1A*6#TN(=CvT{RmON_zlA2J ze$P%P7#3QIKp_eEo&vFk3QV6K1zRY#YCTumkYC`>3Y1H0K9o*$UV?%FUf+ISR z{_z<-QNpVVZ$GsfNTIr58^N|{Gcl$ zwqR^giC_+bcY}Ed2sTm(ME6>QkaWv6faU+fC@HBE0cv`NBmQL%C2}8xjRn0ZsI-|e z=L@!}+#xcH$+M#3`)Ue%V%(m2g)r-QBim}0EAzbc%$E4`&j)v%AamKGn}V10k5Kd8 z{$`Oi+_AU<<6}{T`1VRMk}%sPnd-0*f3M#^CGC_;Ao#aiBbCR+^}1UT*Z!^X|S8l zf|G2DE|57JWHp?jGkD>Fb$RAj#x+!2fl`Gr-TUtm0z2eYHr!3wt>3;${hkvs!9;UT z)GqfYioo=@@WWL=LxY$;vIAMcR;P?k6l?)%*U>gAMHv+9M8neToJ*hC!x0g&%)YW)2;F(sPw$<;!- z;gIg)nHk`~VtZ~uze0d3;&h7JqsDg7^=X2D6Bn<15}BYX6(M3_Dg7~S7vy}R8ROP1 z`0R9ng~cG-I_U43XATqXi(->D!9Osjo=C2*B*%kKEcAO+1QAXa8`U*s)mmO__0d}3 z$oOlhZ{qugUpFpMjlT+OTO5p324Pyx9PU=Y?^B1uNO~gRZye@q+itdpJWE~TWvqh8 zdR7z_;m)|Q+$_B}*9Kt3pX87;13O-+ii^pw#mQXAQK^9M*-p`K+S-5beBCI?Y>Fl1 zO62|?oG~?n z9VThuDGm)^5@`*BqE2luoVP$4ocHu^S`~Qx7 zN}JvM@D#~atFFvfwSf-W^dj_#95+?GbSlQ2rKk}v200_jTS+QL2d#ja@Gyz|M_ueD z5@3=YlXZ&}Q8P-X_#k4}H`gAZzI{HlFYSg*&^M!->V!yE=j zu)_%|+3E0EWB&+%m zjKxwuRoJ+lSMGiFFl)4yW}*r+p?oE^tRm5;6_O}q0i%spvpZMCp53}SvCu4A(p?IS z`xw^6c#Vq0H^rZDXxIzbdC^;tyF(+EgoC*N^Sk0TWo9Z$$V z2TfpezNV+CYX6`2%cS^#m${VSdnUr9sMPp1o)hD+fr{nQ?cmp<#QQ}wLwsqqasu)l zDY%pz61lOU!=sSx@eTgiVgnDssQXm2pZF8VHmhP#h4ovAxrUGP<0a%{8>WiVefB=)FC$PG z#e$Wq=JhYT0(3SYp#U>V&f0v&h(4J_8j7NuRXv--O?pgD$hUgiCSrgFTGh;CG)40} z3P>dZoa_1q@`YAJXIGMIlHDD9E$rdod@sTbxhgtZw}ExCB$YEtW}%Kq*7JTPgb-0Y zpSk@nbHnNJFyyTz%RbaccAhTJ~!5TK@h`K+-q3o zF)$lYBhqF$eH7o2X#1f>Gt`(g6we(dIEws+yYD4yEDv+uU3FoK$D5JdU+*_2>ft>7 zaD~Z1&F`j`*t;V=VX+>yjR96o@L>HTiE<{(`9g5)a}14(sZ?M)^iF>pt+U@C&$xqD ztq29{qv6bZB@%yG*fOvtVRi;qQ(McaYeb-I1Yp-AxyRQa~Y7- zbZvR_QUc_im^k_*g>WZf4r)OG1c6hTB~+AzwFtm3A-;9>-se?G+a2k`eLrMUo_3wA zoFo}DQ|=*0MMuIJ1?)N})-m(}vtdc%zWvNAWH;LVyUdT2f29<5Z zm{eM=W3%4-$%{HN7sQU_p)KTd5#)$J=~ixtGQ4!DOY@wq*$F*ih|RA%d@OAq4G2vM zPELm(qvn?L0hl42o#}tJKm_Tn1`&)L1RrCkrWO51`}q3-ux&zpJ1@zVOiszl&Es|Jf%EW@1M4}dx=`83}7CPOaG_^ z-(NPT$}fd9vEEnaP=5qM`n>J4*a~h&%S4?88_#|BX7$dnRILQ?$oIj7_TA&7f}IHc zTcw{=2wzm6HT{;{Wl{jEA3ROF{>IwK?KQFIhNf|>+BH}E9Cw$-iF;3q0&&YpH3T`= zPGTT0A0Ip`RtMCk)>%^h_>+Sl;P)y#+vOMkfAS38|6y_X-+0Dn&e3 zPr?D8H4ddD+u;WOZ}00px^v9s#Nis__x*97Z>j!XzLWQRj-M&v&&L7(l>p&Ga{IV= zp&Vd~vFrSpDBbQZ%? z%ai%2rZ5>iiHe3^S}I0iRW- zR^CUKK~2u2S|q}Z-G*Sn6^vHl4WJt9+ z*TwIc&8BC^R6$?@pu&+wZ8sPxI^7PB`j`X{A;j~eBD8Qkuy{i*c%w^I_5ZA6s`=18 z=5mZnY*aRkQ235tdr(CGr&6%QNhn`Y(ua*k7yK36O_o|!sL1hfbQ&{HhEyDxrU|N| z4Vh#2$eOVFfukpA$e4Pe@S*_f_dq{7Ek+E43F**zHujkOqn^}!3%@`PMyMII0_D#D zsK^J;TkA+5B|yO!ZmEuoWXMv|eCT20`R5hXPa$)f9_0QKSDO9%fYa&S9F4Ot;j4^=pV710{9SP zVLqMDz&S)_IBrKu7jBsPvfU7zDrETw_MTVJQuE$ttwnV37OsII1B= zn}z9lIh$d0kn*%B_?lMA^CCL+J#^ zdkMi%dL%kWqyJ zHhtH~Ky0FWx5;aCbO7i(eGG`=>vGRK7&HdVJLAe8=hKO*yBX-jWCSnGp(4G;71^^b zrbwygN9*3_rfi%P97C`>ssM`0nj6*5lc8t*^ql`5UdfyID+#wTj z3jh=P;yguD!+wEtcNKjULr7?Zu+U^P9{^lvjrW+>mW2TUgU@Au&^FSst!gx6X5tfx z+pS4qFGuhxGK~0TKW?DO>)5J^hh1~lADO`p^G2*&al8TrcMeRtd3pp2W?7speuL?X z$Gr7_e{2b+VEc9}x?$79Iry#CqK6A{k7bGT1YrG*ktpcj5kYE&VrHB;B5nf_C%84n z29DklcDXWhV3+&u@BdW+1+54&=Wlvc-W;R|H6h)HFd9qVCB2H*P{ zTc5`7CQcIO8(?U$=msZTwPFTloYx%z=^MPSD6&*TcQRgB2Q)Q8>QDWDN>ZvGk*s5f z)>}yjkMGh^;8o~6$$8$I?u~Hgp2o0#(n>0OB#zdj)0PFI`O^=xv~t{KG)`s-_^E;`Bb9?E3BTe)T&I8-PyX6^r)5oEAup(vxvaJHq|G&%Ml9G^I7`x|Mrw3tgiI zdE4V>TO@`h-D2oj6y)%JHDixO3kuQkSSw7=iaWBE49?JO{-ACEiAA2+4(2E?3pt8( zh9roP$lUGkwM=X$3D{;pq#usWzl9&vqNbSRf`>O>L zR$K8jvhoe%=G1XE9aYf3?IN%ho|K%Gu4{744Tbh`GiyUm>Pj~{jIs*TBz>`vGCIv7 z>y=t&GnoAl$ZY|wI4w(2YUfn^qkHO%LX-*;n~uAfdL>6%teii^{lX4Sqxut&YL?Ud zMws*uj+9fyP#`R3@%JK<%oQGHU67xNiPBvI#tFc3p4YJbiox?O2gnYE(K-HG?dJDk z#Y>RW870HUjJA)`eR!wDJbxgv$Qrfi#RXp3*HZI$YPEjkHHekjo0oin1Q=2vZ3Rz6BVh zjY1$OTTz9O0;F536=8nXO=Wj66%6K0b*=?$E7~(2$mcRNU_*+HIb*RKiJEaPRBA*P%u9C z*if_71Y+p?FZ{v}(oyC;-}8(@!qit3I7&6i#mN|=Mt2jq!hSO&p}{0^8kALAZ&OY4 zhMchfLCf}dH^b%jU7h@%0=ykVAP^^Sk;$#)$rGh6jKmV-2@ zcriecB2n&h7lfesSVT)z!`33HJs69nz8H`62cwWxuC}(hbIsmr#0?SQ@@_yNs3N~fL*sX^gXJW30`-&}QC>V|IbO;oB#4h8!q?`w&KA8!Lc5-u9&v0C2f9R=SFVs;MgWPw zId0j|jQbU~i3m?wYQ9*tmKE&whHR0)4}Cc+=6mbsVt^{lqMiglc%4!s9%G2xsL!-D z4;J7RV2VZqjh|DuDF3+3DrdG*!Y&=`dLDKN4p4oAzYKUNVa_H6aE__u`gqaG3aGXZ8j-0-DsVYwGy?a?X|tD0K5X0ENU2~ zK2sNnLz{H1g>NZd8yYG!CzEKf2D?S`XW_$6VbNM4l!ZGt2us542Mrf*W@ad2)E_0e z8NKzDF_puyrpLTB{^vP$e{*iVyyd`*20E7-Kh#rcDfQkR_`*mbqY?HdR&fO{Z0_3j zCy^Vxa7*i9_N;$?B?<(nf2)Fb^+VOgrByen7NvE6pWCDnis{?JZC-w7jcQ#sN#TK+ z)f37P4;w>0&pmAvM;33C~Du|yXVZU4ju>>R>C_X!W zZI*p5e(Eizh<**{)R}(Dl$;ClFP4n0ADUfxn`GwqGLO zoP4Hzfbtv_EeA;5aDMEK>;w5xvlf!*h22TNSsCpk)b_O#Ox}%E9 zZ?tzw+TF4dsn_vq_41Eu+VQhHQ%j+DjpTuq%9dPEtyi;~)}d3XFve+l6dj_T;UC)S zX$|=$A7LU&9CJe~p{14c5WFvwTgY87rl6zw@&vB?znO^$>G|N!b4qfmX{wf!ZVQvB zWVo9ly2;u(w5;LK3iPEAUv7nnf`3;9yHgKqw8Xb1LDyqwOCZ=4K?it+PskOObHCwA zF)TyzE8hrDvC-O7axhWbOiIl9ucw_jb!3SkCLM{!=E0p}3RFW()}^=vo7=ut9ceqL8@ zI}mQxeDt#k-jYGLh5ry_xXwR0)5Y!PzR0;cX{$(3AA*eEj~D9cAPm==Tf%o<)&+#t z1%6qZ1rP;kkWgd%7vuNdEZ zM2IMq>Rc#8H!BE-|H2Q}+%FYv;k?kZu2T1L@$z<+QQ+#DLmi2vFyX4uPr#_>Qy1&#A%hlze z81oz!nzb*Y?8bgAE${qGwZa@-KGfi7NafTbjKcadfxOp8q*)p;v!sKA7n@8n&@brk z&Oy(byV)QVO)?Mf%hgflRT>1O(wrrB^C}%J_D`UJR{@!z%cG5}JV%xq!=xp43W#OC}vR6{m|-AJW8JTWAi2Wn-O>ebim zE_GW`Hv1?h>1V_8{j3tRwRmz;Q1UTEgRHKcOC*f37}Ff^35NiDj8x~mZrx!8#Eydn zsWD5k**@>D#UZoGe`Z=@bZf3Guf?z8<1wwHZ)ha2^|1GYlmLPAl7HM&neA__*YYUv zSuI+Lg`I~h3zu(d7`{KfBW2cBL>4VdBJ(0-&%&;`1$trFYS<`&!RTHqtPz^TWeJzEcmaj#Ryge>MvSAU<}jF<@5_P-L{gg?U! z^WCmh{}o%R4xLphgpBY^p0;Sr1tR+>J!yPwL*vpjSQp1#_`XhFq@_?FBbKjq{?no=*}qG!^Jm%EfQO8T}&Sj!pQV}HGT<;$jLqR1A`66bPYI1j|1HL zOExv(xrdG9;oX4%@zu1J(X=I_bl$tg0tj}7rN5S2Z405sAB2pmpRas+7GBYTR~n&> zDZE<310_k6p12&B05`Qod57QLv*uEYiJj1br>MGEo&ru0<1}IK2&`b#eMs>%uD4-Y zw_~GU_4M3j@Zjs->O|x9>licFPD*QfJ!jX#WPK8fAN2nIWZ#0P#)B-(;+}ybiDh8j z;xz5Kg%$g&8E>|(RLSbPNGKi^qFcYUV=Suc-3!Vy&h*V--0Qz1n%HkaO?3F{O+3IW zI5iFyN-&p**a&9rCTELSxGB{Bf3&@0ccsn3t{rE_wv&$SbZpzUosMnWwrxA;1CU-g`Xj)AIwaG3KZXRkMyd&%?vp!vs|hJ_EIH9}AePs~OAa54jTCJ$_9| z>s*=XEDAz@OBh%tbmN=BJcexcB6{{B38V1V>`mS@0m|pALk-E(i(V z=hRMLLtEMS=S8)IUKbNffK9FoTIPjDwKfN^gSgh``CT`DcYsHd7Y>dHo@;>i2{>C| z)ODTVORw{=@M?q{9o7|9VrjBbS-5s^n(?%z!iMTs!o?fK)1lV1v8BOXBA23>b zq8j$vpd4xB8>@oouoR#QCe#CO?W1~8IC#$)o3Gq|fL-!nZJVMSv$_m|6+R~17VtiI zQDBT`$YdMoO@uOYCE}Hhs4c&)JX3np`O&!~vilXTiC1>Vir8{)=V z{Mf}}?`NY*+G)hLDeU`{%Adkz(Ry-Z0?%|cOj#3)36HGz7iI@tl+S>?yE^ENJ~DuM z=&P)je!PQUwV-m!WV`uolA{6{g420zkTq)G8Fqt4V`lmpsGhH zHR1Eg9cZp0(q2rzC-~i%l_}-ZL76`~rWj&&ka`*P_xk}rhbMv^ zlinu6$Ws*b6_lvNUl8BcmB>hXr0yV{6O+?R zMe%c*yDzThuZ9u3%-i|3lOH{2;Q}vpI`1eF>)*O+*{s$CN;fR3F%#y6we#xGI9zL8 za(MTJXok=+*18#xmE8h6SwLa=b%2G5hYyeSLf&K3sYgUUkU|?+zMH7g)A}H+B-xn% zOV#F;>x?L7QWUY1*zM6+rP5Qw%h7aj-QnxDN!R!|K^H4cS4fYGr*pW696syQqg!Wo z*XO(0 z?Ke_tS2Am<`*038d zVUx^Ir$|-hyOZLl%X&_NGnK(VPeuN2@;w3)b8RjhW+39Qx7?L@S7Norbx190-@>hi z+Hlu=iExauDzejEK*r@p{PRg2)0&sZF`%YO<%pC`=&XlX*6z!cv05XGV->dUA_vLw z`5?x$kf~4fxLGQ0*$AD-I~b|p5!$f1$XUIR2ft{KGi@*LlmodcFR8e&pXXF8?EMVP^i%%B{`pvG4qd z%Rd_M2M|(bGWb3b;G{H7w`KlI*jm_?N?oVkuYqwZ<&r(Fu~^zBB?}HUO7S0oNM_H| z+*u`T8=pN0|4NS_^?qBx-?qP=&s%%FBQd%^zAfOdE}suJ&!6Yl+n4_pkP}-)iYU3SaFe+TYk@Hb<6TA>}@rg?um9=wBmD9xCaQ<<98v-y*e6F&dnE z|5*9fZfsW?I!qIEveW$T+-WqY_)zG+uF_QXur0O^T-?&_p14x z{K)&1co`>1eC}{==J$R&Z+mR*@dLbe(?{~O-|T&k?c}pSKzD2-GK^hrabOVzDDw+o zYzAP%L$jarKFZaY73)|FbnN%}etn+n^>)9%e(TDS48Ak(4Kx$aWCI>&v2B>xw4oiWqr4O}D}BF1XLdbh0@&|v3CA&8Fg`yl1l|`dF9RtdK+|W zJ(A6Gr^>_YzNa!lI$`J*lF&3#@LK`_b$<09-}vaqXb9|~w*ohyK1);!eJk7)?NFKx zTq`y2+2536H$=xTK{eI4TXhnnIm(ZgNc~0;jTknBTqex_9d;NICuJ)bz2{PQ&$#Eeb-`%-F(sv zpkcuO0j+dqL-^5QhyR7-ttdBN=T1@T)R>)m%I-cVC5;L~=)#DL;{`T!gD|6jEmJJ` zxTpVu{8L)X=|!^y_f3r)Qw8w_Q)42uhf##;(4#4KQKew0@I{0N zDTu1{+(b{#so~EBhw#$EAp;& zW|3p})y#A6=_nF`zr1H&6%v}T{7yP09=dVT8yKHjR2wsn&8R2K#Q7 zmm!wN?8;i8Lu2^;4=_6fn1_}n3c7G9{Sf=Dm8$`M8TY|~c5aOJUND9lWngLSBKPy& z_@K7kd=cg-X@shdX^f3bSPVAtl~MQfroM6hLWXI1nYc<7U}*!mB_j*jIx>OO(fLPH zgpAxil)_Oy7Y6xqrk_7^b!pd%uhN=c_=nig?h*xg<)Ln1geoyKH3sqtw^%Apg1Zwi znvYK$(oaBucwDys2+X@a{qkZ5$3Ek&?A;-RgI)<6V^b(d7sL!y`nK*Ij1N77eY?P! zyM%$+=So0U6aafU5du&6EDEfk4767|C#*n%r9{~nNj32n9%j$zYKappASW$e_&(n$ z4WDEKJId*m&x={=ptPOb{N3eapLc`VN}5dkU9fL=lv{h*W)$ zkrUbd%79$QxMI}i!5RnLciP1t^zL!8PptN$^zIJy7hyz6Ls9akZQOEqsp|-yEx_mq zAjnaSv*HZ)8m!ERK#!ng+5oaIhe;_rSjNp&S*9W7u&d<<;B$I6I>XUlE9~9mL-aXQ zi+?I?wF#C>wrBvzA^VB_J_%~|Q^nU1^@=4$A|H`r;o@cyz$9^*{Sa{l6WwvRU#Qg)E17(Q`i8%|I0($Q6~YDkhJv>9pIV(@{A(;jAi{rPg$ym@vDfo&~zWC=T-vkeL zm?+Z^>4H?Xd-(u{(&M&Zt$ngYQDbc21aKdWJnqiLMT-y(23{& z0gQ1{Avp_b4}?bKZot+V#w&YG?ypTZ?O7Uqcx7&E1Ib%PrqTFjSl|7mb<<8<1wTRA z+rq8BWiOzzGsF-piY)kO@5@;=9x8A+Ss zQrgUMwP71D4?GIUywq9QF+55TKUZM4XrdScFWSw1&=HkL8KPT^H$|vl+D~5+c}unN zSl|=i8EX(mSz{4Ckmh0Z2dV%QH0JYc!oklXde|CdKgr=IM<=A*svzvu@iM!#oox#m zd%RT`)~yZC|IK*()P+VUYbpy)X-4Fx7#gCWvr@#WpBXTL-ZP<@m%7E=cM0`c?6P6Q zYlnD@V;pTCKM|%!j!#7RfZbSxj5wbQ&*N_ph?Ab8i{G!*u%YVCe*K7kil!- zM6*_GA~Zdw)m0~I!*UmWrZ&+<8F-Se16NjB#-ESSLGG*aG|sl5lx-*H1sTb_`rB(% zrV#~Gt3*^M+Rm`K*-wN`cDbf#5yzF0g&{~Q(zI5W45;M0;*jWo)*z8fO-ux?X*n*? zRW)jzg;Q_{0XHK&sKYf27L)V|v5}n1&qFB>ej9E=o&qkO8_nwoq|mtf zDvga}?we!GZ<*AbeGNVOJLr6Ai}6L&jitzJf6K)J)q2m)9p{OgT{ zg62a5>PlVY>LH72LzS1weOEe9(;Hjy#a^k3ya#L*N$LZK04Jj2M zC8NO0T`B2^M>d!_ARvc&ynG2lLobhvg+m0S(Stb`=l?{uMuQ zPvCi}u__?c%|Vm{2NgC6EzlTbiipTnhm*Y2zlK+7sG6(+8({TF*fzHHmMr16F$J?u zKvNgAA}9W9){dEGVhyb?RV^}Bq5@4ZSnx63lp#8f9Fu&Oo%|n(A}gZ?j*P`SkP8Z} z+xf*X`XR5oJCahs&)XXz9TS!QQ@vFI?J~C-aIIj*F-OD^EI*Lr6#cFf@S4wo>p}#D*Pa7# zL1e2EC~(Hm19%*6Bu={-m8ZoxnpaB3uvAEIZvf4nV)g^grnx|8k9DL^?jO3~j0k-D^jPV-%A%ITW$**jFc zYfUCBE+)S$94_M*@<;lW*qOWJEBzvM8%JUY!jHH)VlZlKb2-yN1O5TV9ur_gei>sw zvq*p$GX%F-?H7r~`SVX73g$WslRAQF%ARN00`AeGSASwF|sOt@o> zUK|_NSgzad1uw@UvDU}5OpaEf4fO;;EEgF}Dv3vUAC1NHs(84Z)I^tIU2lRc zUGS>S6K=fz4TI}nC>{!=G+Xc8vuLEjgdHpg+;|-Mq94jJnETFiMcqra$Yg1^&F|fRb{zlJ=r$Q zlp6_g)#`kD_i6xq|4ET#Kg@P{9SAlMK+@i_vsd*KB3n3UUztacMJsc$R5$qiI!y8T ziwrqW(74VUYSYm%?ZXt?tPFEGct0lgF?fSscXo-_-Mf88f7|tFKzW%F;|pdC72)1C zu>~rODCEBI3nANx+#+|$)UJc4B~{@|JF{D3YJX(yB6#KlwCQr<^=sC2dXaf6zzET6 z0pqSIa>7ky8n+u?%H;{m-}#ymu>PT0naYbeh{%Np*8iA|w`a+OjB{)Q9O7bE%oJh& z(%1jDKzk3A#$s*+LP!wo3H5%An8s1o3<_MrauO_+*|qKs*1K>hMRkenCB zoVAGLz(8g#Z#2zy%K$3Q>UzU572<|44pqsn;E@4oS@Cjj2D|Oqycg`!JWt6d)+hv+18q zY9;K`lIcyjs}z+zzspnD2gpY_6ObtAd~n#)T8hS_5Yh+@(=lqukuGSvA%E8cK49NO z009G0y5&W5%Afu9vqeZ}by#@i!GVLm88y)jW3oKS;X|@j*m6_o)Vlc_3_NEs2K9t_M-jFUU8SRC#T2vJJKp>hTOQ}D@>BNI%)J6%hQQ?wQh)a#f8Eo zGhhJHx#qUtxDln0)+fkN^YiZo%0&-O-FJZ%hq-{5ZR}7@1E@0#GodFoyU?v!B6z-- z02B9Ak-QvP(AanwUHHy-WA~4o$_(IX7|3a%!J%#Yf-0jVc|P_t{A|!dSUj>T zSs@arp<`)}dd}j)Ww3@Ni+WE+%gu!(Yv^#H38beGII1Cs>!Lx1i0L#FYmo`-O4H2L zndFELQK0Pa(Thk^FLjjz!w{2Q%U&LV4NiyJ8Xw&bs5WvEb#m^-_GH;lsF;km#*n;el`3v0#`&NPH+$+6Ra1>%j2lDk4Cgq}wSXI-*(!q9^qX|&=K zqUE&9&^h8q!Elu}eA5kxVkZP=x%_qxsAP6e0eQml$^|7u5nlwxG~g-tYdd3FaFuzh z(OE^Vk^q_fM2|*zd#sNAU6~0*N=*J}pdmxxnAKONNMSXvc+|pn`7E}{Te%%Lc8Gyy zptA1m6X(O=v@*&z+S$mn1kqK2Ch|tx^vFOwTCeZ1vN$EZX8QNT8bag_lZ30oe9E!R zQrG&+@?v=1drOTsmu3K4Y+n>IsyZo@wQ{KcG$Y5SJ>I`Fb}ggIeIj6J`_yud@kjZI zwr7RFQxEzB1XJn}5EP*Wj`aa+vI@*xAObiQ;d3Dzuhomf;%}T`Aw^}xw> zmo2Lr)%l>jnY#zWw3MUaJoSVFSEx>yYOyOk7b5M4u!C-xo$sZ~KNVi%rCfN(g9kE~ z#A8sEe+o1*BgpMS3P{y2=ApgB@FEIERi=OhIcS9Mc-IAjHqNp4!8FT6+S5LyR3F5c zahcjo=bBK-tXSuzf40Qox+q|J|GaM(YDW#VmjrYE1t|Dlz#HePtg$Khk69LJzSh>JY{#k}W#1GM~rqU-}GE3ZxeXQ^Lw$GDE zZ~5nT&ks)~Xm&G?@uuN)NM`eBa;-)gqt6v@dWf4W49}qdz_GspTX1@R^ziYTX=~}u zH2Yw6itiGRpVa-)t?rTg0Fhf=hLe(9Cu&)!qxg~1_Bq)~HPuMDB5r1Zi_r<#bAVmV%KO8c&X~pI_g?g+IS;aB41rrTc zFYAS9?X7TLbhZ-K!O7BF778S?QAb4N(Rwvj7|!4l&jtB3 zPzM9A(T_C328F>WwO6qu5xKwjD6%53Wr*)m z5JrSlfJN`ek1(#QKiaCU*V9l*4=d;nDXllQmxAjLtf|+c;hP6_>S}X z@~wa2kHPYJKOO5vfTf*6x8;k^YOlzOUe5>nX2*y2{{!y)hkoS0!JU7XulzgQ`3I={ zufv^xHIV&xxbyFUpZ^K&uyU~fpU(7l+aDS(A>O zMWsKnldT3C9)HLVV#a8R{qT`-Iq`I#qV)TU?^dwC*S#gm zugm9|Mb0^|PCQkqwY>+|e7*Qj?+=f4wEMNwgR4x@7_Ia6oCKkfcig&O*nd*o-*0~p z?h2&tTKB@5dE)3*MwMD&(bw!Y*AWgz(&#yy@9K`+ULc(_*YM-$6&ZS~YQMATa$gzY zr}h|_)%j>!UuZ2qfPx^` zf=>*9`k`*YS*P@xmbniqv7Wh)@4Q)ee0g$a`*I+P=_nv2@VetTpd z?M-(8BNFjCu^Qp|$G*s`^=p3V?GhS`^1!JUh&9zfUA5QWXI<~VQXZb>{+&5^?a+Y3=^uT{xh=2V1Rm|5%e<<+Ki%JutN-lI zlXTVp@_y0f>v61f%w~35-{*V_E8Mbr#3+xQL2POyNsEZge|fVs>>h-rXw-pC^Aj>Z zhu3jpp;gxf29w>re}oQd9y!Z_#cF0h+NK20}uD#?MGCn&QXGWaUC4j^H2|XhGop;rhOJEWN z_65cRdduSEsH?Z19zy7dS$JK-8IfM}q4Q_mGKey}`UH50-=LYI4gnfvbOd}TssVZM z?_)x>kVCo<#;a#Y!jw=nbBMQo(FI4iSIm?@L&b5HR@k^^!TCH`TN7r@%WcGVM@RZj z7EA&GPk=WLA7LAapC@g>S^2iM{sJQGcg<>O1|mjsexkImL80VA1GEuIb+L6&ZAw6A zalSX<8xZHb8bOB-ac4U>kv?p*4-Z9{Ke$p^o7)4BfvOP@eBjVE)`HGhR1qah)I)L$ z!KKXH7FrHJteRfbAQi>-1t5N(Vsxa@mv$7Z)3tYkrUJ;mr>^sua>LC0X3KKtTcBJNbIA$3X6>kCNf{`Q_|F=6 z;fQ@)nDa8Q;_wKVnFX2I#Jg3}W3B?iweI%Wmb0U=eY{zylYs10?gH+czhm_^t|EQp zmL(3X^J@9@0FDTTRKd2iQ^=u@m|4B3>NUlH@Au1tbMo517ePyR0KEl(@(S z@F@#yS1M3Cpt<`R;m1{p;J1SqC1Ca-98XV--{2$$htBZjW<};ZbLpu{Fn%TlG|N~C zC3WD=v=Xd!$GV${ldSEcw}K~k5i3RX91c_zrl|9zzpsxy(6O(&v0A>acO4}Ahb&C$ zfC1Nzafe(g--7errx`pIfzbI!2iCGyG8$f|9fHl$&`F+*!S!4T956ld^jwr0bKdnz zz!0LN)1`a>96b{bbf?jE1b`%{vR@WN2quUGS$zQy6ALqo0k;P`&9=XN`kx_zEilxA zPaP7tum+@UfzcpJTTF`^g_Txn^faP5Y5Pe@GDyM=Ou0Ddpc*ul7Vo4K<8F0poQpxA z2{QKIvhfHSaan9-kjnYqO9z9%4Eps+OaTStqTEh2vKi^XA9}OTK~xmqf>vuL9|d$R zi1P)Kr}Cp&;J}stFl|UVPxNAA#mHM&HU4f})?KWk(wv*!6p=G2x|K2P*rNjmSRTpi zEZl&FMXvVkuNqLZ%$Cd-=~%xsj6mqO&NFN~$VeOb&-tAP8=jO_$)K%Qgu!81h*W9< zs5S(Gb>J_hlx&YVhwFs7ZOQbbwW4hsZ`=p;Hk1 zG3#^D!Sb|{=yL9Ngs$0!*YJVWa%Wd)M_P!c13V_ge7IZM%|7ZAoog!$ zwl3ECC2=E->Iz6K($5^3z9AykBVTxr64`$Za<+2YlKnlDX(Ta^DPLA+=dJhrhWBO( z3GX2Tv1O;+s;?|OqhvZ;3#j>N7zcW~+wv1y(%eVh`}gE@CoKU`Vu=>7xIissE^au6 zV`$SLxna8JjPFP zB(~|$C*0S2gcZQHlkQb4z8Ik3}}^){-xqR=H)!OCIKzuX?Kh|DY~~K8_~> z*(-E$i2QKnz^8$}mrRX>{9krVs-s)41K+3pWEk#c(I#Kx)`c%yx!cFMAW8Nf_f&GF zoqo=@F)sFKou{+OWc%$zU}@OjG}icSg^Vc+-j0Iq=i2#G&zX}8V8PJ`EOe0S=Nd>H zLFxuIFx7h8R$(xczgrN+r7Q`#)9>o>F?kpb5);zWq}O>mq7+)40yRf_T6M!nz()aN za(SVMS5a>_Eh0+KTGtYa8|KD0gLfxQ&zkZ zbH>O)b;q2^S&6?dW-j|9G9qonQIWI_BAt$Y03@^m0^8xsP^xa<%!qC9>~+7b{rUUT zBFT5~G*A&6r5iMr<_b)>$U>SM6;O4%HzphTlQYBff(Pq%s*%AI#h^*@)Is3p(EJm# zMlP23kfjf6FKBmpQyO9qj6T{U2Wv(X0=VI8T|;N?{^UAMg<&)H$hV9rU-P8iyn*ws zyfYKHQoz*~FIyhlr!-*$3adN(HIch1CHJ9U8}wlz>b8fsx~i^Uv50B*IU71>|m|ni23(=SJX4$D+hzd+?%uN zdMt~8^02Nktiw32At(JoG9n>Avw%2@btZ74vgU=OYZ|fI8zT zmja%E;LOmuG;oDt!GWIf*u}PaK72Ye{?bd>_h3xS_pdD^W0l|L#GB&Bf~cn;*rhwM zHC?Ey*zk9$#9*dZX);Le@=`7Bgn{LC?bC77gJavLx>j%D_*UrJD;|O2?iY#8M~4yc zWgkkz&)xGGM7+(s13|)*^pFqxw3FKWt#x!#qV&d0-k$j+yj}*C+ zGOQEMU#y|z&LWadpMB@Ty>*YF)4J*XruN6*b9l~LKJB%p#bCL1H-A0e;*OQAjFmOD zYCDJ~)M;b!i--i@G9(?@9W(A(esyAl!lDn)Jq+KJ)tnUP!V}ffwh|39o=mU)cIfoC zIySwLf8ySpjgk3)WhlX5)w(9?V*B^pal!l4k1gA$0;6u8fERUQFIAhtL$1z6XXp*@ zPUflNu9jMpqj}>uz%_>Zer~`))x`4R>F>1ACEVtftl>Ch=@F5qdN;}T zH>)nzbJ_0SHs6X)5%p~N_S$o8c8_rRD(0p{>qfzJ`->DOPX{O#2n|l?lwD0YZHM^I)x;()3$Un6_ZqI!nZCol#X^dFlCm}mP!bvF@eqkwlxm96&Rr7j z%Gh6S9~%65zS5De_`Fb9l`R`OtaOEJO*ksH|Mj;Xo@SZ8neVQMA2tKhTXOo z+Rf(>Z%0gEr7}Yqt&eAG4PoK(QQPGprb;5V8|ecMgcR9h&g8+anSvG5OsC&E^k>HP z7dNZH#u}cgA1;zyI5Ks%fj=$s^0I&AuC63LuFL{wqjQGF*q)c*zkPq89B}a-t|k0| z*2g@zD}5OAzAEutnB1gJC+9SIt3|?wN(|lTE`m-f8Y6 zLKWjFmU$l__k=+}cg>x2=s(H2BFP*?yZqVzIRE3~xId&AKjpE8jm;yT=}dejPl5Gy zY~4_MsEHTVfUd-QEmMNqrNtq9xk;8&{@hrV%1AUaGhd{Cx*{!5#6X+8>F?_V(nh5?HXKNq%$J%9JWvw5)+y!|vRqkjVb!jl;9KY~>^@odM zgjZ9sq4VCUhI8T{OPEdJRDFmdnU4w7MdVj$+x~35z$xrspD`80hIcRkN&&)EPbU^Q z*ehwPGflX)n2y*;2bJ4DlUxVI(bYohV~fJPZ^-Pis^wKor2IIgfH)Dkk}4=qc^B6U>vKi))qTHx>*A-HKk29PSx7HFO4ptv64Bk z{vceX>SG|OY~;|wFIM^ti5%*MlT^=>SpzhH$rJbP4P97kRw)XRzTmEl2Z>iONvM7f z;&Rqf-6v51Cltw$_{)`48rDY}eJ4W}rcHmb+673C*r@KjuoST@dX=fQHNEG6fWb*E zuWHD&RB4U11z_NH#{*gX+Pq3m37IQ;wdixQyxVPc87DC5x-6L3WLX+8#jx(=!MQh% zFKO+91$G?8`Z;k}lAk1vjW|=cw$cgnTN0R`lPYdqODvo`s!v~%rfWnsjL8r#Uo2M> z697D9x?XYG8>f+iiMv2!kh+XHqGxTtWsO2KuF z*gv13S6cqbmS(2QCK)G)wN9y@)O5-L4ek_46v}xmj_gpt042@Y zpM)Qc5=X3#In&mMST`Lbs*cj&K0DaN=qA<=?4EKhEYS3i>7;SzOPL z^{onne$W*VIa-J?oC9)%UqAWW%o@C74^>pxY)6RKViP0@>D>!bVrp`HqyI)WGz0PL#T|<1KZ@@d`%r3n`gXk&KE6+u7DVf+u4pd7y}m z!6#rV^%&+w+PmpId-j%h-08*^8kcDv`*{|T<+_~+$5u`0PedC-mrd0jLc zA+kShh@BevRo+yS+D>4}mKg+3oslgUVhDWIf+Igq#V#!hSvT5`JEyLaFdBEJC&4sJ2+srKbFpKpzjx`YKd}zy#Y#uZ zT}>Xj3Jd2;EC#iuj>arW@UTF{jeRLJ=@9WDebjLsp(9F!yWFR~gn9&F5j64|`X$uSIgFay`Q zQ0xQX3ylpoXLGs1p|PI~ITqT-xVb`yzP+ph#0P&H#F0bUo}TK&MzaM z5gWOhUF48|On9i@EdoAx#?Zms{<1Hw`seR&A|pz!Jz59JM^UtNWx$Vau@;U*EH+v6 z24C4ll%95k{fwKj78D|tl^tR%Hd$li$RM7m;!NTe_q8l=?B9SC+eb02qOp9Q5h}<} zKE7Q^;3V%i261(cvlNjTZH~!Lw&68!#V?z2IOeTX+3jshr-!q)7*J*e*DE@&>%bQ) zglD(f-D<_)n!H}C&XjqtaC8-KMoKwv^d{jWZV5oCn%|5+iN^g>&*Z(HKgl4>iOJtfezE22MFF0F|Vr=Jw}N4UEOKz zF=*gMnwRU&5Qv?_wmxFhUhhX`Df|t7x;waUSMPzcM9-;=5#RANzFm=+qM9;-bj6s4 zuBP(H9aV-2-A_sjg+%4DjnHH9M=Us@h**f>?$Akf$QkW!9B@^ z#oD-y;E%eyXOm#0QSCMpxL1N75qU9GaiPnIlWT{$PH90J!^VcI_b;uV^7wGguGv=g zVMwp^SWSL{vcni$cePZXFGIES-HL&9ySeYlz>70mw1UkDe&h@q z9c0g)3M>0WtMYl!&Qy!d3!NFiA!ZbKdYoBry;MeZ9t3u^R*vVKeO7`#3o-2=s|)I% z)nE*EZ7*LdYWK7-Tk7vr2U$X4ioLVwrdr}Qz=wFGgC$?Wtwf%f%YzJFYM+-ckCbGI zE`8$g`1Sl?y}h9GOBpYEyLm`u<{iIOLb5w++KcV1`pQRt*T$O4`kZ|>2q+w|a>dD5 zF*IPKKeXE%r`$r}b;=kxXTA;2I-ikx=oB2B&<$6hKMY0GEHSXKWkb*I#>*8_@*v5 zcu>F)I%a=^e=jl16Whr`@L1m(W}n*}g3{D)ZMzrlci*NXf*4ESdQ{(l<={Qp1ozgKH9 zGW>fU<$uBfY)q_7|DjjE%$|tZ7ynn*;{$|rBpE|r-cQ(st_vs6HAD^KVv&aXy0@+& zdd}EO?0w}dUC{t`xdM!AO#gTL`*Dt}qg< za_;Nh{{Bk(@%KCT@IK-BN!qG(*1Sdc{+g@zmp)g|u`}(e_t!tyEcbf7wDJ`z({0;Q zOPq5*oIW;od%tCT(}hddoF4Db)#*XKR9I+?wBXp z{ls%OXS`Guhr2e=_GmR`TigAPqg#{_mDZ`x9~wszRt8y83GF|aVe-q90Xn^p%8k8lSpHAY1}nj_9pl{9%WxY}AHnNn?>8(G8b zu@isx#|~il+_@t}!t>72cX0b5-R?&OgLt$Ew!PrQn5!I%{(M?|eSW0seLYO9*Xn(~ z8wsnImloHYb9!SK80&kP#s=M_4-@Y6QGk~+|MDG%Xtkd!ti$yQcoFd1@Aui@>au{t z?U?ROI$Z(w0$Tx0Sf}1p8NA(?%deo3?+>6Dn$BmwEw=Rr`V(oC>4*kYNXf_Nvg42k zdpe*#hjBN!)`)@?O;w#0W~n^M3uMWBJ~;RW&4l>(8d0J_CO?JSow)el=g?u9Bg-bF6YxU+JkFw9kR%gm~DBK>Z=w^yjo) z2p9%v1JWweEE3rl$%WZ@xHVC=bR-l@&m*yK*2!dk$|pM zfH#qUBqB35Y=htvT{*~#ZOXlC00Xdu4T?C>Foj13nlM@g#Odp__iN6m(gciw_SZn=V z-;U_krx2$Bj+sV*A&&o^wV2XhKNq)gukOISBdrIB4l&VPFm;2u;I<}@nkiuqJYE}0 zg4<9zoQh60&VXJE;>gy&eQ(^EWKv=Q%9FP&&jj@;(hqMXM0zT3buA>KQ*z+Zc6+JX zTI`}?D6Rs#GaD>NtSY+fIi1>Phk#7tJk{?+EZ#FFOfnaknb$#s0j{G_CL_k~%e(iR z6PQ_)m+p7z*8mt8If8;IK#yZEd!5wOCQ?<@=mDRGZ5|e`PYeDaT~yMw`#S2ha)DE& ze6;4sPG$jzdqZ2`wjS^NDUugmz<>#00FR|~i$?)OBUXe^*} zQ?GkM$U1^R-;M?ds()FFXT_&PW6JC^Wx5NLff*>zqCvoSmfeNaQJ<-abMU^25LdO# zH*9<^Uzf99_rHTeX8zh?Yy0Iz6Zwj*yry$C!Ihw5&f( z0i*~B6Pdns0Il)U!C}2?33Tn}ezTkhW`w_rrrket?vHcZ*dbrvrC&2EQtxZtaS$G# zlq9J6qJZYl!;E!g4+ACVWR)}j3>_0b4ivTuL$R`z6rkL zOiP{#6VB8@reEqrE0=H+_e0m@Hu~GWJE*2g#^`%KXHNy$M9z_A{j^bf=dS#K0Z7jm z-xb0lk)VXWFkFcmTJvg33=SUY8+h@SUznb_rv~^`0V-Sha78fRLno_$ibrVIa-!uWWz(XhJL98j`2GTUYJ= z3Bj>bP6+DzDSD`93Z%1$H6gyl8aG-;va)IFDK}8VHxcdhmZ+3rm-5IH1$SnG2C4Ik zEmKl+ZAMaGqe@k|q(3cVn#=M8<}Qd%yMY~mIVfO-_*Z~v|E4p>eN7Bjm{e z{a%IkS|ZwvL6j@gJkMXCKCoz3L~) z388~({}jlSZ9=;q?1d94Xi41+WCylkVAOa$lgJLMzTmBLd(|nvG#8x@lLimiShdIR zcGKkIBtZ;jYK^(hGz_o?AfRA_&m-p>DMZ&il|k^xHM6>pH1*VrS!p&i@DXb^^lt0> zcz&$faY+5dGYODNp^ZnTZx&G+dluqk2P{x4Hs6*X`eUr1Nk|AOD$Xv~2VGnHyu5k+ zYn%rS=hs+fInY^PR6so_a{)CuxDqn)G;EUmp)?_teP}W$4~<8gJEIX~z7jeI13Cgr zdj=%g!u1nj#5|omT#Fps($wb^(UNx3U!iKeo!BtLJ|8kLk6JAH280V3YL!-cPhhw) zITSRZ+K9!A-J|%RWr>)SC8Za0+4?O~G5hokcmocnUv%@~bM-m_O z?5ixE=B=pLA`Yg4syQfX$XJTL)itxIDj&|1(bgdD?_M8s}&Q$tr200C-L1HgcWrf<6Ton4apl4twLrUZ)}= zZ$!wEF-WZk>PV-Qy(@WitqGhyGVlDmTYC7qW(eRsUtmdX2Pb}EhLEThUAYJ@?1-BpY$Gx!f-lRL zx+lxsK*JHRTc-%RG&2soA0~E7`Qz32M?N7uIZDPs0;K;cg$BPsZmx>O&R&HV7>^rY zHEPe);r*_UMoRYP9Yyz7PLc=^8cIqD^1EZK<8DtB_mQCf&Hz$D1HNVuR4Mq@*`L`3fAS4h; zXZk|a!3ojV0xCY%wh(Z<#QfkmdWR-sa?qcKB zMUiIwXfHoLnheZt-oDB%wDYa6u_Y8ov!|n%C7a}Y=Pa9PtUN`IL8$Q6w&^hCv^t-bq$q$1ahZMb@T*;P5xS$zZh;oV3ZbLNtFuk@9)kCy(4~NO;zcnTaj}C_)_2 zBipPvDUp*q@|`4~VWFzNFlA126-4dK4Ze9gOp+{W%)bahBJN6XLjZCNM({Jn47Rt? zM)>b1BPM8aoNnKL`_eH&#moh8!NQi*X)E18-SxCq&JNQPp-9tV|*Xz zR8hMJu8dz}!UB*ApoZLw@KK4QGYwM~SO-f>*3gpz8yn8*!T^yCYh~f|hLT$9q2p&t zOxP{x4S-wdFw}^#lkR+QHEhNcPMZs=-R8VUY4eF;eB`-IJq@kyL`dqX2#Zo@?I@84 ztaj}0^7A_mmOnf$nU*-0rnbx!$tP8~D6^jbqC)ec3t#4>`|7Phf4hcA7sIx9g7jxW zKeKH=CkZK=_3mSX?U<{coHnp+j+~|%a#M(5>o}RLC2xo$M)2DFbvU!D5oO*a`+Mrl z2T-h-wZ(~-YOc@hD9P&G(BX0CRqpKJcb$MvYnkN|N8wyy-A6ss2=J07|{8pAl{|au7+KmQ< zEb1G!;on-HeHd(eI+|gI)Je`iLfE9r>O%E9=WVr%WGx$9h06B(igfEYqdZZDx!9%K ziRs7h_f#@=0elzKQCAXVJ46eGC5HM`jr@XWKL>bUX*^C?m#%;&e4b8DeK7BxZHDtC zJY4;lwzDBO3@eirF)L!lw9!BNn!6Rkn_lkMJ7fIPq1szA)+z!M<}g{Yqt>wpNCXgb zzfA}U&0HE%M*SLX;py?zp)xgx0q>4*8+JN-o!-Xj5DeKHEy`~(Q3nyH{dk=CaCv2{ z@Ne9=TWk}xM@Yp)oV!CzrzTLliU(9*Q=UL4PKdM%P2PT&Q{J?#41uteNBc#k843;S z8v~9sCnI#8K+Moz`nrD5{bE$zd(d0`T59Ll8>Tc?r8^J$=FsD@4?ec0SWm?9jbROp zVPQn0NPHLKYHKm<5+-D%7fS_~2e87NU|cW1I4*`a-|2j%mlCW@kS2d7uu8HuyRQh&U}z= z#`&W!I-Rm#$&P>WrBwV=ix%INWO99gZB$peozd26DE_KAF_a7M5nCbB+fs`>ZSeOo z(S&#Ez=5bqTtmmVEm$jsOfTYq_algB1zvD^Ogr{jRQi#fb`-)D&E5!&9SolPJLy5S z$6de*sAf{3wQbMVWnXb+Sh#g{Nq}|&zgaoS)E{WY*wT#Ri+2@c?sw1bE>8>q=fYSJ zWWe4IXlmJ?@TGC}G1A-x2916=|0h&pjARiHL$HUK#si6zmRdh4@v|9ZMro#s^DgHk zh!ep&?gtX*8@GKilSBAX8i2^3TBJuq@61~^Y^4VYP#C{CPDNbbnM5>uiMI@>L{bU$ z;$!a1J@E=Nr)ynK_g5LSs}|p z2xe9kDNp-W@d`v-na_9BS;HaFyQ15~0>dID#Q>+A1X_w`c^ ztkDuEbe>Bfb{6m(cNn7L`W*Lf5dT7?lN|3=u`vEvT`j`$^vzi%!h(oaL;MJoEHcQx zcPV?+=9OYu;6>U@nCIt&bh5mugH}8XxuA_?tjAf&TBc_kR#t?@o+(hq$X^xOUuad*9ZK&_`9|hl(G?)-F126)=7(_4%H& zkD^K_m4*TLr3vE~Lixhy5~MhM@IW@a)(mKNV2x}KVguTe7i1GdX0s6C8 z$``DE#ksx$yuAWCRZ3_6{=K`Rz)&-jeIwA5XmG3ySlY@d zGTrq-!KJG<0>VS3K#cHwqc<#>%YScQ)u;2)iE^`0LgCKY>&226BAO?=8jiKRXpc>I zUim7R@thZ`NMfDjdnKY<8GUw3S5gRz#MznYjs*?)6<}xn@byBio^`bkPM>rv#%0;8 zyE6}c0&cdRP5v!DWX+(KH`G%G!9~Ht&LlH@1~X;8Q0LKI0Ej_6FYdrceyS>x`OxYC z&jUf?iP*W1cir%7h2LAfrJ!Ygg<<7oaC$4NSMK7+_X*_5YF2h*Y_p$hx%J*&Z_u(2 z1qF@pvjSKBL^aUI&kCPvT+x?XPcVNDO&Z&q4J`~S9_2D-$hA9^xcx|t-IeGfz+hi=)19O+iHa}Q z{&e_Z_Dh*K9m%lE8W2Wm{+3{>!%kRvZd|MB@|@Wa1; z`JBcccAiiiWZqy`G56aGt+1~uK-8qbAuPMzPi9X2t=~M0auiM#M-yLP<*(%=-uP7j ziG%ij@=VKXW}Dd1yhU_>j4Yfd=RyhwSE!%*(6wr~NcO6;^|t$U!(-n>)~CM;?^5GM z5g~&2{2%lRLAE3$TgzrGr;ehBk(kx#HO*-$PdZA-hELdgN zsyB({KVzl5MAlkJBE_v0n=v@OVJaQ^EPT3T~W1SMh53>hot@ zLMM->^y(8o`rVBSWqghArQmuxOv+FBBA>`0P7J0s@QlEC*~;lRWbw?05SPuT$k)O1 zbx^MivWJPDYM$2kIo%c6pxnP&Ix!#3Yr^WXneV?6{g19vKv0pWxb;&(F+_YIL81X!7qyyKN4RD*9$J*XVCVy9eq)8T?+MPS=8{DZTnWtDdn_7Oa$ z7c^63s;LgKROOBa1eDlm4iegQ175k2;0852ZVdDzPXy!Xq~UzbDVvWQbifS@GB*%r z5l5YZOF8TvKm^KoO@i(58+;Txlj{MNzJXyR=}0)}h4^5GLh-*MG5?_i`5#COE6cwd zQT`3Z{6F;Lf1kztYuoF8Y-X^s{Cj=mzhg0+Jna8j%~<^Z?rw<`g2>4+`u^YDt=8=z zz$sqp&*%8(y2I{riDNp*7*m!#gwM>VfrZHP?d4q-gm>ZXy(XKno{#tGo`9Ep=G)Sz zppTDj<9Oj71mmEO_wgRXxn&LHe_7j)g92oYuZi8dcshgR2HwuM^MinYueYN}Q;C;T z5ym;1Z(r+v3wQrCHtq>zI!^#5*qnCfGH))X0kiMwdi>9vu7cW)+AA&2dIUU)&)a&u zuBuDxg04`Z>ebwbu`@GeRihs!1=a0Nw22A70zHpIlVZ7pj!1L89mql z8|N|BL=p>9-XHC?sv#J@>Mz>B^g*Z)*1uKM>i6c3QAnB#jP_*U`z7t^S(mbu4^QnR zg>M}zkDM1Gk!TklZojirfPDyh{|HTR8{bS-PX6M*kNJt@i)8%(DKsqEoBLLah?@Y_dJ@^_eSQSh8LJek*uP+4+;Dkq zuR!I@yn9k`X-Mw@qkLp0Uqm;8a3Wpu!%ZwMlxX;#q&>@_CXZ7ifjS>R4uB zT3QI4mAs;pq)F7CC4c+7{&hS0YK+%>E;6D@F`Y*+(xCjwq27E=o=Tp@fgljkk4Oyt zsg6K}5kxJ(6GpdmqqNBeP-UQsXl>&lue?-V+wB`mkq^yG(dua9od630C+Lrd02kL# z`3`#ZyDttSMe?D&%vUi#lI&j|l%D%o$hw;i4Wp$z5c+!;Pe1Qc$zA@H-}E^R*2Jc9 z4Rgdz(-p5RP~-Z6mDO-oAXJ6%yH0JZW;>o{5Hi9#PTsP;{+${gH{dW&Vy1c2Xzb27 z-dGusH%TAAOG2Y)TGI6xqdf@Xa~G|P!n@&G@lC2lW-w4p+++|Ky;aAP^jIrJC@Av4 zek12PSSt@>NsL7FLG(J1yjXLB9(odoRBvCToG$(pQuXL;coJ!vaeKJHYdY!6ZEGuC zsYNj%#OqQjFeCPjO(}g~Xrochan8Uy#=SiSdsY;O3PIFB#K^8(_KK2$TVlINC26Lp(PAKA~h=6P+ z9rvOPS7X?QuSflY(MdGpN5)I?NoRH!d)uef8%D~h=m3M%{q!Zq> z%d#mj)guUjj;ljDQGyYT80i}|PRCg+k~OZ#x&Cb?XXCqtC$dnsO3^{D=&vCOoE#ET zXLfuhkS}S^>z|##)w%>+7kt`?iz8?s{wIDgSvEC3&v6DRaD?`$=|t>C183$&lNW?+ zD7`Jxi{gGemAF{(m87_>UB(P8w#<+vs-ecViez&a;pcOS6&@nJ4zZ^f!*EFAhE?YK z$lL+HorWBD#~5GGKMNgM3q6=|{tt{|*7F7A14NgYUPa9lgt{pqo4io`jo)K{uoxJh zvvqymeub>!GcKPlocL+7V6#ya1`w++!6V@>phGr2oRD=Ze!kb*w%dWE;v)R((x_z2 zR{YXXzbo~~2SH(4NJ*pDzI>Ks_ES;WcYt#I(^-p|6E^m9l&nVq^OI=k!am^Tat?>i zk&JY~i9jW2KgvvYmI(_UiA=392yWku7Cu-r$s)-+kOe$4m;>^Y)$hEjL>aXi0xLBP zd`(v|yM$1*$Q4J+ck6a**{Z6n^ciwp+WMOb)%T=Q-#};bQ+ubr@X)F}b~Thb#2k{E z*m;I8XNviXR)q8o8Go#lRlGHy4CRp`f<{qrlWV;~v<)a990Z_!XZ5@ANrmJ$A1w+M zjwa5bL1qSg23jr%Whfe~(1^fotdiCps2s>f_)yaca~@iFCc1ut9*Ts8<*^%Mn!7d} zZ}T^S1JM;H0O^E+?U^EEqN%TzrZLX_icuDXj&PUUmm~$-4|TYq60W4z!X2+8bGk7_ zbd~0SHKr-5QX#7Cxt`-T1Jx)}cxf{E?c)#6GLnYysW{$FA6f zFy5CZRj;<*^@giId^t1q5L%=iVZu1m6-aXc0dM)V04&UBSDp5}noBnu*o9n6S-4+^uZ z4U$TQT4IV&KrKw=W$gj}UFUfzH(BKe=dO%zZY|+F0Pkz&hZ`a^;U0gXG{^G07Gq*I z>37@CA7RaCToV1LAq?;Ax(+-A%8|t=ZJ7#sEbabkY$jssygRaHYERk;w%`rjJbBqO z5_3iVJY_Zxc7)?$IR+s!lH&$qNsU^624ZlSVi?sw)o9m`A}69-r+`l4#8ypXIP{|- zJfcp+(8>C!KFK%2I^l}*yJ?)lo$0<|PN6-}C$eT)g+^d-r;`&L?HE#dk-P*-%~c?2 zmJLKMT)QVRyaYNm-DV2$wsF@R20;QXOdYy*{^D{`!aj#itBbaC&d}|CI;=jVCH1+3N*@Ogn*R)Vk#4u!GF(4!D@x*k z`xCWfY`DZF=Yi>5dnJ-Qf6!rUnj9HC)RR0K@FzV7XVleH#6~dkoMc3C+gE1Cs?ldJOv35hTvoi(td;dV6zosc zUc&Iv71$Ljeb@eU@tE|5Udp1JFMl4bcr(oapGy?vs(;n*`pdOY41P(Vs1Yt=ALovk zod=($9G_Ry7Sc29{!B-Z1b8wX9aaYK8&0h5NJ1;_@4hs|%^V4ze;VM~i>Grv6 zU$T9Zn|sq0dR`kIaFzcSSaa6fo?qn`uS#w$w(BerMRO!*spikPk4eA z0PEVpKSt>f{J`|O_-pAJZPT_m5YTHFE41o@ox46kC6qNJzYb01K%;iKR2YG~x~{>R zG~2OQ&l<@U4A*y*td~}aYIR%7*ubve3YSUI%4v)NKl?Xxv9yR2d*Jpfq*WK%n3#I$ zsvy6l(RDb_F*D@oP0n%8<-!CQXfGBSX`xkBbbFavkJK_0J{-Ur*5R|5^XaIeD4dkT z)Rr_g*@x>0dZvbQuKX^sSG#`Nk+uQ@uzxCKY0k3`{(i^Yxrb4rrqD7mv|5~`{j&t@ zidx@qc-2_+5sG_gcDm-GKPV<m{YgBMy<#Gx4gKE?FW$poH&$jjIFr zwK1$2IR!lDfz4cBwkrmBNpGkB&Ix-1eV6# z+zs1eRkpA_g6>%x3()$=AbvG+D+9kWO)dkRH>AKjivmkZGDlazISE>lFvEK7*l4vm z!$|mj6C73r+p&Sy>XI9uTAJvolkAJo#8Ru3pI!oq_ces7vpG!2*2+- zl`4A@fHq*U|Dt)myzcO{a5cFIF;oRt2bn3ec?M>-%>tQ$U;TS0zU$h_(wK}{FV&2E zu=uDW?uRp73}n71Y$N*$Asinr!13FPpa3_8e8?ulxP~^hZ=Jf)X7XH zw|QZBI(!P-FPAXYF-3C88`HlfQ~!-z zwQrtCwo---&VCQbTj-t4qCk$3jjzBN6^@`Dn>@6?7*nB1ZrUmPu8JoU%4qZ4M`q6u zG=Y?T^u2s@Xgu{ftI`!$T;lAHOkt*0OSP=B*5%)sz20B*Z3$DrC#o75N@OIdE@ln; z`M6z^RlC}ZRKL=Nxt1kc<k4fvlKd*()@T1yAShNXrJ2ZjqQcpUZ1@s>X# zjC`~561AcT@bDS8B%*bNO~yjx)b0twl~kLsD`qUoYux89%^uH&;to}Eh1Ry%$uQiu z+sEffIu6(0={zk{FW&x<&_ z=LJ-R?36{_YJm6U4m>a0lkm|0oVW9L=NI7z)!YV)kIAWqtkUVUAaL2f`d6TYrj>5UafF z?5O0YoQ#!q30i!QvBpJv4-_A=B>1rGM2*YfO7!%bcWxry{m%%2q>@<+C3_lEuaXnf60*5lR!}>2W|3ojUrrF4FA$Z2- ztaV86G2l`H7+ZQaE4>dph>@?`k|32ix`_=zTt7tt8nbN zosH7$gnWTfWf(Vwdc)z8P^zb8hA=)djl2Sna(vQl;NsoOElpZVY|8blnN9WTd0`Kd z7h0PA>PKgGP zclG5GUr&&eIVNIdDxqN;H)I%xvx})z8ACE>fL*T7$TZM8;$beu z!N7R817;YTkNMnCGgvLXo{d z6-teDF%pHw&i*3*ZhKoOMt%8TSPOjc#vY*uAx1Qx1$R_|WVA624}u>h37s*tlbZCxOr7O|j$o^oGg z$LA>vjW`7~^;MPa&f!oz)6hid)m=Na)fIN=MAc%~Xci`R>6;*XTjCg|t~5kiMOL}3 z^iPalJ_N7Tf?SsMv%vcuz-)S1sh^(0Q#i{r1&rFUc$aCS&kD{|KA|MbHtVB2I%B4P z^XkxO@FDb;(Wt{+=^)T#iSfYm360hnSnDvz#&}17BBy*t6=7{qBll|c-PQZIvo(H= zP+)H+baGduA`sF#@z~pkN~O=!HkPlIXR55i)D$X1shA3oKo?bBW{}d~vonONw)Blg4|KF=2 z|6S0}#m>(8AEk>g!AAAJN*6ExuVCXV=vN&m@f>HmuQdxoz|DT9Dtt&5j`S{JcbpKs?q-Brdt2tEGq z%jrQKrN(N42)|R-v5i0P(cm47zh@3%j0Gri|dZ?^pGajW$H)zssC zmA|n4`dHV4vwwD-x_q_1v`ueDLiw~$@H#f6pTpW_*7~$R^uDkRpSNLbFrDKkP~L-6 zxiw8Jlon`UvzO4J4{!zIwkm3K$8XpZBu*mVo&|1hcRYp~I-i>bx#V8%Ef^aBwHd-!0uJ7^azFFE#@VoPxx2h`1VChD;B$iKSrt2b>U(J5I zGSXChE6WOQDSIDs_?z0-I#nH(IBf(xZLw4kMa;VOW|e@D>RK^BHVV3pfh8i@r}TXv zqS047jI#N8*n6KkMBqnzv?O$4$XzQb_)HRFwk{ogQE!`L$%q@!}UAnqI(P*1AB7l1eDcJeE3 z8E+@q#l({^?$l479Mb5^F4)iH?4<~$Nr#uC6;{5k(Rr4g@0Ip)90cS6#@W5 zS}uwJVGG`w8d~?-v5O@S9YZS{b|?Paw9K2+K(pX2_y^=3oEr{fL_uxotxPex9`fT^X>bOV5zDipH~(L zGr-w(u#|t=Bo5i{$)s-7<%&bkdRw961^fzLAsEvJcP93^xf+X^T`Ld;qk{~NX8|+@ z`LJSxOi#D|z}6m4-Sflo%4hszKdS}z$JT0oJG70sy0izDiOnuLW&tVn^8l|ox9Ww_ z+=UlKWP@-0jdM8+f}Y3;QTIxyn{gy1%2j6k(&^Q*pT}9rxrqder1feL1tr-Y4W=>d zIqX}(sz&1Z)K7XWY*uc05JOC(>#cEn(EgGmr(NaYdLi5l0o>C4vE_BDINY)#<$ie( z8BztY-xP8P3QNeCU^<2A=B8GJ9e|!`j*>%`l#zS4lo)MuYhT&>?5Uj+wB`hBA;DZ4w;o0qhC&b zE(l^oMlmeOJp5>_$aj+UA^Pbmx{2K-GIY%VWUTmi>#$)RD?;cy>xh=XbhR(A5U}8W zrJF#_>&3vKAWN;Ljxv39XRDNKc`7#&NiAEo$0M{*?oN4ERRH$ws^Yr|rDp-CZ9ml5 z0o#*GW6`+YyezZS%9b;$IF$KDg0OtX$d~dQ@nGtSD3-lA@b`WkRf5AJ8BcZ+M{?v5 zc@^eCl8p(>n54RjkJf-dI4r7m#2X0xL2MeV?y+#BKD^T8T8(_b)Y@hr-gJSD;r$94 zJ!9IENFZmXCbU=^jP%Jk%-Y-9qRf;gqu&mG(v}A<@x9xGNugNtMYY!%q>&4K>B4)|^evE~6d(pP{+7`&! zriZ%#HEZ967t3FsWhF6;*0bXGo_Zieexd>(rEt}+N{J3)pbq?`?$CNAs&ajPu`FiH z>bV?y&i=`SMKk^7sM4lrTR2-q)@jk3M4C@*KPAbf`~5H3%lTQC?~{WUFR7yd?GXm^ zQeYwcIA^P1=C4!LeJcp5|hpo`i~LNZo<+ZEUGg zLLv!_z#It#N#c%qQa&KgL|NiJv}^Wmfauw}p#ypuBqDP1Yx#0DHjg9Hm{YEwzvwL~ z6np+B&pJe%p0@use|SL!L?64$ho!Xc*DZSG%Rv4N;NVukk^aMrhq%YOuiaQMhzO59 zASiJgY8fo@w`i6~{qNT%InWcP)yO=zIsh>dA*}`IU5^uDXd0KceGK*M^k#O7f8!~x z0mR=Wxg`r71_tWXo&YPtP1fs%`>q&o7|CMt`Z zK0Ictrnk-bVobStGW)#dG3hqaP8IP6H*nhgE^7smK7Vg90d417?YUTJIx`~9!qM!y67;N1jP3CWs1(B*3*sR?#Rj0?jV+{ z8%&RC7vgc{q{}bO_*<=ZP?@&w%A0khF};IS>!ZDq!QG8Y0+5D7V*~=eitXED!_D{N02l6%PeBc6$^#n>=+qR zDeJUoWhByHHDg53>8um$!V=QpNWY~lzQ8nTEcSSYZYu|JGnX&q4Ei(d*mus@hMjFz z!EAS8qL+3Uj_D}&tcww%W>Vy_9V;xg@;BcTB|2YT5ccs8&rmCm8Vl;!zad_Upp+{)P(os}MeFCRu`n0nG+O$<^golq!uG z9C>be@XfmxkZLH71+{pz83i;mRt=pEzEq8ZizY)!<-G}zA4%^&%i)F}WgCKYeKbjo z?c+!kkA_n63#zPNBM2DXW`t3}6dv&lRln@x(%P3@k~xwH39&j$yb-)fEtZQ`T$y`J zIE_|5v2JkQk~yf{a2Fg6WXBM&*%ML`Ad2U*9#QXi7zWETLrEOErnAp#VZK9EKYhGc zD$c)rB^S_N(Q(VKmIRO(|4WGONR1r6S#P_Fxz;q1hGosmc zheaCO(Z&Mx6F4x73a`WJ{t5lJ^Sq<#tcBrlyJJO#wDPGG!%0Hr*IW|8l_M3pt)A=E zt0<4X_-s#O933@4-SBQoC>|%2&90K?r;WZ|)#Ns%R^CwZKX%-eQV*{(Xj+|oM*lH4 z;&O4b-Zx15Vr7lhc_CpUB9=S&oCJ5#k`JbE68IY;4?zp6hT&WnXA!smY<;chpTys+ z;jt0WF9ru-!Hi&r_qM8w)rIK6i?g6^_VoM_Sm%>OrXg*A8p9O;9xF_$2X%%bu299{ z^Kug4SQ{6$kY@3k97TjbH15E;V!eCw7o zzGv28nJJ*4T{K*basz%V8}6A0vY0G{5L)0hxn;HB>+5a;CfRJ)^M(k|7$ui52O5mq zl>nwJn#YNspD*vtqAYqoVmqzhUT^n`dm{1=_pE;0ZjHGz@PGeStJ^{0zRe8oA>Cn}oIj}$S_XD@H2v3?tNYi}{>-kJW;3TgKV28P9f1sa8O z{y6_qrK0fz6=pm5Hu`=<7PZSy9}O*LGx8-E7xk8Uu&k(LnLz9v)|+bKDMOe zH~tCirKxP`Z+QJKz#0M(=eH+mEJeY0@E#vL(DgWrV6u_gopRmkZJg|^tL7ahtGshK z-ge?!7unDm%&s+pr8P~`qU-r!jy|c}9)^5~ldQylW9&LC;@ppM-HfC=Z-G7%PjCf* z$^((^+@f`&gwQUoBGM<`nsCvmkZ;O3!&7JQHssCI(NdNaQEtbm?00cPm1R&_i#KId zZ6-ydcRD3hR|Hl#yx4U$jGLx;>~nAw@AEGhQC%jfCEb&e!X3PmCAW4FG=(jW2|7of z%uuer--L!}ww@v*&*(*fam}w*~OVCS5-zo*TJ1;+)$LHUm~$_t7d_G zUt8j}%HGU_b7?w*xLkdvcaAnxv$3YKzGLZAiH^ln0SpcOGZ|KTC#dGSndC}ub%ml* ze$T?^ovC9Jl1z!fw05CjJb1w0C|!je};@wdL<3&pP_ zGs1S-AKR;!hxl86t;b)(c||Ua;XB85Vz2h?$HHB?=q2KzU3rWbFq6z70(hM0O%pu$ z-bD5Cx$#JKDx)yXy5a4b+;S|nbfKf+p|j;sG!vR@s2Y zi7u3AUa7){s7P3!WzzGm(yX;A-a%{DD$MPKX6Pa&lXgu46|W>~6?La97(5My0)fz! z-98#6R2StCGH`AKexJtaRsydhea;L8tk|1tm9hJ0wCtb#uV)gDeU6IJvtMa=fF)gH z_S3etpA{&iUA~;h7(R~^cR-iwaFV3u^{Sr(xJTfc-{m$E;d68{v-acN zKivu{;SEp;PJ#}B>_NcDZibPpZ*vKMQB2lVlFTen3}H0p`wFg(48TTmAY|p5pPUZ!skV{`MNjo|(=S5btO=Mo&!*E8zh*X{8i( zUI<@B-THV2O8!;Cu>Hy+4Hvt7yZ+L3GeCc}=-^y zVl4h_*OR3c+WMb``JL{W$1A9~JmFNZe)fNY=kUN5q^KT=IgV6#dIqTKo%r#?VCvAIr`A z!>*SDQywl>p!0BqZza2>#W8ow*ddTuWgUKQWf_r-5Uj%F#17yj{@8)-&Tm-;+m4@9 z6+D$|Ab^Aaz9KsFTXQj^s^Z*rOZAGe8v@!6tn9LzzlwYDbUQZ+ zIWPbFnl$En6;)i^Q`pz;w6eLqQAI)&U`B5J{+&Z*)*Fg^(R``*8-qe!i1r&1Hyn-8 zH^zWX>7PRu?K8?XQW;9h#PYXjz+RRHVFADXGxHa)B|}^tGA)V0IyxcDJOgct=Rs6h9XB0n` z%$KNA3;M#@bLL-HcoN{0_ zfJsPH=L%sLi3`)VM+0MGH&XRHy2w~?3=H12j=L~6e`X8#pHK`19jhYyqgAHz)U`kr z_)+b+t~Wc~zUhzPd7yZ%g2WPS>yUNLWG`3};UR^`VnA_8YAPFn&ONLis70UGZ=>=c=qDHytKJwHRx6$)!$(jtpN zY0_tN^eTw#^*dg%J>h&q1C7H(p*S>5Ndq!a%2LUZffLIgNJ;%GpY~y*2_WZvY#_~ z0Xm8lMxC2n5^=A}B53-mDOCM=Z5jA@(j;hp=ccxVR!t=C{pA5F z8u9)s!ws(<#EwasdZ2Ocrk6$kavlD|dPeclKV*iSimT{_8yT&shoYJ}BaC zN|!yVvQ6b`v2e57_9S3oCfo4uA_Xz;Zc)_8CBaRz^`H67ZL#!@U)@K+*Cr9|36%h( zqm8$d{@ndX;I|q^F9RT0|NAuw8-S&PerXGG~$^F|dN! zci)936%KHE67;Wz)pz`4+IJ9ndM<_-mJJ)#rKPHLYCV7ezEruv2t+Af=RO?Ze>Dsq z)2T0~NFA@Cz{n#YJ_@D;PG9~qK5~ufQ+P0iaMR8eeS;nEi<#%SPevxZaQw{^TX{jn zQ28DPyMN!s?9f(%dQ6qp3arJaD=1fkRcX~_i_(!`>KdWF%Lrm^8L_>YA_^Z{iUEc8 zV^402KHxXaAQC8F%ULMEeDGUsgHqpQr+8*iRw8wi|JCN8T~J^V^$WljG=nuF6sR`C zN-92mn zBboFF;|~hjOKs)ssz87|R7fd06<5ML)7eOtV@TmjarWh&4~O9P4>SpQZN_M;edkx* zU)78rLJRmmvaa9l2H(exb*gf^^&C^Rx1^i3kt*I|`>Ja5^}vyS;M5{7CCf~L6^iho zsr!pZ*&s&DPSNb^6})$^ZTyl6|0dnHJSunVyxx#?S|z$rwioe6%d2nMGN5}qUJ*fm zg@5PyR`Lx2uKn&>>$lk@#qJMZv&R}AXcb>INFXr%6BLy=NAJJFJO5#$_#g4kzsorO z1MmC;RQ~tz&cBws{%5?y`tNm<{|@hP^0NQurq;jw>3>oqpZ+i2*#%2UX}g*F$DfXO zV&nt(@~6*n%4y#c-kQN*YJlZdVo-e5KH1-_h>+CrnS!<>2UzYu{S&qo}+&TXxr{gSy{O$phpcSQ^!sjNjg_TkbDESksxK*1y=!SM}rNsio%w zC(`rvvi=7kbC}CWDDAZ6`gD1^#u&M0GpNe#>Acf@yA%{#`F(j;^=UiJ?DKLiXt3${ zYE291B;RxL6sY^Kz-)KPZ1j-p+5^t{#5}uQNeFbRYinB5*I+QeV(#`&OYUnk+}>Mm z2?9ReO*>r+Z-4yd#Yh_mFpby8_0TXx4V-Qj$GsE%%-q8?$6zz>sqq8Fxkq&KkZHGM7>|NCp z44?LI9u9Bv#F29q3d`PX9Fn(`0X?Rr6eXR`dKA0(KyOX`vMZWmNw~(~hax1?DQWT@ zNi|nXsHeyApPu;EkQ!eqqf45^$J0O0n8`?A_HxGH6(tGoNfs!Y6oXtG;Mhdidttj= zZ3IV0$*r+D!u7>l!epYY;zeidua*17NPeMnwa`Hy+0yOw14|+88mRX-M$I*Zs4b4k z+tzUaXFY`4)iGk%GjzHiaL z(1M2!*}B1H8B_KD)2KM?aYqM$10uRCh1Q|0YW*BTP_CZJj>DJcMX$;;zswRP$$*Wt zuyQm1c`%1N%O~brzDssx9zHN_S8sKXEwIn=q3-vYcNNX1wI-D-6eJ4`5XEXc(D&$+ zsKD~%)inz(Y!FQ#$^^F$eDnhvqDf~e=?Q1X7L}iia~DLoA?$9JH0NL7BxBeQY-S-^ z0R}oPXJ=6l#Xd3oW4uxSQs+o902k_d;U~dViUTf<}HU26jNl<}>uqx#IlkDvsXzEWSdeo!RUy zV9j`F>}R7@ap(7-S+UdrL0o1e+SoV?6~?T%J_a_-&Tx3P*qSTvsw5K3xSy#1fVL-t6!%kmI!!-!eL{A+P zUN;T~W`O5fB3KM+=CW6nXC-n5Bg`+RyS)8}@R`gYLMXc^m>W_W5`e+%rY(?M$4BZ95Y?nLD;^+xEn^lb!#w_lsw(TD8`Cvp+yrbyfG( zUDtK~&g1CD(7nl=o_X^kff1t{xn1m9T@uwoGw?S^tA zd6f;7BT+DbAQM$IiH8gxUI<7kTmEx=_=e5;^`91nCg>faM30wT3}`kSJ5fM*ArwzI zaw^ub-1WN7|fiPp*?D4 zy{Cw~Bc&JkCQKMvZcu`723t*!p{OdRAJGK;?B<5;(X-l^*Hl9&=OzKmIulZ*E{)+4edf%J%WRE8oGDDy%*6H7^s0KvZ z1s{IeZFf9eXZ*5JqaFqpTr=+AnIaMfUU6ytO&MD6QHz7^0(Fo(Ln&XG`a}@>6~G_2 z^B*M|{<;1JWq~WC1ai%k#0HdoDKGKWZ09LAx`kiJ|L9FcDILDKG3jNj9M8$lDv0>c z!T+q_iqa2@@xSMrgLe4B%tYxn{RjjnLgh9#Y!==~G>ympuGERevhDp!AC5#six|ps zzqVILm870Cq!KS+t}VF)HR^s#QuA@}n>tk?OTzdz%*BzZLDo9_aJ);swte!*j1bfa z{xgp3g^Go3ryPzYb+^3WEyB%95PjEM&h+cSOwN-vg(C#<#5X&z(PVoFFCb9|etTA$VC zxL&k{X@&+cz^5Zy2tHa~9F#V$MjGJDKcHM1QOf+QYr>r7+xX%wP^~0P$DO{I z;flt;HQ8X3!LD6r#0!kSgb?bqGgSLDYdWxj&o?@;`PU5mqLj$p;=~VuI6g*i@pFQQ zdx{!ykqxuz5WJDBBIVC>)Eapx%m{i(mxX(l-dW#ibcnUWgl0Fpvoy}JTKmOq=@<-P zl>WO_NN%Ox$z`34P)lzf$+}#VF*i|bIPh&_<_KmNEka>|mQhKx)|H$<9m`Nv6`tjR zbi7J;;7yMw%gQg56H_Xxz8R+&1`t;LMeDEB%>17E8Bd$`hdENxo0&MyzSudz6e#~U zA{iHqE0+ZAaTE6Xlpf1-N7)A5?iQ9aTo_qXgh|Y!J|7`lti?+w454iH)18w%3V@Q7 z(6kz=B?z%_6>Rf}COyAg<0JAUd~SJz9fd9pApps`3wY!^79_^Bvk3cHXw?Z#Ybo0P zw7aW-WhBG1;Q7LAA54?pf0L*C=o{pA>KJJyO{?*asy9Wt-;?GC>js6kvi3m?iXHsZ zY_g$nk++1zO517Rys+$NlBA!@sb2IrPQbX`A+!OqtiCXsNCt=yk04B95S#Ccxcmgi z2Cb8$0i@2Xr7E7WQ;bx@W=xZ7lY_Rea^JWYI8T z^a2?eo;%K{s3{8(*CZ7DHoP_&R7o|zdMhMDspl7yB#l=i6~<+(?`tx`g`mXeZCzP^ zh=CQ23wMt3-`58wqcQM@ladA48fkR^?1!rb%RM(~C-2JAmW`r0iBf*`y;QDIgb^5! zgMS10F2Esvimc3~-&FY~ta8RvRcd6i90Os?gTo{csa;3PjM8W1L{DrkMpTV$H=gn; zb1h-;zM*- zP4imOBj~u?jFWQtTia{%&)a*8xAptYP!ZIP>3vaW7kikn+_KK7XdS)|P`Lh7iYkSH za*d2&Y0|%;0ANK!=x%?wE9LS(S$II%svvgBC;cZM(J<`*<#6-%ugs{#`Pmm~Rab@~ z`IKhO#wq2*^RJa}f+Yj|5i1Bn(#NaHTdKZVjB6N2bPdaRFaWEfBIS=~xob_4sFv)s z5uu^Qa~6%+@v{G9AR zFSi2?i=bUr?#xz4nIICRJfhH-m+QTG7)C>3gis;7(sG($Pc6rn?ACDGlLYcxa)PCn zdBrxxl{00xRVCu&HF34VHX?4-@tRO4D?VAr={2dAk@2-Y`l(oWzb#E%2narK&h^X9 zG-XN1hPc!H%P%QB^Z$+X=j-zE$m)!ejRyT?cLUAL6P)XfO|gPVN?(HkNsYe&JGg^5 zxH{nE=x1i;A7vv_)=4=@+157xm11XgO@}?dy}{;ruRvwxRN>pPZQvpgqJu_6w0LVo zSVrxp&Nu~LJBKW##D*s@r_nn_HX4i*lc~mhSm*ZonlEc!bQ(x%Rpx_m?6@+Ja#Gqr z{J7%!M63*0d8@NTD5)~%12+p%Z&n-BQzBFZI44N@V@Ek6M7o90C=GV~2yR?2DKZ$d z1S-}E1bR%gZ7wQUY}AXr5f)i)resej#1XdK{34oqtUKl$%h1tntp72x!IJ^BIE&Bz zTt|7)rxN4ZG<=h)hCVPTv=^P&FLR>$^=WA7*ZfU7*dov6_#i!u;rfg8#V5V<&u z$%q&&>ylUsjy?~HL@BqJGDR@*UvAdF{f`G-%Vu!g(}zMW<|D>`wJk~wywEpTsx%e7zI9O+-fhqz# zfEFe{HK|nJ$XnWND({}dGV^korHkEGOhqyp&I-)$p$wTgt!cSmGZS5O`bJtxMRFAX zt3G62Zh`9T`n}rK0tLdAg9mXvY@>Hqm2Wk9y z>l+Q}4|^3b`z|9^vR_1)X&myEE@Cvk-wE zn7o;3{O=#DfgH_nWqGV>^%jMnnhSXO=}DLGOb~{9KM*!$Ge7R$s_qE`OO({5TcrMW z=ZN#Mzw@7t>aE&?+H$s|Phrf-}G?~MJ3Rk6tujxMTeEZ@aQ&gom@Ym&iIoo&VZ z?h`6vGu|n*&&PLp2|s1^MAp-hbtNRYiTUD;T2=Y37FH zb9#ndhSpMLv@W*uAG!9jy^^v$o+Est!rCGevD(;C{jPWLcGO|q_FzK19s=}pBW z9=bLP?7gK$4ES=`6v0UsVt-#3`1|i}J1AFu%Y|=Od06e$a>+5O6aEbQ3ssFF)1x<@ z=T+ZFT;?h-j17kdwM(rTN43+VO>;p`9(K;1GO|jWWpKkTJCZXCra^t{*SBS=5C-=6 zsE4~BI6J-ZrFDQXUr64LoZTE?kHEU{p)K8t`8WNLu+1$RdotFDe;}%%tewe~HyEmr z*hXxl+b33H7;!oKM3&k)KUkNWQDcpktHRpZkT zz>h~R&ReT*R$7TFxO%eROZv%QKGZw3p?A?CF<#eot}trY5chiP6dWEld)_^2%;iZ| z1&d=t|6V>%aDjdz5~JeN)xRxa%x*vcR*c~W`hOtr6S!U#Tl}p)eDjWpsFt$) z0VOD}MgGps%%mgMx@sNzX;!Y(gQC=k0_1B048zhFBw%SKEK}5 z`}j}9{GsJVnC-GQH=Shny~sQnn}1qOG@t4}R58NDu)uXBbv$g;5`t z43m|HIk!`?D9$kJoQbPWFq%Hi>A#(HP9qs8<=Kcr-DBHq9I_Ieb zOrcZvTY-E+L_C_}VhzB@A+00`SINA}UjEB)GRPmzAK&fMsWM(hvDHZP5`mSC%VplK zd`V3IKPz=Y$-e+HUd5}e8Umbgx9o$c1*+u|qST=_W8jC--vBm+PJv#d2b_+M+HLEgNN!;A*je4gc@YBu{3gn!q?9%1p?{Ew;>nl29t!_{6Avjy2)}z7l z^qSvArIR&ixUCTXBYbZs9Z z6|ne{L|zFn<0lS?kg|Rgcf62RYZppt??L_}$B~Gw92s-b4ek8psOryXp^TYJ-Hj`M zaJ|WYCL+>wjuZGa^15=!#?KeTpi%q(wy)is-;oO64JM_Ns<%ov_={F)t)+SwjX+@| z9Nw(8_{$ckZ^gk%T!}|fHOn=-y|&RNC&kc#a-IyExYye&8f)SQ8bfm*V321dfx)HV z4ddF%V!4{$!3X_jx1!3dhIb`ELc4q*^`}S;e~C3SRr5yA$am31j+ZsIF>JK>7@`=c zNnTkxU@wv*(&#oWT6l$Z&El|_QuoPv9(!D3Fxbr)-HBh4i7d%|*)%hK9^U!-2_G25J>tlpZ^@afpBA`}3dOuo zTXNe}<`P{;+oUc$K|O}LYru)Zd(xR`e%AcY5{S2CIyZpfomJp4Um*O@i-foy&kZ}7WoS`7U|48@}yO|W4hfGpevffOo>9QWTD^orFbFHpn=p3RX z?sDs_Tztjp#SNDkzGW3*V@C-$#6+;XEWE5VoF_Kyd@$b9*VTUB@r<-zHHqmlF|JOa z%sM*oEy*P2@&jq$(YnB|wN)@EMUO?5SR)tBAh5iEJV83Z-_@|#*KmDFVwqK-P|%X2 z^K8qxB25ABNglJpmeIA^(1l6Ce`UuhBRXPk3S-|)#m(yJVWnzxGsviP zlF%|+p(FPkHKDT}|9?D9vQ|8$kEPZ*EK`dZ@M?tSlW>-67izZMXxtbGa(i1Td%YH5 z%?Igy^ffp>Z$I;(Z@ZKloNcnmE1UB_*$Jex;%Nk`t=`O_mR%Ko&NaM*GHV6 z_sbRYjnvcE`(1ZeR+pc&LHF0)xWU%l@&;1rvggO%o1gEf0kMJe2ivC5LBsp!_SM(( zt-YUIslIP(6-DLULh<_WL8|@BlhD`2-Tp8eqMzR3?)ujC{@t~U0Fuz<+4FI;BkA4q z4gV)6a<}ci{W`!`XUMFP(^ufKG}J2P*1cK)(NC>uhb_cq4;)i`m7kNw@@ z)({J!Pi{dxaaM1F)a)pq^&Sce_4wO@_8zL%s2if{e~*ap^)9jYcKqFrNz3~kU(eg! zzF+I9%~uAWpFCt03;oK=F4?}=MkF5_A3%kDgMFQv;|C+1_4f;{M_b+0j^_a(DmS6p ziW}oQRH31^*w>0x>_Cl}Tjn@2K?@YaqG_p9LSi3GEze4|X=K^3s9zx(?A}>9?ZZZk z4`$v<%l!a@mx8Sqvc!FK!0$)!;GG+Gp0k_Ftt^IeKAzV)camWNrbLU$uJ|%p7v&3t zKOk`JpxjEZgyE*9k5E85M*mzuVE?d%i*=@mpKypPpROGkG(@<1tY_STX%8CqvU&$@ z8pp{E=qwsdrDV)=ij*(}*RA4-yzhybaq*KF^YT~Y_8<~X?0_D#Ya>YKL&Z!zpfC!p z0*v76dVMixL)cLo6ZaWnK=&7m6iC{E_YdXj_9GtR)88KkUE9uwlekqOn-Jht{=Vx! zwp<{jIH32b5M3#&>5YTF3?ZMBACf zDP_27kutl8)GGRihM8JuS3)-dm{kSxcARRMxA7t#uy7QJht<2lDs{e*oScZNQ^;a1 zti^jw>Y~JC&T{Is@YuFA&A zPzY~Hnk>~}s>B~QkPMpq!JL_-3yvBMXj^gfxK|N<^@CI4yE72(C|eC5JSa};9^I9`_s2Z)dIGO=>f&x@O3y2!$G&j_z%ld4lhsmdmLe$8<{P6!xvN3 zrFo;SmyN4f1S*G$({m%N=}afwPLd?;7j&awlEe-i2vXUs0kyE6SNi1v*#d0f(B!5WEgMZ zieJD41jG4h9{R8E4m=075H9RP)cG5JlgVY&IXuk{a<3Etv{JTpfX4c`VfEhv2-9{* z7hz-}+Nu$P=*5~Xwpb>)XKY4=0K$HUUnmvo-#hG%jL47Q7iC)|p>>5n23We2vR04h zZ%6{t|NczAL2VIM8 zzDRX2V?0*EeZuun%F>@#YI`B?DtVSi{A}r9si7((>G(u)@2F-*G>5)K$d72lw7dpb z58sgE$x_86oj47Lm{8d6m)M>FXixgUgD9{|#E%QNOyC9Ct)-o7`Ko7qy;6q(3@Z1D z9Y3)^#%tzyaC-V`C45@73PCv*!a!UQHD0O?^&G*Xx2i9sn#21-UGx_CPe6r&?1R%} zCTK9Veg@Yim3biDw=#Z-hKg{^S@f`tn6;J?h6vvV(wzcJ9s&Ob#WmvzRJb>Xqxen= zGhb&4QHUQ~p#19dSPm-<0HMb`bUsSGiu#AU<(0%sPKAB#jN$vaoA{wlXn9-G98Ae- z>N4T#pAm^EvXAap^*>_^)CGdk0xtRedglMG&rZ-lS)H+e z&tt;MdBc=qJ$}zW7d0WU?PBx?^9CUL5Glf6Pnj zK_)%AvXNzq8p90Wwb6%{8D|7@7Sf#77lvL(V-IcPz#tqDi;7J?TtG7g*p7}>bTkRx zn5$#5H0|}>o!@Ncq?6+wTAwOh7tPD4hgaN0ltis5m^>Q1J8wckYL*+ z485>Gu8vc*;FJC45o_KMi-@KGrLhWELHyy=g*jU4MtP>OJRdcv#fVGQ9!~IQz2Yby@%jMs+U`CV_WUxmylHl;6kuInDTIsfPRS0>+f6bdD`dlL-TtDA6 zdiT_cgg*6|=b9F2UCCq)9j&SQ;PhJ8Nci?1y0$y)8Wn&(;*|_O8d|Yb_~^Y>bUiVw zhdeb!5q8^Pe{(!Hzqk1*qum1idO1!X8pubG}S-1*or% zUe8P6e5%lDTP3FZom-39L8>7N+n1HNlz9{1mb3iym31JJ9 z-qS~>a;Ua^dtP{4C!64pg0*sLow;8g%4B)_k1j*^x=36)o~@}pAbVyCWQL(pTt31H zGOnp7_&g%I*qyj(=d}v`*UO_j$n&|dCZG{sEUCmA7lN$?S=S=n97%I5w{fw>ei>XA zT1YDG(oKAzL?`3Vq3gJ@erh7Wl`ABq!k0$beeiN()i6iSLpw6u0Awq&=BzIB0(W0> zt(lyV#wye?IW_2$O13v;W-ZrXHR*u$)bjZxgmUk`A!Q<=u?*88*CZsW_NGk4L1&c~ zyoA`Ett|pfvaV`4x@!*jhIg1q-g8{%-(eqT9XtY!VmfwM(}dB5@2?mId!Z>CCO>jd zL`R;=^iqG9G{1g%d=FMHbmt`ZCv14kIgq^F4bXi^wRvbn6$$0Pw^E0q1*F#&6B!OW zfXT!&uG?U*oe=kz6S>_~!S8xQXG`=!Y*%f1X{z}u83POTyu92h<;5$-*H4CyOL>P$ zmI7cx0$m%pbdT=m^)PVw7egTWIFhyWRHeAR5+xPIFFj(4rpCXKp#P=*_MS$HeW}1h z7sMYapHUH{Op4YjhupmN3YsqURQnsP!v3J#ulNC^?uIbTk>>XsJqeQ}yAAS~#%=H24tC=_@Z5M7Of*E_4d0E@p>n=b?C{*8dM%O zD7Fp{7#B>60`(b>ZTuzmo>(FJnc}ot^TLG-#{r2o*Jb`?eJaR5AhQhi=0Z6SxJQ@J zgb<`GBCp1i14x1WQjE7Hm!{@fvh8ibl3|K87X6}|cecmcy2&;3)5f2)U!261MKQk< zvU}Wh7GdsuL0SIc2Ewa=mu$^bWtg&`N;LARsc~Y1&i829y|Ge6i{(Jz!+c|(U>6DPK9N%f%BLwvg(X+}6bF3$_H5syOm z>?===t8-T$^b1|U30bm6X49hAaG!o?*1VJ9HOkR7OJ_!r3OYeUSBcx#$KMZnYF|li{IArv;T&p#Pi!Y5A358kihTv@(r0p(0H(Fj(Idy;?`mBHmSN z{%#SR=kvs6+N;t}UZ92kr(twQ3;x&z7*L-i#f7yioDo-!%^=yF$@;8joEB}`)8RNO zoc^b%k*0j(oss+0q>;TvFVf9calA64EQp5X*@_j;q@q+8H-QG(n$_h!bc@2~n@ptJ<>KtcXd(-hEs0zdBe&ITycs)edDyp&-{)Q|ae95CW3VV+d1g@1zD@*XG>dT8o=|Usn zp|@J8(9l$H=-7Zf#$=!C;{M-p^eTk5{)RjHb``ItM|mML@#MW04%RI0#GW^T8t7y! z#oz|^XEK0CtkH0WEWQi#yBT#>GsxH+P-%w4dcPz;MiS)S_3X&|2SX0F-p&qomxh-=uK%|5JXzJG~;6zPZ&y8ep85UQJTDk zrEB%>z_%Z17f%)9QI@fFvZoiGcQr?c#WBpjv;9IsDTOP~@x6|{HT5rOc~`5I9N6Oc zDFIM9<3^rIJn1W4OLvjlAP~GaxcC`dNGrI}>A6vD&Bqv%{RmdMMvmFKY+AUo>;jrZ z)79MYSQE5w82Bi)iM#xpGi``U>k@m^LJXD9xjD@T{nY!yoWDv8f3KiS2#D$r9VYeb zJ{E_23K(pYm*t@=HSseE-I8~OOLj!_d{RQ?irao*{gTa6k|H-+pj?6U{)B1L#JXrI z^#Pd6ca(gQ{A5Z<(NmGPcdGqHXTH4EvYM;LD>%I@)Ul{Hg^wPdsi0ukm(TUYyoTRY zYLV6^trBbbd$35q*C9I99h)DE&)OGSPh@KxZfdoz1!tHSzPG5Ccxqb!-{2fjdcm8Q zBvP*!&&^NQFr<#l3H_4Bc>`On0c_1UuXb`oayIdN9O*6i43@xzA;bl7 zsDIrZ8!w>0t0P+S<`}rrYUPQAVxi#86d_RlvyZdU04p*2L3&K3S#Mo#fj6(|;;B(9 z3!#Ewe*Q#{acXPCoiMAo1TqgzxzzX3Am-*p8i+3bwA1nUh6w~krH8kEn1a551I3nb zx<56iiJjKzfYc~#H8JL62Z#OA&g8hVz*>HQPW@;lvymoL(Rk!#^ek^YO*zzWOy1n= z6Cx5cpWh;mr#4NwxsoU5`On0%soB-CEqO?=ODOTT?1*2N#x+0In=?a%?56i{EfJg*?qV!Ck%j@^GRahFh-w>&XmX&F$MqqMmf z934=v8az9XWt|*a?lm6|t+RLWNQ0I-I`w-is=Z4rcIbL9N$S&uz}}&aJf?c(g*72l z8rZYkdy7jWDbQY#@feQEeje9w+Us<9QYwhpc6{S_4HnKm^$_x&WbrWgXJ`C9S>{ML zmw=Z&J^Buf5{S=<2;_|6dg14rnn;@vrx(Qkvzm^b8XBMN$RN4)8z(s2gB^9L<4BMX z(keGd5gWEkgjV=GC&CM3ahtmS^h7obArN5iq2B-(6(Hx9TnrWzu4O zrj{G3y@~<$S|o|7UlQE%&=n@bT@! z6HNBX)|H(UkXO1S8)s#GVrt7ZS&+YFgDt=*6ZVRe^T4Yx-8UNH2NbUoa>9uf*Aorn{iHkYJS$!p`X{w+^>RUzaA>HIJqKHhBIF zH~yF@q!C=X{8csY0xERQp%8cJHA>ts=xrnBB8QDOL3(xWPJ8VHHDd{0eY3v0Qf?dSM!1Z?I_$(>j5ufg zb{W6R6++o*4kJ_pC{#ykt)y!v4hHqsvBKuq!WC>K&?7%x*IxygoGs3k=KCMO`U)rm zE4FnB2aHy8;{LeMfkQ?~cIH(^HH}o~WXbolmQIvefD0wFV`J{gSp>1g^Onk9tpO73 z473{}?8wpDKxnz)@0@)uw!i0^*PJXh{-qs}pze)tTGHL8JH6SORue8L%aDH%D@tY_ zjoq)5xI}ag30l0KYnQNncTTVKigCPC!cgie^!yox@IMDt6aqOFywtlzSq zK0goqKz8#TVg6Ss#s46A_&=r;|J`%(Kcp1@$p!xZPbvNjoArOuc=+$djQ?#)!N&7H z1FhPt$fcdW{iKn;0f*{ar(iJP@q=O}oset)6;p7yZf~RTC_ASa)O6wfbY58#SRx%E zD`zABeBRIa576r2>dXNr^fTA~rqgOv==0;L+xKNX)qVCOxBKfTb^eLDfBDMq>$X_t zHRIIC@~`gp^Cz*v-12a4YZuRk!C#}#o2&m^vh0T&y5!rsHCiKUf?v%%|2*D&zrWwy z9M{d?C0l$s|1#I@H83dl)ZhFM- z&iCf(?XUNP{kPO^ZzRCK|Cd@ti07G5re**B*aSoJ8zo~_ef{}eWT97ow5wRZ)CrjY zmrN}q!u90O2UNB{U$|#8*oRn=FR0ygu!0-&+e2#=P%ldgeVQv$RSRkVH)iRrSW%=7 zK0k*n7#2W`Rs}wOd0+8qQGh||Q{KDzEq~Uv4&>jRDUDj3h&E~5W()y1gTUA$0mRhK zt>qF>iPe0bj)AE$lFEg(l5VDKF0(8!8?J<$8I;!pFfmQSu8`x1f48ng4EBh1Dho>| zU|?l!>$I0_PiBSNkYKwD_ zS|c!&yeA2Auj*A4IcV~INg}oRhEM5#$+*Gjj5Kuz*hE$&O;>dBVWS%aqyLQisc8_n zV4NQgh7tG;#Qf%di0ghU#Qi}2f(K`-#zd}%A?pYZaNvYWykkM9xNRzy#?J8Z7#Z^<-@n9d#+k6A2J8bQmJXW;`O@| zUr7)24017yX_Ejw$1qEskq(9@<%ss}1qt%(qn5LNB8e9kTN4nrQr>}d@?W`=#IfV1 zH=m5vve-x5z#a3n-w2?mh(p{KP*xIV+*Mu?RCn=<$S!usj5GK^9dUWWn}%7!+Xvq) zma6weNS>rH>r6y|+G{KW2;Mj}C!`*75vsvZxd;i<5>;*;iE0v!kuolKpFjtL(uwww zms`nB*gc|^h7`iuY;E}lq!egq&p*{4ObO2kdqC_kFr|WI+6{} z?cREbf=IEoDqR0---a;yZf!K{ZV8Zu#1L;`B~9p|*paP*R+ zHFz_h4*@D;ki+ruzG?mBp~a@rR_)QnO1EaC)9%;_>19QEtIxN(dqzmirIxE`THV-> zPvTG4=!rzE8>Mu3xX=r$PLncIhfyaN6{gO8gSpXJ%u{6vP>eD?3yUJQfBRl2-v$bq z_IGvMU6fGaAL>zZ-JmA|+}=fJNg|pu!2BH}2Od$YsiLuNDDX`mPmU$^g{=B#L|mjL z(zpO7S8NM0QujkrLgN0gb+`?JKIM^;{zmbIQZMY@+9yc2@1BHxhC_9!g-y&`6%qg> zLCH8?u*XvcY&5=fnYBy&)QO{;h|_=UVv1|)Ku{y@CL4n$jneDy0Li~_!{`iaw>uoG zd@QXBi@z-{%@LU4A%;CPpa2xgl;?c;6e^5_nEFq)f`JFqzEy7ylM)0F^9Uv^E!m$C z@sov~=6XVHYWDR92d^T+nmwWREgY8zHKS=!R{)vdSo3H_8PQ*rbUz}M{(w-)sj^E& zJQPs*S9#Nv3WukIE)}AI9u^28^hGxRHf8KJjA80G04EpQbPH*lzU;SW-&&3%2t7Fs z+g9mdRHgR`8bwL#17ow%DCE0ycVx#OLl_Z;z}PhljJ=TMpc$&MWj(AR*({#^DUSVB z#rn+K--N8rVKGFvu0n#jc~;n(4{->DrNlb$gx;``OiXs8RuIUa5+gh89{gAX3->w+h@(k@FF>NSv&Bj#r6?foz05} zMm=CMckLuev{?Vi3GSceN|AiUl_B0n2NWsx!Yu(u=|QJP&n#nj2cSr-bJQ%N!OaSY$)f zmm?i6bQDbLfZ4)jJEsUPR4zpUt`A>l@gs%-b9>WAyV8-b9EC)*WLWB`JNsqBCVu3U9sOxV6(K}M4`%t04 zI64fZbbifCG$%PM+g|na=fK}V4Mr>weHQK0bxBBqp$9(b!HfrrXAj-paUlVRo@DS- zob!}?N`~1Fz1}cnFl*5IfLQ`n2e#XO7SxaC-i@gOPQaUYaoO&%qPY%c_^%q|%|T{0 zsy*XJ`j7{)A8-qEDa@wKw)C3dJSFr3?c_XV5jJpq(LH|0K60n9NO3me_ddJt-_$MdOzsAokh{%&8bQbXf>!sdHsk)9u75O9)==CN+}wDdn9QZt z`pL?+J|(b|GGZV`_2$Z*4e<#Mheq-6BV!^t6r-V29#oZn-lck86kvRdwl(o;m03r7 z0-3EUD6sv5=dT2ow2x}yt=y5$^y+tzV%+rjp9w&9$k2OEEOlqTBAsQcbs9t_q9^}K z`sXKdp69^f8)v=Zerd1#RB%B}mJn!$kV}+kteQfOjr1 zmF4$iUlYgo-`GgKgal7ZQ{8Qf+71KJB7~<>C`Mud0@HN)?q9$iymWRYD(NX#{)X9^mnhFHf1_tm|a9hXN6lIah((ZVI=o%gXQI$fFL0 zA#-=)frQztnNHf)$o_mPo~97wb%wnk#4?+$N`!0m1^F84VFv19O`jDhxBn4qoRPF~ zv9rc?w`o*A5Kaz1bltEPd$+te-*qZQc3xBX6qCTkM{d0hPdE(9ls9kA%MdX@gI96chh zKnf2>m<*_oKzY7aldr7SR@RPtT;#)iMEQ+X!&+ZMr()f!aqg?tieib?e@ftc-?SIX zI~`WLrF+d6d?6dg2iZl#cd;7OmexNfngGvIo&+v18L%tv3Tvh8CgqnYDOeZFZah(C z>6CXd0kV)qK~3plATmFfz{2c@G;-Tg86={4hucnFA8)0&YAWli#wPD~Wik2J{y&|K z*Qo9oDhRn1+@10l{|;waNIK*AW8|biAXR7(hOIkzBM8A71OC1r7+G+wsBQ+LY3%Y9 z1e~QxccwDhlgx&2Y`@@~rip%G6Xyfc=)&=}mapF!>B<_h*1x+~VUpGw&-j=CmAjM#+k~lC%2Lm>Mc_dJ7Yv z(Ti4^!H`(n>$u8lnt{0Hn0CbQ8k+q{v5)$(T>e^3ds7BC8{^^XRN2cTo>wEK69iV1 z%Gsjvg!Kx7BunD~<)Z>y3W_j0PR-&(3c(+bDlC*8_A+va6uh4w9QA+5OTdRnkLoH% zp<6Er3Q(xIaZ|HspM*xA8{TNWh0q*?AF@-tFLdR%SP0tRO(Qhf8|MHCJcyZ((Fhj6gKu{bXN>1a?_u)zE z4!5#+%M%3!*cF#Goq)XW1y7Mvcvx(Vm;Dk7gNa}v&jG#O4YmVFiZ*>mtOGv(*x?d9 zC(6Cqf*JY68(&*Hm}AD^Juv(}-DchMcPH=dFkZzd(*+#RAwQS7@zZh^30aVIQi zTWe3pB|n`2FeYc_x6(1!p;{WyC;XW&hyl45Y$eknHLM>`q-8Icu|1Yl%vR=h)`;VA z+1RXBcyYj}_Ka!a`Nn-E)k43)VdEKKSE914pmE`AFmM#S+4EV9M7d_mlUosoA&(p} zKDh)m6>`6x$zYS#iU=bFD~6Ue_ble-#dM?nq_-`I*?9`({WVXc_$`}1fJ&aAF;<^2_`emj^j{2IYLI@gXD6MhQ$j_8W>;)C|pssl1 zW2O|3K0G0CTKDF4&e>x%=M-7hrXtc5dnQf_M z;uRdu;k&b_(o@krFzg3L9F9}^%^IGM4@o>;eIO_EQ-^-R<~G^FIr|mKm-DN?{y9)&e@>~&gRPJj6sG)saw*OAr(=Ne* zrM*1v$7JckWV~=9Aa}%=%Pr?ZN(Qw09XmS!%DD{d#t&?O6(_QZn$EL&@Mx~C7fTWQ z9u_~~TNLZB3h=v~8w7gLB(MY-Lvy&@kEce}c)LuG{xRdFYObsbB^w5~k%x@tYj5_# z&7Gd0WaFX4QZ5(8YJh26@ftZ@78RUt>JEO4{3A_1pFiHVn|p>}jMlJXMLj+bG35yhdW3Y1qr}4ZXBN z7jC)QwmI%L2;4j;Ei1f)hhd<3xf?_MYrnEH_ex7Y66ctfL5ARtqUlbUTJU~$@xJ*G zU&EU2#wZ*mPwd2t*o73|)NskXcOQ0A&1s{Fo)7iKQGuJkghI#5DXwD&=gd^2AUDd^ zNh zn6Yes@R^AI-Z6-gvV@)b7hf3i@d0H6GKq$3P2^FriqX=#<&G{HD_`pG30F_uwz$X; z)ckoD56m_XqwRpdT=8i>wGYp%G#At~Cm3G}(Qw2|T4$YltT>!s)?{6TO@?xD1KW<< zIQ-t&wfSCi>RPPf=UiH9oF+9SkCq7K>S&=e*wD!BeNi z-BnyLy(G{|v#2T~O2(p+IAQ%~>phs@U5L#3t@~gcf7fZ2<1fYG3<8)QR}|syP$v}< zF;__rD06S4{**+2d)^(fhiKs;JwF~$qn>s@(xdUxfWC-W-}2!_0-h{Km6*)IFH~23 z*rP9dSaNgMzVu#LChP+WldLJhxV6@6osVsU%1KT&SST3baJK8nNiFjN- z3VO0#xGkfc*+u3}VKtN6-60ek88ATgCVmbPL8h_IKe8w${tWT?lWjybG>;;U?6it2 zH6U_w8W(J(#XBW1oP=t$A;;}Qmd&R}iIuyb-aK=gM9NUy&*(3-i7a2iy1Fa?Bt}#Z zxPkzwo;DX38Hpn-NEs8-c!_DSFyiwqSNgD?|wf<*jyXtFYcyu)p6mT)+>kS zzaP{M&gbb!b#lDy-bWMz|6;a${o#(Tx%A%D4Ge>R&tOfe)>4qG3%Ow%fc^5(eM@?6 z=5Xz|J9E7|-!Qq{Ng}NXaaM#DY&?u+8v3ExHcGN%ijpEm($Zc%+p$n_C;xeT;?`1q zS>AuockORaVniXd&UK3n_(bBPWLg&5zHblrt2L47{U^^9dKgn;9oX&NExa=h6ZmRg~mGa}nwJy(d- ze@@dvj_sT@CL=Isri`WJt1hwb^x=kE?dE4uz>#HYa}x$c=be*hQcGH_mBuWB0L3W` z+xdTJJE!2t!bRW5#>Do-$;7s8+xEnEG83BC_3HlX*An>(dh$CQlQZOR&){rmcbGxK{V47yd~X&>%lJBvif^CC+{LLQ0vTXA zwWonF$GE|cUOQJIi5eib$`hv{Rr!Kt8QgtNl0sx6sKh^#~S-!a((q7e^rD z6x(gm51y7yXd|lu(3pzh30$6CsxBsv@t;l)U@n51EHWu1VtbbI8;By zvk|%I+;!(B4}OPN4MA29=30`4Se~tAxedjz9yYe|Wp&4DDXy(|V? zd%!VL*6(|5Ug9klPKA3l?%&opVLCrpIZW`k9!|~@4`coEsbEI?V+9Dv!*9XysM|;o zB0o1N(~d~${L!k)vfrDhD8LkZGWPAAKPm?T4Q^kelqU*R>=(oiR06pp))?Y9rt~QD zIo#bHAD_YKy$LS9=xoo!EYCV3@zEnZjY^JyJY=#AEER=pM~+h3mF&CaxBYQ{&@A4L zv;WSv`8Q<8f3$7>m0I#|w#`3`lK*|%=AUy||Jk--{?`u7|76>+aWQiI7Y@l+xnw-~ zALSCiz+&bm-GE4_7Tg<%297wko+xq=FMp9ejEu=Aq}y@oh6qk9y?x zGQ{O>hJJhO7i5FoFW$HS|HtFj=En!7L!1B8@Mjl6S2vRA;->dc$Hu|najUDC=+o~#d&nWy;I#Jj(&wnk zd}HGQxIfpH>FIh=wX{|ZKR)r^`TDWx+_L6->0n>>d2I42PuZdJiF!ZxxfIXPOX<3m zdhwI{?n_*P=h{BV`#kr1h0FfqR1toafXq>{WMKC`+3J6IYVSV0ma}j^8Y{qeH~z>qeT1Ow-h*}goo$2wE|(D0EGsfe z*>Je*9J@-;-osE*@c<@E{^QXkeO5)>og&OLBFlChiInU^nt>}*2_*|4Xg0c^*Dn6! z7?6Gjiwdsp3yD6Y{NCn8dSp=d;{o%2&-lPJA_5GF^+uRlH3i72SETq%5_*#^U1vZI zF=`w1T_{mVdG}zBHn0x+UO03~skJnuysw*B@Qt>mqOth`T+LPDud|=3?k4?=*XHSH+lnsMV`0_Yen`nia{YZ0!IkTtefg(4naNQ z+8}6#umwE&tOB6ypc@>OtP2KR)*k6s=|MLH<&X$r3SWB5U!4xMzFmw2E{uvlg^FaM z=?)ro5)h;~rbH#=Jzmh$y)axavJw3In7ea09}=p}qDY^V@(QsjAoUT{458c-7l~&q zy;o5)pT^o;421~!uRJK>{(6HM|Y*vgRXRR`-btTsLKK#GY(FBrh0Dwx|P; zPg8hhg;>YDg#ui0R_Y)Tt(as4?RzTBQ1KOh)WFOzD^*9$`%yV7FdjjQJj;Lp@V9=< z?KA^Q$s0vCtJV)WccGs%%Y__g#;#l>xl$>UXQ{v;i@V$`xaD!-}UE$pGhhrd>7+s zxg}mjN~)N$w$I5w)OF^rS#etzpqf12QK=BtA zoExh1kq>hzLdKv%P#uN+;H$Dx{0K$=c@9oAiuReq=)WXLQ*f->6EJ`zWQaTW2M@gX zycOWBjM!BBXSbpXwnyL$#EA-Vcr{!1xSkha1s(t<%MN%W!*z*6CLh6G)k67d{pj(i zElTKt@%qHW(7JL=FDsm9OREIg0W04Ot6@p=-7^AlIdv157?aJJN0nkO^Yl3-)A3o3 zX9Jb6>D8$TDkgAQduptql6Kp9A;{Ax#REp=!(tGB)nL(Vv!4~~crZ~vX-Ha7<+*ppLN>ia2{~CLd7)0$>HPSL>T`Kz$*Ww~7`D6#_Ikfw$Bg+

    q^jO_%Vq)j8yD!xnKVwYrV{{vIqHO%A6P@%M$7V~KWCE$ zRVj^l_7+3&AartHyo8S_Y4z@H;Dprx?$sjjh&ne~m~(k7A$Vz7aVZ@9)DJyi1l})!<1v@u+;ey_IGCdIS2cnfwrPj2Ko4}2M1?% z{G2tGvnfX~w3TbpX8oWHS5JoH>Nlr!3?XC+4Twr6I}; zV&66zuZRv(-)lJ^&+1dp4;x$|aT*}mq2iy*su@1L$Te|Ur+FF`m+euW;vc#@CBv6F z0v~wH!-?hA|I7iDW69Xx*7p^5b*Z9lErv{P+aYt;;q}&r-3u1$Q=@Jrcjcj)HW`q# z3JsS{jErR>E!}&aazqRu;E!~~sFz?d;&j@9*#Z&|ogsic!YPI2l7RjeGu6Q9sibU> zsHN&K%GoCEm*7my_)5n!qo~X?KpkeF-@C8LNY_%@Ah++G6+0xp!Zdc9QS{i#pD`CT z!g1;Kw@lU?;9f@M;%Y#-|MSTsu~C>e`l**n&Awl`46QYp9zL*M$23>CE111c(McF8 zR|~IdOV&_$3KuwC$Z#!wa993hB~B_D!^JnbC#M^T>I?&mpA8yMqG5EGY$fUabATe{fr1EeLUc=+9X**S7r|&EEm3%~|%}WA(b}42+>5?BEG4@2#tH!DrT4$>03P7kMKX zJRwjw`ep`}ygNA3*e2hSVB3?yr=Qnc?M1l7j!64v1)Ie0vh;*&OMU^#2lQ}`P>Z|| ztZVn8F$BUr?Y?>Ckg$7Mv}Y7Rl{X$qD(=Zl=%d9q1WVF~vmB$XdJE43`q!+fQ~Y$k zs0FjY1#r~C_pQKb@K@UUjum_Q^aKy%i?5Qx3P_Ms89=?Pt-qRsYg$@zTLCp|+I=d5 z6E-$B*%mJA5cJ68r`Srd43GiB8Y-%r!3}c4Amq*VTJpWvQ!nzH;p0w9JrkTj;5GnX ze6dBuM7kNpwhnX_yaV+#i%1DqR8N5XOwuVP)BL4Ku@spV>f8g&aziifm$cI(5t;cO z;Ndb-VK{&rA6Fd>NbSjl&S|ryP~zaZ0s7nDD#`)UDsILIsY5Vy^0rC|lArg6%8mx` zsupn*3gs2AN$DaG8!H4>G6x&5n_O};9y$I^pAya&rIG5+_TrcV!oTZd6mtoZ7 zXByw?vKCEdnE`UNEqbvvtM%*W(vB1kJqcCk{ColL`l#qL7;CmMsLi6?GWG6Zk10jv zoR1VUrPTTg5Ezwi4hoMpNm_eqv#t^Kq6|uT#Snfqjl<#BHN=1AL$B4f>$8!f&)+H?DT8di1VZn&lF=oE3R;st~>m3UO$*@ z2RJZF$GZvFZEps+d&kE&5)(A zSpGw9m6qu4Fze83DTFbzd0m9w_@)A!Pw?y7^vPaMb~vwJg=++nNCTg36vfXrFCXqq zX`xE+{=7jv`mUp&Vxbc|*^vpXMcypK1J4hMon|=Wra@F~O~}j#&bpX0J!;8wGU!-! zE>9<^FnU*MVr0bvG8Yl!Kl@z4%nw9XI;}btRb5=YbQB|86MWaTh(xC zC30V&NNw{H1eJi_q#3Lb%?6hDPFDJ!fM-P3Wps%l`P88;?Z5J}`aBwTQ|Vb=ws8jYF_S^I`njA@X!sW1c;o+u zQ#XrqDR*mLz{rt%0FuXjoq-?*?qDpO8h~Q>aKJ5AV(%J zMY#(QRNqV0>uSQeb>m$F4+YEP{h=6z5^%M1FoCy*#rkci;j&|{#BA}WcbWqZYL&D% zmb4BtlUBVHi*QUuP+k(dt^9`}{R@vsy^8{T+}&k9UT!UNSz)OA5%IIVlto?zsfhlU zX}>ZZEKdc#-EXiq!hFv?`f1A`nXpsE>jZ43k<_Hwtcg;PtI(|J&`QTScdqrGb)amk z>c&e!TklgCL4jC;)?Hx(`X(N53=)u0#)?~%ZoBXTljNy4mgbg)hWPAoB(~BH7W=p# z%npE_V2HX4n!*mD!-ScS}D(Mt&49&`$Zp zBtG8Pvd`-Fq@w8%cLkvP--w8`o8G{1lbEUxwY(=NiwRV_BriQ4@+`Z(`s&wG>y27N z(zwWO)+`|c4ziPZOG}-<2ymJ(W2Lki6r9$EN}N%gZcM5$4tC8hTXl}KSYIbnzCrzp zbIJZIN8vw)|Nlov;osQ@|KTY7OT+))cNG2^JNo}{6#l(^@!vWM?Ck$9&EN;ZJZc~O z{P-_Nfyt&5AOKLPuJPsypz9x;!F2!eCz^89T>3cOUA6Vcbpe)@o! z`M~8)%N{e#r%(6DKc>RJiVc@NJAZ|re};&9{uv@_!TXu{NwIiKJ~J~d+U$P0&9OP% zINsRo#=iPzi0C?|r{{CSW+0ZfXD8cGwYV;-C5Gnni|6y>e&bl)`}>1|W=rSz&$HFm z!{2zfimQ#hZ|BSF#hupaPlKt?mIU7A%a-<`@H!P-u_a@?$U=U z>s=$OBVu7)hx-Z508+x|nEBzi*U-=>V&QniHQx8uu3MJnj&$z7ZMFKbt(y^wXOFqYrI6Mzdei*C9UA;T8a@?Y zWfnCxQT1JqHVlv9b*DpR-&U1B(~*~weF2XaI>EV@TSK3JQ_QhOY-&EGv#egB0&Cvx z9$n05RVw*_$(z2WKbyC4@3{`5DmrRVj0pT6dzOBiTop0!&-$4@*p=_b~eOZ7_5Q6u|#XLU>T2*=BBQc786IgrxV zEtJv*48lT_hO~br2Al(90O!!RZF)u&0o14qR1L|eb-rclbLZDNY0@)4fO!){8^a+g!(zyv^ zX=b-Eg!)_9gW9D!C53;L8?Ya-GpmplbOUfE3=9$i+y{dS;_rI>d^Ce?+06TPjdxq? zMDrS#SEbDJ%9yISd`=YHA9QiZ&rcAV?EGu(o1jW&s* zNY^79vywglt`K7MI%8qr(G2!c34`n!1*Ua>HkxTut?64YqB;LQGGE|U`N0*TpWtvF z86qrlw&KM>g*o>~RP^lx=CmwqEgX|1hVdz0z-iAjBiq$P|d^@5|e`!DOqidQOLQ z>qrg=1{Z>%`ehkRMX}hagt@?FiZ!|$)Qc;QCi!%9S2ZG~0X4!F2D+I9ke?+VFi{~^ z*R?dI!nDPHgsF61fqWM_oIOhchDjDPWjJMdSIRMj#SX+ip*sZ_XZQ|nci%LrR~&Xs zJ0s>CTzDX>;%r^e)HY0<0^dd{J@>npUiU^O*|Dn@wrz}c>1Su12-BfnVz!~uzfSO~ zyn*F%FTSegH+bcBg4B4Xrs^ovajQTv`olnTl=fZ@W>c!Lzbsb2C2%@tM0DH+!cY8+Ob38#)VqyPsG7-q)#%hPp?33Lhg zgeCy%bs+^9ihuEu%Fxb`F9q>>KdTOLLx`mIe%~zI)Cy3#$t&vQ=w(|q9!})J^a^C+ zPx`XWgLE3oZy=jvj%Y#uijrCT0e^JC^e4Y2{-(dsmWXsUhv4k<^$mjQ3%R5XMv4H{ zjx+_NUNFzUp2Q#gp05Ucl^U4Q>0mp23R%TE2sxFaGd55oo@K_I@ML%@M#Ll8?Ju7* z=Ntn99wb#YVl92{=Zh^qyA5yL3T2ts(*Obhg1z`Fmt}$Z)rXGL60PUN3A_=Z*(nSmzZt_%925g&(frKc$f0O6~ej9~<#$wNq?dOER%@Bg}hS?aNOQ)b}BKt2S)JCPp zV!Y7Z+H-%H8jV1Ptm4~%k8QNP_QY2YYPeL)bE$|gM^D-n+t))>f0QTHC6?ol$Y~ML zhcIw6K(jz-WEy9&tAl=s-hM_gS;gE;y}8g8mi3_J}W0o6M5>2ks1V#_+pbsEK|4|26!n;D84ldJ*wm>HQsMOWJI zmL6jw3sg&D$OA339tq0<_75|^vl4kpVJ}%Pqe?AVJlODqdq!NT8iX?H5YAv(_Vqba zX~+NW{>jgreeYRKj-Nzk$nMRjyiwIfj!4o*>r)>uTi*D-lm6myqvMf3p_aQjVnPQE zR&4+kSXJaLUw8EfnI9jvy;wr^RsZ6&K;DH&*nFFX*9uUE?Kt=(r*~_9nevmY@n$i!XRivc#+r9`uB!PgRr!_`YyZSQ_ zH1Az9Q^}yE4XWp)D*al(;JF6b9|9C&3GKP~`}~rfUYc&;HhqJ_>%s0r?Hsa+%Obxc z7?+r+WEae`Dkg7wW~V=Me;BO;)#z>rn2h6LFXM}hM(j8+C|^L{ksJ72t>TE?OHy2R zkHK>*pvn$)ofdtLeMbKTJ?cVnKAyE2V5;fqF3@^tOjRh_sBlZi#<=U;kX@Qo-7yd@ z;V8kQHzCZv_1;(n8DkesUs0-;{GgqD5?=mppjsSGLAvvx0ONz8C)1G`EX3CJ5A1y; z6%WDyIkAT6#jVCM{)DV}0d++;Xr=Cgt&3QyBxN?5l8y9@E8D(5HtE^{2|HEJx9f+J z`TX$0ot(^ziMS(SR%0)hMSZ;oY(d)H0g6WN@>C{m4$iFSS$c@GKnL9TetI9o#I)*C zCDKT^$^t!AcY0vmW<-}!x+%NZag*GV(4Sul3b)~Jt6d1xX|~}4$r1*_j!2( zvuwVNm8`!&1q(kNGV>I&X3Pvs$%m~wi2weiP{&K)V=TKVz#Go->UUz&G7nFRffl? z^0X@7(V^Cb1R?*LJdecBqtIy{04(JTomS$42)oo}5o}E~Sb^@uk$6v~&O?{Yapw%b z0iwB>FJiZ{1<2SUpi16~%XR5_(yt^_K^Qx5lL9%Y>IStdkf11=d z0yI>f1=w?A0ZsQB!L5X|c)iEst@jh~Un(Ii2fLTwUq-uJ!&x#$!i$lf!>_y787uZ{ zx0-bXPuqcP_$BbYew>pF1uo?62jbjy7@tjI97G0IiVrI1gcUF%3!#EY9v2i08_cVY-KCf8rcDii~}H}FBS^fiSQ+=y@|x}b{=_yZX0 zqlFuDln%6PVJnKiS^tu`oG>LOfq2p6E;p=TKEb$kE^v!!iBDjM9(D6eqO&I~pi7xE z0MS>ER+nkcySgX`cq(PL%TeRFp{>)2ZfZOQUR{-iY&iM!P7za24t$yg(ehWu^tA7a zxOWGh?VYQu8po*8DabaxjuJF&1n_++J5qw-`x9Z{G#^nSYhl1`SHzrE@aop%G^c2$ z9I-S?`ej@6@VHbVC^&b;`w15KtN+%@uHX~9dW0y!!;GFJQ(1x&y-V65W8Q7YJF4AQ z!%-Fc;CNRO8sW%jKtw94Mwjt!emVpDXSSn-iF?Ra7IXKE_u$(*o%(iL=FuC$or?q` zxC9J6%DvPzoyAR@(nN*7Aj#uJ_0o-C6y)8NG$(Wys}Yd!u{K*3(-`l4BW&@`t8Q~k zGCLXk7#R-1!~xgi-~PvQ+`?EI=XZ86X|4-IH?aA7?aa>2vt44O>xXG|TZv0BVpv=l z;PFU5KgXV`HaXQ<+2gC*g*EX@@1zqn!PR~TS95NEz*d@?S6xE?PSS|IWnFD|EP(4G zjhzaP*GbHL5j6avQ8g&IkX;x%)q*&~0pXY}>YN+crA3)p5tRo$S~~ z$F^;|liZv$_g0;AYiefx%)k9}SM93()%ULVSxbw*EdGL@CW5Ki8KHSpvhE2Gz8j)F zEG?Mbh3VN@wLj=xK5=jy@gH5h1+X3rP(_0G}xN zNBD}!!y%n=)-KrFim&d))KF>IE#WVZNUi4trST{CKi=6MU{Gfl5U%R@jrNEgqMw9% z6T=O`V;PlJL$Hf&@}&ae;M?A4yG3F9+WnTiCl0%$1s9%r1UOQZ~$qihS-0 zCa92$QHKoN-+=vBVnPjf=D7;u-x9!GkW_WSh?}tN^!$)T@Zp?GX-!xakx!l)C1hwl zU5+;EMZ$n1sR+|-H8(|8jNy<4zrmwW!t=^Vp=0~>nvtI(y3&)>>i2J@`N^qf-i|Rm zjN7VptqtGGg)qc3rhM@6UND_VLf`zhSo*6(>sK#!gtB|3wfKGLuw{m4D?}EKwi0c+ zLPWbIedWm@vH0y?n^DTzk_AagfcDf!0T;qPXs#xIEs+_Z38$HpzfLD; zY~Yn4n;>G_3oV51k+nFJsXdi=cqjH3jitonmKb+$dKoEF*zump6#3g&M>Qh3>+7gO zN?FX;hQn@KdlVuB0ln98a9_CJvGWUhW1qUIvM3L3)YGfZfff6th=?eo^5vH*6n^8q z00~NSTrCa(=cfI-NuK}*|BQ}xj!M!@!Wr@7pvlJo9BL z;WaKqHfGDe_DI7EYV#_sbA6Z>F9{+eR&ow=)-V$VR~~a?-3d&h7lqLcQ}_plBLEn7 z74%uTAF#d1bc?z`UQ7DfYCf`(>4<5?z_;fhLMoG`0uYo-T_|vPZk)S5E*8kUUyd2c z0m|j%U0N2njF&rIYtfKz$SR&p_6sg)kcf&FYugIx{N4~4JfIz^i+c_Iy$T3E@!Fq0 zw?q71mgxGZG{@>}TeM};Q+SU_2Nx7Bi{?ID8af0=9vKLhfAkkMJFO|y8{7q+Dq*5Z zhgAwNe^n`PeW)#d^gV1FE%&~ZAB*`4U|vIZK5 zq=gC-(K2k$fE@>0UmPpMcfp9>IcKzK|JaqF`P+pRWDz?ofpRy$rwYm_y4qP~ zGO$|2lp$@-=NR{6MC$YV{Vqldmg&Rgtz{<-6wdEA=ES&_6i3U4zT%YAM3oRaq8q`> zrJRD{^le^_(Q=G}z9cUdB*ghB_a7$Nwz0FFQx{b6Y|BpMVjh~C8^^tGnWHzA_u{V( zxGbKtR7O+Wb_UA0HBxN?@t(%b4E5UrqwNX{p5@>pSAjMb`RTK6{K;$+t?4q^t#^As z+@5=po&MnqmP`+N|55(#4cXJ``_1AC-+EVg?v=0rzuP0iJ1hKG(cJw z^htS@k*z%o^MXs6>EhHCB&*xXvm*va!kYVdyj0dH#oM2~7P)znF&wDMwYL3qKO~K| zmp)kmNA};)U~rnnoLCB_iT?3~aRBo$Jr?w}?#!Qd;!v6@-t6NG#6v@G5&3^6HGx6{ zKG#GslHsPFelkPDBqP)gR52q1YEV%~Y7Rc?tw1Xc`>W0CLof7OlCf2e+UE4(_CkL! zY-A264tQ)O5PU9nqRdUR{YpFz2csmNFd| zxT_gmq@snNH5yr+e@MXnJdhHAe{PEr-Z)Svv-o{>HGG(KjOf?nOelxBic|Uvp<{yu zZr+=tB?%xLbPYPu;34FQW+h-a+8)JLmSZf|Di*eNS}+^rR+|-#G)H!ScDIrOD`N^W z`iKKs*Q-41=-b^oljU;Wl=k)e?}XwJNZ#MVKPB!0s@b)e*7Ow(I5A5Ak8>g4Lw;Ox zg1%K3b2Y-JDCTG-vzE(T-sd4C_WKP1eomEVzopX>)g*O8wls$PfdNS^we$Tkl%-hR zq#d!;zADmK^r?Z|g$p?Gvx(bz1XfdX>WcCo=bb`&QLE zuts>Vn)Cg*irk#ovAB~EX8R;L8r2khSS+y31b~kU&FKX3 zEG%$0RBrZKA&}?LOnL@3(AZM^P87ru^!80w+ALpX_+#Ov9U&<885^-%VHM#4V-1dS z$V9)q%gTl^)k(rS-LNx!!1#a(&YMmI1rpvP*t#3z;VN7T#T8OfVBNT+~M zVuTE{C~|z^woC;d{tjD%3Cm%TTd?Bs#`C%%v>oT(X_x+SMUu%B{J|w3a_{am!yd(s zbDs*1eZDWQdKNIDo`JeCVqVL=6Lg_ca}Qpc@V=kIVMsn`HI!UOC~oc}&J_>LXN z?n{5ij$ct9LC9Fh5qiadiIdxIY691=^s(wRx=y}p$H~iOv_tNLaVZ_j;O;fbd6M8H zQ#ZMuoN{)ppT1b~12bRuZ2FlgfA_b)Ue3q2_4nimzW#pn=r3I}45VKB`+r-H9>^Bw zXQbQoUp{jgPRB2&br}!{{s9MGp5F}&J}={p%I;hKU!@@JtflsJWVtr?{^jz?1nb@5 zSz~=+dt>SIXl{GMpjyYBP2pn%@Zo6xu~=@PKHTs&{@B#fMlZqPF5ud%VcY68J84($ z|A3pa>f7;<>IzF8+jQV(1pC~ra}<{O9;!Ee`*bwtKfyN?5Fp(nWcA|txZUIPwVb+q z&EWrvD?WP2nrfysj3{3A0dZG6&vD@=!TRBM)be>mqv4wBZA{-98TtUZe)ChAy!}CA z+N0E*L!<5!=IuPy)A#U-nzF)w2u3`QQd3T`Qw7zs<9!9Tu@k}=4SnJRz46mJ$OkkL zE!FVDFZt8@vV~!HJe82L-GKvTjx*gc_B&kmVQ@5QRc~Pb(LN_TcR5{eU;!T#ykJq3 z^}aczR%by)K0`P-Fgeh|*Zg9Nte!H@sVAoSO4P5+pt0qtI2v+h4s9D!h~}zNFo(-+ zx9N-J)3ADVy!<(qY15~X=&wQiN)4x@?hPG~9%&)e&*nQ4G&xEAMXBBQQN7GJfb;0k z(vj2&1R~NyvYNyZLe>gJ8&PRC=L%%Di2t)u2^cTrI9nokrepjAA)s6NNKH-b!*5aJ zkg-z?=aJ4a)|JIWn7)r;+3K0>djQbnX8rnR@PTB+*-=1DO9wG*HQs9pR2TF&n6?X0 zlRsdINDG@lf~Kdgpll>ErJLFl(vM{z2^)9CUn-c}QbaI@!aR=I`to_&Cj@spyZ`lp z8-B;io<3I|z5F#-Yn1qi(J=OQzGC`eVVXEe<*P{6R$i|RT6Jb$V{OvsL$VCEFJJe9 zQvKu!LSl$`R~5$b7x%FMQm)d5jkkk*HgyeUu{ z7_z>ttzuPm8?LoftR>)ptFj!5@Qe3sQiQ9xva4BEpp3)oZ@008n0|j5Spj|GC9+-Q z$zNsTtDKE>U3hj4B_^=o;GAgeDn6F;MLW@46y3Pu?;xJ41bfR9IS0?NAsj-sPSN@% z;0(x8Gm9kTM>;|OPu79o@`kNriS0wDe)fF#BHaCv#B&oCD4jQ=0h}^!132h*%F5j) z3)kZU?bo;Ho=cM!st~LVymBGMhpb6Dxhhd!3h|Vu&TzaD&;3TOjoqsV>OdJo2eRs< z(zz%p;76tN0PxRHPhx8%{BlEQy5=@8ESJo{^a$to)l4gcEaT@XSHj`kW0M*da;`Y16+ zp=E@M^-}NP&0!{$Xo&?#od!sflYkJDZv$I@MW-sg2b6wZtEZ z#!to<(H2u@d^fSb(ZJTnG{I+x&+d~>^p8G}ldh#C*}Rjx)d(osUx{Y%aMC{lLx)6m z7I)w{27^sK#DLxn>xl<-l43@Km3X)8XU-^8g0HaLCV{Y7tY#*+E%87pTnKK<#zd{K zlG%TU2Lo{(68Op&?miqv;xUM!_WZt>?zB+;)kJ(J)&ZxQEBx_Wd0|V zP(%qFSD>K_57FqgU8g0TwkQ2kiC6WgQ{fq z0d!^Fto!`OUDcLl$trjws5?kEt!@A1dJ=m*sDfz)SMC-c^0>rBT3$>!@k;OHjZtVJ zR3-?iv_Tv`geq4RU&sg1!o3*0)IqmWit;u(sMQ2C9_Y3E_Ea!mjN+VOB*u*GvdWOjxC9mGiBC6tDRXffq-a{Ip*fdMvxoH`}8{x`{4d;;& zMi_n(sYo7E@Q^G1{6f@KuH@491^scKKiAB*E5FWDL79cZsCX$I@ZB^o%-hLX?_qmk z7Q89MYTrAlJY2R#x-eTikO|^e-s&dBEI)b%L59n$3QEH77loDYNHbwDY!@XrkGwSZ$Gd)?TJ7#P%XB9cWCIRpZ z7x_-+JKr|Gist!*ZTHs!v(BI6NlF!~w?vWi(MvM?KoB=e5ifpbaSuIqgfNEC^@^_BFB0wDQc7| z!Jh#ivU&pNW4I@GNA-byn(_6(b%s^HFPZ`AYTwN`6Lp?JiTn~`4K7Tv|%Ue);TM{9>CD~M?c z6qZNx2TvrhozTzC?t9Ftr4Q#p=Ja)*Hw4q*D5Sk)2*w0Hbd)_JfI#Txrhhqh;<_Me zGg8*wPM;fP1e>PmW=nmSBcZ4Uc*rS!#P>tBIZ5Ro9R&$)Ysp-tR5do=0aB14g=92I zapM5`Ouf)TlN@6=8bd%K>=0668(&4KgaNK3SyOwO5;xUg7bX9cHoD*$9w^cfKs2OJ zs^4Ao;8X2!pfXZ9P0m&Ab);YPejqA_*0^6?yas8DvRR7mA9bL9pwbuTG{1Q>vG8Duvp+(AqEZ%w;trbRXmm zZ%e=D1{PH>ro^Z%h8V7`a)uGa#J4A`#$ga*{QH?*$~lc^EgQTm%~O%u=I=mFA*?U{ zW(C$*rraP4>h(`-(+%eQt+8v*{JC#}(zX2Mw=h1Ff6bjlHHn{WIZM;dV43E^o@s2t z9L(MZO-IzUiUO)9aswG8(%~S2mue^u^83cAC*DFyOs*($rbFWN*)}VYPp-H^Pi)+q z@j+$rx=*+aP|A>1zJ}K9RWfFMFt!CV(Kw)^x?C3vs~qnk7(n`AM9{|IRRxD;Nzz}j zwOCSqoOIUcXmE+^$&zTPMpF`O4~b0?q7zKtS>d{Q0mn$=XO1$ei2xr%a{&2E;Z!op z)+YnXX5Y$_!9kKIvYMB)|H`x!C#Je&MVb*$Y?|$o=+`CQ7HSIF0pkd}ce8Ah@b$y$ zd5)TD2;UN%LlNQW*6*6!aIcrye5V!5>nAPh{;P-8b$@7cq0Li(`@7|JgmdZiR$bJj ziaOw9c1!E6YJlCMK<=~N-nR1dPH4NK^ijE5g}=)i-G;|48;gZnJn=RlL^sTea zt8{V;bUYH0X6{bo$Idl%)$v(UM$ zR;AE@+aO#TyTG1FIekC?qj)u^(0_jlKvQ z9j47dEl|}3*aZ>PJa}g^vY#;Ge7;lGuB?>1=loaPU_Gv6l{Z70i@jS+;AY2iNM8f? z>u|TlrW)`OnV&3) z&?!h00e>z-CYX`c(JDF$Q}MkVn%;N`zULF=oh`_(=??hgH8(k%-hB#t^DvH_S~5Fn z*iY7LrJm!GqGrBnP~J{Qy}ySsw<5_aXG){AL_`M}#Qf9gsk!qPyt?Pp6-BLJp_80q z?JeJEQ}+6(hN}^E^OOj-uL2b2B)M%W%Ct~TONX`A#csz@$Rw~7%IU@*oWmq&g|1WD z%lq-r(#O(^jSM|Trd?S*Za&arG7A8to9N!UEH^J_)grf z_w8+o(b-^>#J|)?Mp2cnwGd#nK^_|L=fEoSEkP@p1r-TaL-?AjT{fyM%s^+Cx=PE& z4*YI6(2wq@#HeSx6y64TJAblKtUT>}KU6r1`mI8lp5vP+{YC`5;K!ehvq8iT)V`Wdk*aFzqnU`FC3nBc#$EApz5I<%P7lf|=yCoFo8w^`< z68dtJ)(DyrUGh-JaTh1n((Hi$29!Vi$nd7b2G ze7Bg2fG-zZ`1dHi7v&P*gjc~8|4aGnj*nER$+$SL?Q|#;ce@Y)WA2B`F*q2Dy$jef zeDA0#q?%@lr&|1?g}4sIduOqgv`-5^OMEwM8h}$kwRJCLrnGg?B&?O*pdxH_84qcjj%+k_0rGIq}J>!=x zWEcch`7Y8T#z38|0YO~5ffvwrBYHbJpH**?E$<&I_*#}3?#=d~KC8Jsn?~%~pIT+f zJTc00=u%%PLB#5yi*oKKx{scXjB-TO1_Z-1Vm)QjeLmIm|!GFXGX_-5Q9L+31Vrjx? zET+nuEc{T4zKoc-MxqrJbqaAS<)XFExoA-_hX%blU$#DEGUI}dmfb(mwa{qiCTlvy zyaEK*PUXjyw#W^>jDSuqs>p{JPDCWqRTd7SI8{x6}Hr0G7-QReHmq8Oo(NU*GtP-hkj!G2Ftt6(a>vsb2 z?~lYMdTJ}YHSh0Or>9*$v=}c$P2OqTgdA4`9a5PQXA{R*?O|Ta%+V~j0~wWJu}#SO zZmHY+bN6`VO7TQfBVYL%rtOJ1r>$p7O5nU1x!u(=(U@(><9|E{A^vdasos1~;+kX& z<*YvA!W)({P+Tk%kGh-)_oZ2MrWZ&13E+-21k%u8kU|++Gu=v4fj3P zB6woD8PaRQcs~rbGQig<&xad0pkG;5nL!{oaIm(fki*{LRbt0p^h{TsW}58M88r?_ z-xo1=^&t?g$;jYl(yk)@a_5pQ%~0@fmj2}8;b?{fVVtL%m_d1? zowPhL#Qj1+liXiXAhihJfYL0er7quISiT&{u_6az2?xR@yT9z(s*YB#LfC*+!H%*L zLg$KW7f`Lko-l!6E#!x>EL#J(Q-e|C1XokqipbpIwtAn;uq72#k-QK!>Am)qy`f4B zBX*P+-$my;S(-f-z4zL)Bjy0XDv5gzxh&-jDxgZwe@CKyMM|Zq}UF&2QB?KzqVF%%*$hSMC~>b{Q>Gleur7HXg@8^fK9E;aoy9X~2Vo zYUASt$gG7$dlee+%7DsD zolmH7^IWyrbKfa~OzqosjJI`Ov98?~syX+UBfHRli2GqkVU@dN<$#ZEe#Ez8H7#{l zFULhw$-7`Ro%%REYlYYjQ*_lAvI$;D6H5MZ zEV=_-#i_%=rrmJMFENzo*v0EPUY=n8KpXRA%^`>!sD)ER3srvBtwQYH>x3(kPv+@R zJc4#mi03__b+`sGNM|*@=T!J^Xks57{`Sgw0t?&i*3c0Lz8$>MdGUUjIcOu*QHb<5y>>$jmWT5dW2D>$<+yk#}T0Tw~kA{ zCE=tV-;GUcbX~`G)iPRXfHnUriI2$`S{T}Pp-Z%GuS4w(NJO5Khlbdy{^u7R_~aj! z32_1f#;?e5SIk7+0ii(6P$*4`1F6*m=YOQHI6V!uk`Xo@(nqk+ZXb?Oi0k zc<|%oMpqQI)@|X9SBoBu4J@&n8^5BrJ?X?A%?U8T_u+Ux>D~8u=}UQg2xbxZ@MTd* z;BwTC+8~=>b=PKWYS*t8cM$RZ>PR9Y@2HW7KGE~bsBN;Arwd-PRQ%N3Ti9NQ$3`15 zzm#39AQnWA0)L@|$VOab;6}<~_$grm*YPL92qw2;yHiSYjuH!YfaX%(n3Y#sQOpt< zw5(3Ec{qx*J~PN$Q^Z}N_Rxi%2Hr?ss~hESRQa>q`gONs9j{(w0$_HS@XSw zc-*{~$C?%DQ&IY|;bNR?v|&0HGY{2UOd?ky$$(T45&6C%NCc};Gp?3Q4*i2?=i@d< zlGSSPhK3!V`Yitzii*rwr6K;b(;x16jRL-7i3t3$;Ek;OL&?O(%LoUGO*B3&_N62~ zZWX~KZ{%t{!xV9@^fHYtohlct2N#Zgn)lG&y=m49w`{BWF3;y8|2GjGJ14f=Bdm_7 z#$%GV(Tq@B3~%LuhqKC??K{TZUE@S*XdxhR`;HY^of)EKkx^=VCA)P$Z%X$(Q3aK? z#ll^^k}YUbsvWpc*oJ)GMEo~O*{VkoAl3Or=x{2D@Z4OaPJZf{o%=<|LW^%VZ zR9Cfkm#jhwibY2ARr7MTZ!;hhBhep{32rLWMm#G}3YBXU`fgOm)FD-(W!*IF$K{O> zRT(dxw^jLlxxUfLUqI@vu*te8=6p!OK*@X6qnrC1__k9JJ6M@Mbv!7%YfmHfV>^p&C zz7OfzZtMg8gQWn{JikJV|D*W)GbCNLuT46z05h61^=l)1U?J@MduYK3_aV?TWHX=O z|M_m<|M9Xe(Rungz5R8(|FCcJ^0fawXn0ERF80FIrdoy-_#4pY!^Yn^yJNh`Ulo5~5>ex} zXznepts|8o&>-jCtXReWbzz&=cLd_$n)L~m>v^01nIX_Dr@rlD60KIZz4A07^nv5J zyobx)x8;Ye(3kS}M;^J2<`)0stE7687mtS2Q9jSbjatxD8UI+1p|DFC8UOp4ZQcis zS5wC!DTiU2VC-64ik?LuSiwK?epm;P(hPrc?0ORk*e?WnK3<;V#^d68d}1d495Vg` z!{jnoK6#72RehWm>DLuCZO`36LA4NytOs8={fa~#E)A4@nsXH)t?23;~B>O<7C%zY2Sg`!79Q_&6 zI70XFWnOK%{xPUHs9P5cV-(BQz#k1&WcOESfD|)=H3*xq+0-AS*0yBFiFF6$2RjA7 z#~1c*05kAU07KQ^%b|J&?!%hq*Ikc{P}||jUM#)BmPi;Qg7L?w3GYF_w3S#s+Aj6s4xWVza>_< z1xU>hc=P}dFOmIyYSy)q`^{@#lWVTtuUT%x*oME%#KYf*FhQOOVy7-5?r<r za}~(IwQSHeM^%ep5l;H%w<%;>r4&)SQ*4qFgtgHaEwHj+n92=5KNUEfQN@uZb`m8p zep%yM1JzZ<6?x2r0^5A~4+V3Mk_s4<^CG6@ha-us*CArt9LoNwzD`icsGSlip0+AZ z9RFY+DV4J?8;NdFceEk{R4CNv%ibK&_Q0ZIf`;-{smvyfTUQsGS6gz>&CVS^Om0U# z6pg-c4GLyFRJ02NL$O(MGc_IXjL55$M3|rb=|d9_c!Cm_mFlKMqBiEwg5tA}$$FWh zXsf>b=`cVJ%Tdg;Bo6-7P~#$8MTc)3o8NQ$V2umU`enG*?d%NafUALKW`oI;Feq<= zib*RjxWm~m5Uue#j0=yKmmR^p(eW!`{&Y~_Cx>}Ul$f5vbqYr!jzoxJ2r1iM*rhGp zUXy1XfD*V=di;y!TL{xo;TD{QModli)jD>q=t*RlnMzc1#U8;z@?@_8jImCy=_JId z@_cZmwGvV->oZ7hs{us&4mbpI?*TEg;D%ZZZOhm|*!;SvW_h@0_vi8z@dait>1c_L z6%y^RnW?ZXV-bm8drMQGyRu6GZ}(uqc!8QfYkgMOjs*+cMl=c(4HP0q@L(Tf&k6bj z%*9XU=roQN7^D{HOos|dKAs10hQ6!5SWNtoTi!~16AyPKN!^0Uy2-z+9vFNQJ~*$C z4q!ZXoU$CHZ@Etn6EhyVYkBgI3nc{r4_RHf995lrB>qH7 zngfJ&pnJ$@B|uG8VJfky?Ft33rUukf<=|n9P^Svs%hKTo=ei^nh5}o~Coshh6Wy1| z+R4#;omwj#l=Rnv3cH66I5;*1B-c>?3gRJGIiP$`Gb}HyYbOQ7Fkj4He5`^Eh!e5P zR;iFAs7Tq9TI_bR5IMZv+aT3RZfUY{T@fp^NqKPf-9v_^#>N^l0RHotB+Kb_H=(i& zbc4GHjVzATg{YNlRg(H*n5EGf)i>f`fQfJ)l5Ou4X3*7OZL^4+{>1c+o|9Sr3Pa5+ zSh+>HFZc7^#3{ZR=)28q!1pyux8YNa`- zml>X%$cAQIo{7hrb6*LA-=X-etYW0WXu`!j`N&bto$>%-uXh`xn zSGDo#JsG1WKYJ_c{W-aRbM__`6aphd zhqBI3DTq=uhw!l4o{<-5^QL1Zsu(Irj@x^0qc6}k;idSH%yk&hi)#CW>OjXVRz(Y2 zf&*MvH$t`x(;2b$DsxizZYf%`#{NmV@R1@>N>u#VQ8BOd%A~2wV&X~a^QG?B zUV3-vfv^YAnQ^CrD~#;8>RzF6vlFW`h+=}{YmBi)20}~cs?i1zWuI7RG6~+8P5vk+ z)F&Q1h2So6w^V8U9WFq;(z}DVUDjEi#Z_A=1P(|pOirHF`V?tX@op-N=bm9cQif~6 z>w{ri59sFJ?+k%`@*Kev9cug8oR?)^goyN^_JTiw0H{hBylJ?i!iM<-XvL5fgkPYv3 zf*xpXPAU-iL(oEuLzXBUcBhPEo}E9mu%6B%6E+WFoM`*3H#O$0J)X~r8BEiJ95q7c z1~DQc{riB-D_>!BSKUAhy^tz5lHAHDYeLd;YiJ0tYbm9#iUeT1EDCCkF42vYPl=Amg1o%W1-rSW8&cQ5nj! zpAK$R46~zwi!D%tPpV32y3FBm#5|nXx2F&6H+2SlvSJ7eR^w%-iA-@?)B6h-L^AH67!{i{rUsuf^CXT0!}f)1tEs5layB-_ zw=$B09o9&}&>h?p_A8oal7Y=nc^YQ7Qw4bcTSM=0FzKj=36lwj1c!gw{_I* zo)w>5qP8%@wH1njL=B9fG!ZVSD1BisJN8gMSAxrRIyZ0oHttps>H+;uE}y5Gk*D&P z{u0Rf!Roy21)2@H(2EmGOqW9H_&-dbytsd=nfkiIf)~ykQoF=#dIyC~7Da;VmUrZI zFZ*P-kA?zn6G5>vOHu#4>>ug1RU8x{j>B@1Bn1T;12IP{sTK`-0JA? zg%mStob*-CQqTOSS+dmn1aK_zM5`V2wV-q@E-dkV9w9DZt%e>vhp_gggL~Ad1-MW% zz*R&)W{cK^IXVCA^?82a5U36Y59c4V%fZ9fQqo#xY(J}?(kTH1*5nRyDovnpu^xx^s+XVroy4Kr;$vO zwX1G;=c4rf0B-1fkEZ37oztQ#3;W#tkfNBR1P!gGs&R2b8ta0QxZLL0Ju+cWwl!NR zGQU~e9A<9m7~hxXwjlg=wM8lxe7^OVR_FT6V8~C*!QJLMIQ-6^DB$1!7dTwBcQJd; z^xy6wnS0xltH=>bk)8S+#veSe1_W z(7f*wYy6rsYacc5)1wP3ayJo-byFFYyw+!0D$^tK9duuMS`E^(r}Pnp()`^T_}{)W za7376_fi@HOft{w6TeX3ETHRjp4M6K(moyZwedgM>^?H=S8eP*8jmiUn*Amb_rEN3 zdQ23j@jS!0V6u+{+8`G#lr>y)W+4ec>qQ_#xhHE;(#~bJa9;2OH6o9TX04o*ZQ?=w z$%DNo*Q=aiGo(fsWqp(i;pAty4%j`(y?yrIfyKSkIcNx@UHFHaIu59htn2Xf=aL%_1w!UmDSayEya z%+6qpNXCBf=?^s1ga8}a)>6=x9e17}pgI&ji8o`76C_5Jc#1rP^;>f8Hzry|$fC|y zWX-`)0My|C6F+LkOV%%|wXIdER9(-ooKw}4bJR+2u0=m9<1`6SZP+ghGxvD2?6Z&S z>hkBy>c;ZWI^aQ?aZwSyI0*q@h|z{Ei3MYpjXvfMAi;az#vZ=P%D`ph6zcqL{xb zh@+3T)yX4%2h)W*W9#q|>wk_kJYzvdeK(=p&rbQ7I*3tUv^ifwU_T9!iKwcKEio1)Q z*G=h?h59k2gxR+=!J7O=^&rH3Neekkrg9R5a~5Pw{~`oO?413VBV>dOhDdM7v=y7L z(jMu3J`3gq^hm*2cI@}4PaDBx#y6WO6OD%Gyhkd;48f%ELmYfxKLIL8tj)PI5aA?R zj=SSyQIh~C1JTb#yBT@II&lmuw^un6!VKW`1(2YXIjM+ZSRZ4(jL6{oJGC)2lbW}# zXP7U=cCcC;e+2~jnF|tu79u>`K7VD`vb;3|ytnPBg=!u9YQ4j$B=)E>7H4I84XVsW z@M-z!oogxCVL5Wjm4QeGM`C5$MR=GWTsWS-|Z5Sk+Z1oPYp$Oc%`mmnZ`4@?EUezPHrn@#R%DvkV3n1d~00R zzRoPybU8e+i`O3=L9V$bY}0kn2U?jL#+T{w$5WH}3_mFf`}T5*+Nx0PH9=tJDZ;uRb&z&FsP18 zsK_Z~JxK%xaCcx5)m9j+4%8y2tC)XbtFa-%gLXT~ z>JE}CtsrD7=6S7w16&xaEg%eS-lA0EC1>bQ@U%#y#g9Z25 zq}Khbjb$rh9jS0G;{@J9H1pNe_>i9~&yMfn6m_Itc=L`uBhm<%On`3OmD;t3E-U|E zajFH*^_oyTR!CR%q)rz4lstKnEVhZ1ldEhvNm7Dx)kYn!+j3<&NL?1wD|mrB(~Avr zv63+z;#|C?3coy!v3amPRr(04i-^&VicM&%U&pIONT9NXI@4;vMnCyVeBU+m8Q&dF zHBI~1s)mety8X{2JXeuZj%c>eUBm1NZdmhC?beai7 zF4+rxuFtYs#U*J|-7* z2D88WUA1VLs*e;G4^bJ>bs{RwLQ?MVlyJmb5j!t11(g|=Es3}NM}H_(rdSg+-#+*= z-4Fnm#sW$}qDIf$?VDi!>_6zY!}wCqd&WKVK60ItEkJ|;Zjx9SY{_YYRWU@GrQm2x zbERfwc2LaKI_m76WAcb(J7T|Ua7(V$HE;P%B$D536KjL-8aNKkQwvH!<}(Lp-d7@u zcaD)R2O4v-Q=#se+bbute-~;W<@{D;rJhok(Fg9|In~OaMRDJ+i>ZvI_O=QR{L9Py za?=S7s7< zXR1z&9JBxPUF|enW-JRDRocLBpkEBvv=+!D#aexP_!l}1P|L>pf)EQQqjy_)UOYEE z=QQC#XWbb3oKFLCp}0z3&lMo9?yjM5lRT(S1eiP&e6@3Co#CF$#ZfGvdTplJi)SR& z8%kJx%^}9S$BfyhWggd078S_9{qKOnr!lhnu}GKonCA*+L@UeRm#EA_K7F|`#N3(V zfyLeV*XLsVAUaIwX3#G>J$hILk~cAn(#A-(O-r!U8}bH|T&X56s+uVWitc81fDp0B^l z<6m8aiCdqq&tKhD+Xi6_+g~4dsmr(Hng}A3uUG&$o>kxH%gA3uyZwAtKU%hf&pBqGc#7vOzzk0}KIk@VJdEVA3})h7>M zyJyJ})P(=j=@h&w%MSWXs)b@(Rq2+-=4<@&c)qK4%W6w{%_M>B60zaR^btKyOi2KX_h253xy59_uF zEE_r{x9Qb}Z^7lG)>e~$(GyDx7mE1RmHl;ay}W%rf2Gdfxq)xQ0{b{Gu7x3cDX&^g zx&bhPz4cy8BL_pMDW+AP)A0`Cgo^QTV6MXOb~zIeZ0C{#; zB3KH0K05sr^DL3!pNy(6TkmMw+ePSYS+Uuk!Od z)LB^YvI;7?i|eBYcH|hvN5S)zREqzoLjP&@@u+50e8mq04@rNLlKdU!gITNo%IrWi zL}d%NnsDPC4=IR$Kh{j@;T?%;vZC%xv9HE@+Vp!V z5EM9LMC-nU%|Ri@S{5KC1$D=cuEIgDpDOeVwGM0M(N%>p*)%Jc(f0^hi!;jGuA4slAeeMa46W zYg;b9){J-^(?hMK15%Yd^ivCuosByLRbCtH!Ph?L);cT!z>}(zyft$04QEuei7Y!q ztUwEp151kzIQdCZ?wEWrLz?^~G=<8y2mC*Pe(Fv38w(bS&iefbk(Br8G zoPDaDOo*8s6_t=!3H;@+q;>#eD+20>plY4@8x7tlh}hvU(zFfnp}Y~=kZ~M-;avss z#@JU!T*v%7G-06}%SmWh5D;dd&M(DcQ29P9u0VhtvmED`PZ*VgHBot=YQpGv?O^JP z0wU$r?nhL_XP5K052?9Pq}^y`nmPzqR@ag}f?t(yNtEhtEE*$hWye8jJ7yll{CC&> z-g+2g0z0gH6*A{Avl(q45=_vQ))g1?5yoMdE2assVh6vCOLvZOGv{ z2C$LyPWYxtPB1YpJKf}g14U&ie2NErU*Oe=mfZ>w5UwM{o2F>)mWZhF7IM8e7PU1v z?xA-jW9x8Dug!I(uJF za+(YKc=3{VMtK-}kfhqdvr&u8Nd#5_+ZE(`ik616{L_%}GJLeB!+d`Aa2)4vPT}5- z>8D2)hgf~{G}efnIa28Otz%cMrb^qk%!9Z=fV(=@Osrm36h=(J@zxWS3F%+c`x?(kS{qHafO#+s1?w+qP}np4hhSWa5dfiESr0-@Y$< z-*whG_vJkHQ`K7CRbBPhPnQ$mQFp~ld5m#XO;MZ^&1W%fbj?tSNa&@A_SA3vMi`#! z$!s}EJ?J_d$qPGBa>FRkG5Zc|u+o>W>7~HDLoXoSkzC#&O^2%T`;lHkg)mtc=*n0a zMe<5I7rMB}59%}VLg+bM-j^h2v*VP31+sdLVcrFJPda`;$ykInbvI`!-M645_h^s~ z);FEK>tlgJ#%#7>4lp`rX^rhXe2y}s@+55Xs)iM|xZu0A<$i>iY;Zo*C8Z=l1CgBO zO?mLD=Q$w+8)48AXiLbl4lu<$d8(2FYGX6AmCCm-rm_RNWp-txxhNQ@|;SO_;8;8I2P{;limdd8IkB!lt z(Q8Ug(oiJhCGN3F!w)1L92T8PDG-eWPoMG+9{%-y(8#18n$}Rz(i1s*Gr^-d9IGcx zwhE}C9(6B8Tb+GTdhfZ{bh*-eMAb;^W66B78UaVRTD}S*qFo$xr`h%VQBEOH^dt^z z*H0a~9ER>*%Yqv%Fc>O8>_0gF^F$h}{nf9mbo-p=JwL~{F=H#PyM5JdGqC z<&SFkWE8~0oyG@lPJX}idVGc~HJf#!RA|4W{;57ogLhxd=?CCA>LIYGzY1*xV!k3Z0n$Z7IK1tg2_U>NRwt#{78QFa52Z4j z>7ZvMi}SQmXTxKq!IJIJBLvmH*o*?W{cvdincC2TrRvUo&1hnE~?W!fyQGLp8 zb|~-;O;*PB!oIFBOf03iB!fEvJPf{F@mS+Csib8n{lkrEOq590f0e2z>Sgyd76cgiKyukh|fwol-VT%tVS(8WRfV|NzgEZ+D z#MF4oIO_2-olSF$E@qg$aeF0+GsChr7Tliv=Xw=U9ier-xqxzb(y4Pq|YH}hKL(NT7Sagh_;(0^OO4M|#VZs(v_(&5MXSwnu`~qCFK3 zp1wLxP>YJSIBc)5GNsxJQdWWFHs$F@&0NY!3(mh$CofG$}B$~>8a3=0F0g%i8t zOxaaj#ChotWp_9OustgD7w*{2a}bPlQeWs~Q$xImpVHmtD=eoNGgMfrMuxixhu_99 zAYb-DQ;9drHM}H$I*}c;IlHovsOBr&6mx8Rp(;JKC3EooXjL=p1b z=sBfmIFzbdRBg4x5GcGwK<=vPPyREmPs(K`qebRvuF`fiugn_bWimn~yJySaZIs^Z zuR32nk1(L~d^c?BFEI*%PD&+&3C(QDh`py~wnlcQ$cnCfFMx15c$cL;rLS15W*pHFnJ@_=kca*TdsD(Um7VU(39G zqK?(?dBUm#5t`P{uSL&^@s_vgmHD4CGLfq5sJWOfOn8}132+de8nJ?#0X8!M_<&B)srYP?DQ6V*E3F7 zsUnJ_E5fuP}&A7Q46Upjuf_3akI%OlZ;a3-0FowOc!OF zE37E+Y?NZAVL5{yF^kZ6MEr}+CvOLA!kUol3s&^ud2S8Iu!To8+n(i$YTwxXMa`lZ z!v}XKBnxH_U1!$M=bv-?eNLv{^WuN8#_Kf`s6MVbs&t-=VoPBL3Cm#ZMyxUlQp9i9=P zyQR6ERRUQGU_CcqBMIK3Xw)m`3y)=LB5u=G5!wiPg%nvy_RD4E_`(GMGS!K50((+WLm78HcP)3o1=1$qp1v=Li5}3(>&mIyATdCU$QfBAN35i z<&A;K2x;C_*4I?+3x*5V!W3^6c$Cg_wZF9d^}UA3#yKoo+`&?s=O#s<8Rg7`bExSq zVMe`5h!Wi$e#w#eXJwWyQ9rdpE4(G2RwQWy}rz?PI(5kr1#J1)!g8#2b2fa#EO ziodchCa%YK-2;)}n>hVo25bOZEPlm0KX9RH?~r?3$;Hfh%yv%z>;p_0VQZ)&w)oj` zpE)`J<={l>R)))GTT7YDD?OI@qO!=sGiqgb%t-mO^libE084^$cw>s(J;E3A%XpR=8>bFDcLuL<*qPifZ3$5GhZRs=*hB2chP$}!LwX_Dx`InIDgdBd&$;6<;9o|6*E91ml~o!UL2#7Ho*9+pzX*#l9t#h21* zf#(dpqVR6P-|f-!Z6$Q=o1uG~KN;6!>G|54030#BpjWE@x_|8l(wHU*RG;sgWlU+E)`POLYQ!G z4!c`gnJyVelmU^ZJ`=O5m-x=PN(Qk9VatbBIkPp4X_(j% zKdagxd+rFQn0dwBkGdmi>Lx=*ufsbFpbxAmFmcjx1v`ikyx5RsiLAhUbfUulL~oQx zltZY^WwWm=zOlbcpSA;Sb;OMZwI%#BO>`&*-@(0(JZHqGq#M8kvVLVw-gS7nZ(N5u zQhsbM8`d^w#?pvKMyab*F}^CupH@>rHJ+@r_4pFt)BjuE2Ka{wd|02Dj&BtfNYq2u z>dHx(R!u*i!WvbGNsNllwoJf=#a%a_?n~=f@-()u*#gC*@rkWhr^^APh&#zex)J+?XX4>2`f2(wx^tKCS&t^)2qHkVEbp0iiA_ZBa;u|Wja)ro# z)A!tFW=Wr9w7JKR@RDiq65i3nmq34wC<@67jbs;cM`y%?JNmm0k(7=w>XDs>mRQd{ z_KZ{!%T}8%MPE#0^H}nULX7s5#+sulRrT3S5D}Bs@UAykCHG*!kQ`wH5-%{@Y_=hG zAic?7PaO1|f>|SVN-`u$!;Plt*rc;oL6}AfJ-nA!<_utShYM5eu_05{+VdmV8dI1KL2~ul_frmn9@dR$q<$+by;0< z4`=Aiu@VnuA15SD8NBF5(X77EkZkgXi#4f(E2tW{*O)H+aiQVjTHpiDYMOwEXyfvQ|O+vo^Z zX&-Y(oY`VjAxw%HWpdr7kUp4t#q_;C{_1p&ma;VGv_0J9&ZoGyDQlQYc@m2Uy2YPa z)p*Vs5*irytx>v zwd++{o+(9DGVd3UrphLf_S+hEYe99&DsHNaNT1-pOh&Ytv5sTu6rFM%eybrXkgp5= zox+`*rnu@b;RFldDy*Zd&wQ5dV+Ql2G(0uy!^(okX9w*>B>j0>3{ODjHr~ewY&cdX zX7S@6Gb%PmjZW+rkaq|-O;+&Y_#(y!_p-rBbe!JQ!f^2@;ZNqv+q$0wQfNBE|CL+v zAAE=Z(JlFR#KnKOCI9#n|NCyqzqYUbXSam&-wPlAom;}j!NvIhG$}e`Nq#tne*EK> zAsXfRI|nY(8;_<_z1X>(%uj*O#uYv}6)SRYgX>@5fnvkC(!y z_1gVk5ccTPHwgRnsrT#kv9;BG?jpDM>uUYvX#M))XnXtfg2d;?17p)qdb{`c+}8Vx zPcwQugjO|+bia?cyIQ-im#e{9IRW}_w`6{0WMbm=bKmRr;b!8@`PJczxpuSE>B~0r zEoyzC+vnr*8$ogXcHrmp_CjEHC9wT@%O#&ZVL(685Z#-@jrUMK@jdE+(DICv>dzjrc{l&#nkIzyFPV(HA(czrLtSs9FTjUSlP*a4 z4*v+@=3DJ$N-b-6tzMh5Y<(@_oR3DYeY4th$9vz_RdCdm^oRU`6T=i)9)htQ_5w}6 z%H!slZkKvnU}@g<+2L?5oPh~f^gQ^$Zw4rukJK)p2RF%NbNjCovU9Mp$wxQ88!;;& zkxhn&SC4i?&1kR1tL6exeo;|}TqxeqAquS{*Wk;Z%EbG#Uvd4y&bgrtAQ5JpkSpYDIB)G00C(V& z7hk>mEA$nvm05_MKVOa+3(AT?-|;_f?0O1y=M~}tGRCsAA2K*u{NPtC{w+5tywoocNa_zQcQ+;g_F@q%hOc5h07PI?WdR@^&0Vb6A7lUL zfjOmo8B~qJlL$>l2Nj_d{qqjjIrZQ!;u}5oaLFUE;4h$?alE#a+n?at=Pf7Izj6Z* z;v?B{3V`>CfYm)6w|K#sd#ZI~-rQ909F+YAZ4e2oWQzK>>tBYU(0daKD8XpbcBKUB z5(Y~|vLd?L>X*NH6-Wa+rAZkzFa}AL5us9;QDv+G*9LSy9h6T%Lx6a$Id-Jjtv{>G zBXG*iQsgyl5HB(HuLX3qRlrOb_d%cvq4Tm9Xq%FR{l#pPO3JvCEt`P19J2?xvE5Zu z`1HeSc9^U`^INANNV}mR(k1Ioz}yg?Il!E~LB6E@PcHWwBIa{p4Lm5rnzTPlv?fu| zgOjmpX2;~+kV!)(4yjdLSauz**@?C*Z2LL|P>#1Tn+o2XucVjRp1B>fR>bRo+{Nn{ z#ozm`0i6(D2sA-q!QGq?+Yox>J6OH2Ph_lYzA5~oiqJ!D7ewUU=}7+LgtYw$aM*Wv z)J|WH&(Ex6gfKUq5@?@_n~nKhaR0!rfBQ_L+?-OFG`&aQnC!0I^l0}uYE7y1@)fgo z;)wNFd7g@sgC`2LlMWC%hhdS;g*!%M&|o_4PJ|~ODPDjR=geuG;8S1J^P-SLzsRvVg@rs$7Um`5Y!MeR=$zJlXuZirL5bh*I3jvsf0BI`AanNuSTg~ zFNo=ATceBw$aUzX<=JIhR;uZtZ!4Q+R>*0O!}&>_mXeeVX&+Y@5T`3tX;D%E)%>FE z6HWp;LbSkzfvT^yh6AGo7NgLXfbg6i!N%0dGiys<$K#D0SH>9Pi?dzJvH%#$z|95p z#si6bsKz8Ps-1H&V+S96UjeaUOY~dg@2~^Z)NplwH0C+SR#U~Q5%+@t*W(*Vsk;WS z(|RVzhu&@6UK7=~0Tz)({dfS(l9kxZUx6G!e6WJFM9{|5aQ5F@WROKvza1+fzn9xX zMfuG_$hfVo0Nv+OK!^q>BGtt9;Zmz^F^kLgxL)F&^i)^RE+YJMHfQJd9rfm z{=$HO(N#k4CGSd$b02QgJVQ$H;GquV&cvc0h_b# zsc)fhlt{wJdO?C4cMWRTH?zNy`}$_4r&C_~dKyN0hhYU15iB^2)M-tZ>Jb$PTO5U8 z`yq3`NaczMts;|j_@NHA#6xr<0-NNTL?7IorLQ1QMr)eUOdBP5#qZ;ONA_WC&YQZES@dO? z*!^qv4eYm0Q7wuoV5U({Fg@%l(C;+|Y;Iw=u|ykCwJ;s?t~hJs8<(t#?<$2}DJN~K zY>00tVoZ_Am5z3b9_UEaNU7HGz_BiU01@JPLX=qHY1Kd!mqfm_b*G@kZiTJ+T?gJ@ z_Yt$njUW(^ybgV`Hm-@7HA7&qD)9Q-A@{)Z8SYB3KLx(Cd7qFxYtt?E`L)(C?yWJX zti9tp{VIxPOD@(#Du$wo{2=lAf4XJ2uT7u}GS`W8a3*ZgrT~mVCc5<#)T4!Vb90mq zzv2kH{7WpDN8g2tWBh+oRdjbHyaxwtp4BZh)B!+!$Ug_*ClfvCPEAp>7b`$TFw{+M z2C=@04Q{itcGN31&!2z!R8byRSsYu z0^L7IJ0TBQX{H1?m?*>cU3}!DUJSlSwM-G19~IFrA-@w#0s@)BqO*8JNV1sIC zxh9H$NAl>e_5WnG%5>{P=E~wUL}i~_a&SPDAvx#4x^CfX*i9m`{s)%*xknd)=NZv! z1UX^I7hdlN&)WJ=FXCmm32B3h-wfq3`vQK8G^wer#6q|x1b$n}k6jdQ$O_^7_Onv! zI;@j{2S;|IFr$XCTN1X3bH~G*{2;-MtbYn}jJ-IH)?j`I!4>4Nuwj5J4|6<0lCWHU zf(!1!SXwaGRZ-Mf1=UzDg`Zzi#JbXPEka&EW$>M_yFKR2z)^Q?Ve|W5|6Px8Y3OTW z672LqWW!5W`KVHj235VNlxKQy>*eH5Ayg4tDiU#6T^F@ffeX6{4<4MGN2OR7{|kW_ z`nsuyYxe3Qz*hE!amL*#?}exe&3^OQ)4+Y&=mDJ{Ru*b@Ukh<9tm2U6y$sj+D0`Dn zUTSeFegP-D?|zH7bF5-N~~Th#>|v^QkoJXQ;x(a2e`vw zP9L7XA9~Fs68O++gYH7jW0~;Qx*dbbbse#^Nr68)%Q~4M(P>W8w`K7}gi=E>8dT-y zjf|8$3U(o7oApVx3XD1p+?Wjg3k`(KqwZBNR@FggMrIe#oVoZtx-}B=tUbwQKDiCXo8Cv{Puv_!y{I8_d%P zpm#(;D60Z8PQ^GD<!jdmlWwpRrTJ4#TGu2EW ze}|pU5VUfBDL+%vt7pxtQB9?PI{elD;sck=jAGtUb}UzG^Q( zQ52b)Evhk4z5O60pctz!OZZFq(%2q3CDAh9KW30L_H)6ShxR^%K-R7D2p3BVM-Re) z4Da{w^HgsZ^1xaKBCKw|H?LcUoO}RD-#EP4XChZvMK{q_Z98R4c1?c(ibSKOiyvpA zD&*91>9mw&K(8}_DH95HK6w-X?3nU&(9#bVUZv_3hkaG{u@BHm>O_cE0A~H0n!2Zi zgl8OLkjNN<)S7To`mK`v0y%_S*3%3RQ%H@`Chq<1`;U5lH!k40)%OhY$kNU2(*T6N z(smBF^vhO6T~wle>o0?+|L`>Q-Oh({IT5L4N3JG(vC}VDDwyX`+R~M z)L&U|Q4-zhebJQR>_f%Z2K|AMtiWZPd`UU#IHrQQF+)E=%uM>A0!#&TLY72J{ew(H zxDYHOPs6bLi)^;1HgCN*7V^F?;`(<7-DOrgu!~3IqRn-Ku41_%$RJZmJ7y!@hxGK8 zq@CG6;gGUV1!U(0udw1_nlymrRBLVrx`))}z$$!H$0Yyesph_Y3J>UmHu&kPfy|AysvGv;(G z3?|c?UaN}A;~$n*amyiDD^*DlENGoKgLMh3(`%38!g9(qtMJX2-6)4vZKaG~wI!OF zv{#bklh7zae?UGzC{)r5CI?e_-Yn4PwvO^dn6z4!b~WMwJauc!)p77*j>e4A%vZ@!oOK~>d;2@Yv0&FFXy~rp17>q8S#)+urT=Q0vENv?D~w5_U^qKSz9~m z$}C2v=bFos|DDOK@zbyJBW0asrjZ5qCkcTJ{~)k7ZBxBd#~rp|Yr_}TTrDtvXD)Zv zk5q4lYjtounjR%jiPXa_S5>pHkQh;>S)y$2Y0fMJpTnx6lBQgAHIrQ4*BL5EBYS6K zHZHnh=%bVRzwl>XVzy(yo+cHd@)3qpg&cA4HweDIQx3Dn{7m zIHMZBidLVIqke_in3<^*d*lOW&=YjAUu;{NNY!*r7Mpu#b<+se7m?g)Mt>n@HzU;y z|4GUwd3vv-nQcS<4Y4C;s?~RbaAu0O4V82zF zgBFt=FHBZA6!U)H8PC;F0lICsc48~cV6aj-JjB2lGu zIdGEQ*#1z(Sxe+Wh6qeD?pQ1|t~lS=Dy+V?7FU_~uOdV(FbyK!yHPwaoNX{@LsIC%?=qeL* z&eah*OKEvj_gzfk3tX?}``uQPZ!94~pLELo~9K*71)R zG{NPAH#gw%W3!OacU!>)kbqe3$T4#4ap;G!*t$KINwe7TDm>i>vkdvu>?85D@TL>3 z=-`GyA!Io-PXo?#<|HD#22qqaX5e4vcZm^Aq4wtAFKt#wu>!??c>`MK1E!Ea=5qHk zh-?g&b{~<1zfX!~=8v?&NEW)*`83O!u3BM9C+Jjg3O3TKyzb$iLJ)wh>K`|(>+;>i&KWDVVxQcE$7ok6+D``dlNIs3NryJSTb3nx=K{gI3-&>eaJ?p3=@DQu z+>7S<$g@%PXCZts4KY|nS$_)(-E5OV6i0sEJxF)$g^s4A7dzJbO72lHiDNZ^k%2I# zg>0k5JuIgu41&$BW7H%_gAN0p!+;cSY?!b>fe`!YenM4xA&F3%8T-<>r}ya5ubK$K zP)mRHAXD!jOp)lf>{jZB7f~W64j%Rl}L z^`7%T@C*N=djAj9!OqYUhL;zH;osH!f9d7_>+1c#PWJy}2Z{6FD;fW-de6zu^8cv! z-#bXZ6aEc34GABvylChO;mMJ{2*g6eaQ>vH?h;*7_%8fzF59_~qnVNiJ3bjM@EIOG zVV}A7Pubzuzse5YcAB?weqV1441PWldaut%c3*D|zJ6Fe-e2nzxm$nIl;uTe4qiu| zzC5J#Y#E$*}T6{ezVlt*u@E#!8rEcFMOd zbgyfE9dvmQPF((M{yO=V=Jnoa4lYf&-L~nHHdQn4Gc^5nm$p?`Um5m$9Q{bj{f6Gx zy0w-+Tcx4xwrggJ_4qcz_1YiR(T@FK zZs+OMdo~0_8M4~9M?3VvU&AP$Z?j;4Nz0-?NJKbUFj{*PK7ZP<2-QA227>8$5*2goRfPE~dU47l$zJ46cWsAuyC7IsMq%~{ zmdXT|-VPYVOz;M}A6ix3^mKJzyz<9CSkRWY;mq-Z3N~uU;{zY_mm4--8AQeth1I7Z za{8Gcc#=GSS#-OrO4<#;z_S8x{@8Kcr=RfAPunIyDw75Ee4A(NspJDJ*wp4Fe8Z=X?grZIsq9#XkAq2NUD=tct zm<|22?Sc);HefSf64|0gTZ1k8&Kg7htQ$}uV_PFJXh2CznA54PVsND2RsYLShR_?U zPfI1xaz3WAu|^O^a}Kt24uV!M1GM~@KO3}egI^5Z86vg9i|gn9nB)+q0MdXaPqX(& zt*_vUbk8$dCXs1EgKkQl|JGmpuNs`0?_e6%cbEjwl~PhE&yG-in#-BMgy?(}&LU!F z(0P@ZRNX5LSK>^)|Im9c0tZDGRRP0W?5fY)ce4dYH>L;_9xvdsBUptksRcTsGig!? zoR8Cs{ZY>34OCC4d-+2>1WstEPVhPh7K!op>^mfN*^t0wrdfEIAK7n$L)UXF#}(|k zCtb(x;te)(!p$!)bQA#-S%$1nWz&+xh5cqLCN$$fRkxCmW7Mh^<)F>{R-udbZ{5TPNYzrnGw)Twz6%I_BRo-swWczC9p1TN|dYpd5+IFx}vsoOepO_X9Tc><8@gfLu0&%C-TLhmb9x~v%zzRX3Te+rnF_tU+z!k%Vfkp zGI1xM1>wgUwABbYkKgJzLEdQz;Ncw_Z{jlq4G>)g0HY!AiVu2|>ygIVR(b4F)G^*MNk{=@sr6-xt5FeV+lyx5L(zt!(E8 z1MT6%!Tei7fvdftVgdH+pee(GIvO^)H>Zr z27R*LOT_DX==?qY_1j>=BwXS#cK08PJUAgTsXw+D>NBSq%E0XWV4fr^n)kRRmhQXL zFCCK5YADY3%FJ@~SkQIqe4fI!yFH?wM6ZGp;$JzGHUGe(rNIvoome1#QiMZk3m*r1 zLzSu+45h;X;ePS6*G7W5W|6S$4ynj3c+ZP zb>B|@XkDw;f%r47KqB4m+}Z`?-=`x))Pw2)F*Wdwt^N#NqYzqQ&b{Rc{Ycp3rExi; z8nMnnAxJViv?C|CQJfSe{;kn_mM=kG#_m*-;nxS(w+IFhM&5Wn$a-f*PXifyUj(!^ zl~P7_@jkC_+yt9+#5W6*b-H1YIIqAQCNQ!i#ezhODZFOV>DlYDJFU38hnb7atGh1k z$VwJ#s369dU6gc%?B8EbBoSZTsefZ5zBT+zg7~Q*Kz|j!#G4B6`I&^=ptFmnKx_vf z+IWxo94!t-+(%~QT?pFD=tq%Fl4n=ScJulkiv=-IV}*TDERKP}2reePe|Zwo6t&4u z0EtxJ4@xSVV`~UbF5#AR%I#VL)&TzXIvgLMZ3A2j$F5+TI9yOLqylP2v~YgPF^!B< z>3WV+Ig5=2V|Ps~nnY>9fuC+`22AKfXS4J7!(VfD>bvg~fx}*fHNN4%0KBMpi{PYw zE;keKVkX>xyL)c*K9kO0m4t@~2xFO23-8{&EogIJCmI@&|Gb3bjn!P>H|LH@8r(@e{q4*GRx8s1~^KC2!SH8oBoFnUiW}&z__u5jl(( zhChKwqwP$=GbmFGsc$ZPOxSc-^Pw854kbcXp3E6@47D*Eek3}0l}~l!`R@yMvD}i} z)O^42e={8@su28?Spq+K5oOaHD;{3;J{@Sd7&QuObaCV&Og8k{8`!$$EG|=_N~XGl z&$UrmYto5BK2N|xTU{s+pcEzFM|D^MZEbw=?H>viL%eiyVB7JHHsD>RRZ~u@@ z`%V=-(46c-)(RRg(7YUQ-3wP*kFD!G%0+{h;L6r^eO z+bysbqH#IHZ>xTc4W3`k2s8F-2$VAsVROhcp6rDY{+45nzgfwVWivm^1jr;$_iVQ*A_UJmS@b#ax0x_(Y#D}ai8768ME|wxC#xoK9HN+f zm)hoCV&Dm(Jt`6G{{x^Uhv_p;F2s5+KUDQEx|6dwqY?&(Q`D#PI0p*z1f|3G>=zLTP+Tob}O(_4aE8Tsjw|rZ_4L4X{Og-U>d- zBgVuFDU_86-{K2jU6({BJ&b`2Z_EoJp#`zgwCAR0=?YQJsDTJV-Obwh1l6MrGGdSh zhLbu_9h@SG=9N@2N9En9y}?a%e}&v&_92}J1}ShVNQ!kSeuZZBsS}=y-4t-q<1&Bn zFV)7p$q=aEXBq&)>?~i%6-g9sR~W+skhpzwyrk2#7ft8)&BTK<<>~jaMJXCF7VO<8 zkh?~6wCQb?j5N+4#z&p=7DqTWp(D|uOgAT&?Re-a!k_os;`@Y)GjS_q5G(%v%*|f~ zdO4u%&Ta(}zX?soOd)0Yj&(1T6DL|R$IT*zVqX^CeiLj=H*x`@Y5Au{ElqffTWFP5 zxsu6ZodO_>#~|?nBv=H*;uyPlu=kOa>lTc!I{WIH5n8M7iGLjrMf-)r4;LjAsJQ6t!OGC%iqyfz zSPbMLCfF@qRPx&;wr{u6ia^Bq@(3sd>eKX7lH1&=K!rsEP6n$?>m{rF-38=27x|i$~qB@jT3%eOXt+~Uzy$0NSp@0{nc^AncHSEIT9*f z0c_6k$ozvN*o~o}ip3ezh;t|U$nMKPYHPCwX`+88Nb19@jKC|Dwm9|^^XF8mn75ag zXD2jyqzRJo@)!^jgz>WN79ViT|1y-SkV`J3RBSPHt#lS=&d6)?@M&tcM8XbsRtXTp{a9lXCe5ve| zC`$owg=PV-&eJL^VOsjR>FF&dE{`;2M_s$;tVI*^OFO`Tsuq7;)u~UT2RQ@@CwDNs z>2HxH-A;r#Jco+UF4VCW`!*C33tJMye$%Jj6543Fj8<$vY!!!%)u$n)N0nb>vC4;mb6K=6n`XOoSsbF1=a|DaruIdmxS|2akD>2 zmgP@v94J6VU;5|GK#bpJ#Bm=Cz@gryf>2_ynQ@8W0Db|l(&6-C6M>75iyTM6%U(?EBBjB4FUjG{y|MBnPG zWiI#X{g~rYh%l@@o5$kgc3|0drzXz=@JL3^SQln>QJ2)5d^w43`(*#9K187P&X5Sq zM@MjSiMI6wM*dzxCY-6jlCi$8cjPX}Gmnp08kNNurH_uqT^!?pwS3>0FndW=N!XVQ ze7Q*LF1L(y>I6%hiR^L<)rNbshSbI}6GkzBP@NotWzB)a*L7OFud2Yst?#bb)m&ib znEEQj!+GyhgY*dNpptJ_$8Fh7;-~ZS(>}G3R=Z7d-RtP*4|;!|bDkdr!%Q#YBhgG} zA*%vuP2oGsVnWI86#Ogcsh_cc1jEgli8E^mqVGoapv#Fj3fag%6Dqen@d$#+M*+)! zI6IOqxNyPC+Lc(6;Q+JwL>OlZs=1R&2ok8tn@@7%$(H`R26|tFV-GA-NY-7^pR>U( zJ34VMT>_YlQ{~H#`@#jb=tCK?sQ~=-NWkXp`D(#JzSeuyMUWqBz%gAJ{q=R#NY$qP z+3Dl1>ugz4v@jImt>$TFE7j+ff+zgOrX2}U7_Ui;1f?&A44Epj^cbG;td#r0CRA8p zUAd<7q?Bzf%aZ?NYpMB@0Ox}0&f8vAH6n={MSkak>2fP^d04Z6!l=2QVw(I7sr%-dbP02Vg3 znMre7y+VhrTa%j@PZ^p>=#}Xy9^`3cw+**>yZgu9Sz62($zvbW@tCU4RQ`^RCmonav3#$^@BJ&|z_Hu<1R!p3eX|OJ ziR0NCP-x3c%F##;)$=pLi6Ch97Yq3N(v#Qzr&R2Dx#icOUrj+meA62l5slz?EY8Nr zz{!`LO#N;v59Who+U`xO-u>}VNEO;0@^<1o1Efw2R*$9E30bQwc}cDy`5x2wiHNDt z6Bel_hHG-P*9Q83F(L12w`Bqyad}B`M#Fvw;BNJFp71l1BU>4Pe_^iRKTJTvN6#2o zb^IWrerYO-w9u9Np_%$Z5{Ca%gdmU%evO)bfqZoLKxC9}3girE9@lIE?rmrbmbM#( zCdPC=KU3y82zK{FK_iR_Qi(zEotIny5x%hQw2FD?ylt^c@%grl9mJF|gJWgkm2n2| z+JlkqVX-K1{w$Nll#bf)av(c(rj;309V&@aQH`+!WU7Qe1p zeFI37jC#!V#TwzE((`nhD|?G%eSVaZ!dM(^ss6(8aC;AWOvov8?wQ!b^7zHC3x5oFaHNNQ=s$I5{Rgwuo5V0fxhhIb!Y(2k&!a}nG}OIEGSEoiD)&M2)Yfz6$8ffXRvq5&}&wW0lWFao~y>R7@G5)tG!6R}!}l zyoe9md{-Qq{_D7p8~RhU4U03kw*zS;U@9afWz)MWcXXvDMcJ(dkU9a~V&H=oSAj#9 zU5x$1le|$DVUrbUQ>gq(1E?MIflfiLA*x?Fs8^Ts(`e-h{v=r4z+-&uic)?@Y1 zthB!4{`(IQ{A1*$pKzy9sr`XO`E2RvFwEP{8NFl7>B#Drb!Qf60uLd!v!gtaH|#08 zlW|j9gB(^wWSjm~jhq!><(I};8~mshnA6kBNE_-gI-WGq$k^BE=xi}5`$P0_Jx*#z z7YPSeMD(=mtS>SFduCsSS!d(sqLLDNF(Ee#yj1fH@;J#|MM!tO?)xgk&6bQs&&dY` zbcw6x#;lj)n!sSEhE}qK)e0f!WWTJ%@@~GL@e2$u=1lhU-ZWx?hYgn7a6Nc1k@j4= za6e0Rh1UsGUbOPOIiIIx^OGaIW=KHDoQPF8Ilf@PuO6j&ej6V>LXonGDIt%Uibe$) z^8WNTQ&sdM!#t~P0CB!fOo%)TFgk3V{=I~ywl;|gUhC4#a3^W2gi4)14*QM~?9^el zz)EO}-^eQMWp)@A3)|*hPXSp~U;*yh4N-~)7b5A^3C5o=+$qL%%4%^OIF(}53a*gY zJ^b};c7NjzGWvMW0RalG8u0g(Y0>d=s_Pcv{2)?8p^A1im9Rp@c>#B***qG+FnLdW z#@Dh<6ae}MlsgWYZlB92>}y&=2`(@21l z^eX1q`!G>pNCNKTc|Vw8@PiD~egpomY=HkD2mDVq0O!BM6aK>n_(ypE-?st&HLUdi z5#s;%uEBqA128lHhYfI$-5LA$+Xnboh@Xnd&KQ{!Gtbs$425yauo~Qz4y*EsqvaK9 zUg<^bt`J5-hs0prvLJHU*i`%TnS|Mqo7Se|!zTk_p7ryN&9|lMTh#x0SWf%$iQwq| zx@-ON;PUay_`g1Y?tGduq7u!)WB=2auaw>;fzzA4XRox<*Ui;aZ_oRv-F$MIU2B5O z8FTB4s|Le%PYHouuTJU1`iBXB>~_sy=>_N3FZsdI1KzDJxZEXP?{5oYb?K%7@u}p7 zj2Yr1(m?0@FtyhJBs6Qn#5>{}OYN}Wfqzsgz#4DS)gH}Z1hb`kdwIy*BlbgmX}^tm z|9t7p-Dw0hdS0vK=1@_T`LJ^JKE`Pqiiq7p~8 z$2B@Q{r>q@k;AWED}^Kij<2I{oVIVfuiwkWQF@&= zLU+{}_ZOpq#o@hQ$R1p+N5il*8i!d{A;_Cs0SIE+{_mDK_P;k@&>^MSArr7| z@zIK7m={J?gWXN#F3kt>E&wwv6=)TkqP=@`j?GkkZ7`{9F$KA!ZlPQ<``jfYd?=x0 zx#(3Shxjx};)ojhL+gg(yhgj&$$rV-<9pr*@~TG-_=g82(+6SPYMcS!pbYFL3a$eg z72#l-Ds{>G2kVyB@*K2Gklkg(KuP`EOZdDQlme{Gi#zsHG$08@gr|lycP`${wAg7b zOB7Gn^Zp$17Y3grR6t|jb4O&PopYf=R&0{nP4MpRu}+vbrIOhEiM-arUqe4xxd&AuWfxJnR*PzTjl)fz z44A4QyVR?bb&;8WErzxY=% zQ{T%nwzaaR6G5oJfu1Xtt7QL}m}gc-^*TD;DU;2{=RAl0Ip2&ikq>b!xGQ=AOHHs& z5I~L&Iceuvlwj$t1RYc{z5ho$(nCuSlRvblNthdhpEt@{gB2@+U{|249qQ#ZrymDJ zbt)CHb4coxKek<1nN30DHsGbE>r@8k54>~-Tm{BaI~SdHnU~kTg`V=#uYpR|@joIg z$y?t@iR93~QEg_%v&_*#wIhJif?6W&VdnA8sR~<2BQl|&GI@(MLcTvXwSN{@fz+te$2h$;$SXoMYkz0a5ip)=59$6>pKG7HVSO;S$Q@{$W$#T1s~lPhPO zK+{3kJ(LGq|Ar$Sl>>uuxN~q@=T9wT(rt^Px`d<{Gj;%;_&|rRdK{XJ<+xY_N1?qp zRc`1PK*EAo(5+W4`tOY(>#dnBf7cM?e}vd|19vNw-0$wF6vOwH^M3MHQr|1BDEe?* zjuYDe;Ay))WMqb3uOvQr=-Nu8ex$lZE4pj&FR4#JS9>TmXBqzkFZr8_0c273?mI?X#rJstlr% zDA(K4d)=ZgN|j~dcdNW}cynGrEJn^o_zh|F93w@D=EgA=lV&c0Nf1XrU<&rDu2~`` z*XOkRsHje*8&gCHD5?rf(BcpJJV$yj3@&24d=>4*tPL9?H&kK$LY zVfsp?W%&j5oale+@KN*?;Ii2H63Jwvgp7aFj?abxyI*KI!%|xivsFTP(;e&C}Ww4%S!=BL&2VhPduH8r}0T)_72kA=? zg*>lV1^J84cj^66j5;(Wlm^PvB~s3c1h)Y}NY__4se$@vPT-#Tmr|{I@2fVHpL8+0 z{dlcIu?)ew&awk3I(rCuFJye)J8P7k9y&j%Y?GA(gY_g);GPT}ToI3Jc^ZSOA=gaE zDAZfGdg$LEA|Wt?b#QaeS~*r0lU`7Hrd980?OC8ru6>Z&)1-d4eEf?D!8)(K4xci; zAyOY6Pw`!rmO}kOLW;9{yE9+3D2QRjvZHwoNp|HtPrKGTLdUdOgvC;A-tLmiBL;z6 z&I*4-IW9l%%$f0RAlIJ*R-Yy;v-_|@IcHHSU@fPs`-YgVJ5pn3gerI8w%!unQ|woe zU@7DU!thZ4@VSXQZwQUP2H8B?KnqBQsm?Ss4bnN%(_nMAu$S>PzVF|1{Q<@>GHVo& zmO*WvV1FyHjX^XX4aZ7v@ftcVtW`n_74NJ#lA_%-e{p+dh@&oKn;3$#)S~s4B}8{0 zWHW0FeT0?njqWJA61MLt=LB5XL|$15jp8^1haBbzn1wXx%dLfA03=cU?Z-?1(!eoa z(nB_x9S;uF)1Zy1gA|-l*Fck(Jai(-X7#1aB;(^CR~~_48qc>Ox?4qf*L?PePJBt zZS*;)eDcD3GK>h~$-2Itt3p3J31`iG+c0IA&M@QsgR-e3EJvqj;h|*VJ+FM0J0~OW zeh0n&fR;mS-DRrkE+=78MdH`trt<+gJ)(JIdX7G=i*J#W$%>~==}~=(Q6FB z9wew|VQ(SRn(s7Zo4fxu`I@b-1RJ;sy!x(K`X5TG)yxOPG($ni4DRSLk~1mg>wZknh1C?)cW{4;q_;MRq|)O zj5(5no*xF?LODbSFJBXgP?GOpx6gC!9H%(}-zy_moi3lT+lutM7(j#Hr#3YQY&!}$ z2v4u-ee}|9eTHn0;a0yf+Z1tRG*ggP%?Q9W&Wr~7lY{*}JwKYXelvwZ@3dtloCK&? z8Y+n3)$ZGL8_>z+)WvCGb$P`*RuoOj8GrgtmjOE-Y7_iF)5u| z`$Q&&PZOmq2IGdp|Pa$FRl zqXylfZ=dkK?DSSpZT0c@9$=7mm!hoaCl-DZi74dz*iw#eb0VIhtKlX^!@J7w`U$$*@UKBd$>8$&(B1)=_aFom??@mwXQYh zo`*){KwyUW08g1(sKesn23lF0HP#t0`G^J>qCGFOTQqKI6wVG9-isNQt0}TIN%@$d zF@)Gq#1&NC5P*vi0XPI0t%v8Dd7sbuo$JwE+@`nF66TjT6zr-)K;r8|Yxl`}vCae^ zg~zkRC)A!U+n5j!833u&W#FWF!aLL*UyB-2l}LopfkF#hKcGV?)}v&-cXHwN;IY>1 zFR(yR*r&-@e0b|wZ#Y}yEXFnN>I*rhjwp@^igJvY zcug^bHrpqJG~s1tv&8UNeIfA}c^7mcY5#ivMbUBfuI2k%QYenn&X^gws&79p#jwjE zP4}?(FJ8*RQ{>~C`#O7mYr1IclAo+fo*zT^1@4!(MkRzK-ks0kzW()&K*sd=Bv$2vrPp1Fv}ec$S>9bA$meq*|^kJL6fVrI*C{6`&s{!Pm_QT&xt#R+F zoGyN9dx57ZPe~lTA2YiUHgl;eKw!f)sU+M6DlzYLQ;^9ZwAxdXI>efk7`pkw{?*G4 z^yN#1fn4U7{r<(~TB&Ym?Dz1)nZLa|tbN?F3eh5$6drxXp7;D0B#G`vZR83A3E9&)@L!T>M9jQ&ZXR81)2$`pVjSFAv9Yb#BTo$qH!#ilL z7@o?=pP-`k6VdaKS~8#}x_TBAuzc%>QZ{9a7$wIGR-mZFFpJOG_rSuqUq+KWmh2XH zg?uVQmYrdon}Vp7xt;Y|cjQG-+*aLN{7}`>P4;6Jef8!h@!y2Co_PjqAxH|f);;q` zHjj2-^b>YUv2PFZ=+J{O0TT)ZgLwRAI(jx5q``ITm2R%&Tj1&-s%s#qW!Rz+1P8&7 zN(`Zcq~4{5yH1StSr+fvUU_~@_3LImK47oRO1~l3kz^_v1lJ6*?jlfN(x1c@o zd+1sx70P1I?Kp^gjUi(_bIxKdtayxo3;t)CyVC(TPcF_4(n%Wmk=voqnQ#-W4f|D1 zXa_@K>rgoTenGO+0s?EMSr15FT1UAUW&1;SNEN zJw*CEZ9NjtPBf)i^tvd^L0hsD8+BP#msPZ1Y^h&FWx7b*QNH^&IAz(cYS7u!eYs$G z=vUQiEmS@qkXM=P7a?jT<#xviO;K?2GVpDdtA8xW=W+a*8-Wnd`;PCkju-FPp3J3I zR>3v4PY&|3qBb3A)@)W@V2g!|GzswV6R@4}UF7C_khfD@nK5M3&+Zi||BEa^T<{d) zb)ZN@V4>S$h<7LGKl<(gB*abGVDSuT!J`G^fJ&d5n`mM|#|#2fsGt#gPxy`6-|aHoeP%_)C-K(P4P; z5KSoV+bWyDu?vRM4`BT;!+Wkx)oZf>dPbX*BbYomu3~$$=%1FZvH4z%` zWrhjQ+3Io3qi{f#DynQX1}Im1e57;;+TGG414)w{&(esU)Uv$X@;iPEww-XbmW7C| z$siFQ2xX~#I+>yEVh*J0DD<}F4?3>Q{*|Y$Cpn;&*{X03UFSW@G!LUihCGs0rZTk3Xn27CWxI+EB3XEy` z*800%sH`@F&q+-1#y4)&ZX@_UTHWP}x63f=pFfGluOx?m?cm^lG9b3Odzuq|n`(9rh z>JiRyIk*XG>?sYqH`uJF%_zZ*O$8uqMBYh|o$dUhfSH!Uyzw1*i<|Lg3(^01oH}oS z`u8GxcRClz*ACw;d}XlVL`5@g8eBBwB{UhL$S0Ic3#*_zR3VS)T5dK^*Rni_RxdiT zC*Osxnf0VA?{s)9CA@E4CV(6^qI$AJY>QMGE`p9R0?1f`Ky9`b!1N_kXw4JbUXGF6wNOmz@ayC87yjNpbNsov z>aXwTQ@&`o3caWc%~y|OR-2XxH*JngxYOFNEfWO#F6LMUv zkXW?}klzw~Nkw`+8C?#aag|+4!g>9xa{U}7w&PP{O{J$Gw|Q)!bwdX@T^Mpyxh_^U z9G~R5AdhHw?8_vhJ!510fX}o9qy5j+{r|@P|KF-n<(PWW0-^C!J068IiK4$4j{Z*1vU)w>xk@yn2|LwiiB zZw(sL0R6mQPk3*N2YmbNSG*?wf?wbF))IQUJKwyY)|TW73{~9p(=1;Z!Zl_^pd>=f z4FXdM8*^!e;(ZY<=G-J7uB(WVPJRctyYXiSz$>}_HBM~~2xPqflLzMQXcH$kHbk;q zGbCkloGKcP@YP{}xuBb$Ohw)J(4Oq zt8%yY9@+Lu==PZ@;E4}0xjuXNm{x8~RYIeWK<&*N^UTXW7~7(!kDfdQ$&B>L@@Z!g zG}8_jJNt%JUc42&Al80$5McD1sJb7nlMS1C@eOC$Mw6(2(o~O~P@OSIlHqlrOd8@o zEW-z0XrrY-%@3NAg;7z$G~w)dh_b3lbG+r_L=`j5o?JY!hF*D@D$E~4L%A(a?@iL1 zsyN|uhJan??~!@qxrcVn$GA>7?0McCx1%X?BH6M~faTCDiy!Lj zT?XyO+Oid1c8EwPUu5R-VyV#p&;*f+LO9s0l&hICWWtvc<&RFiQ-{hp(T2xGPj2vs z(Zk92IY|>oq!bVl|N3KUuoS-7aI7{bO&fKZ%X3;6Z}-dimY)0;RJq67?&r)+BmV@K zfb@I9f<9)G=^I_qPNmj@UqV-;U*Z9)qgB4Cy7Je&^?PQ_v`E*_e`ZeYOhseoe21{x z7)I=gfeYGTcI1t;pCejmk?+t!iK9Qvt+4@pv60BIS{jqhwA7_v8Zsuut(7(CVQUat zAWn!}Gv8t6q`C0+4LUJPJai=}Vs@c+kL`pYwkTx?!g08JiSyf|YOBJOTU*-g;Z5P2 z6?IZVRA|U)9;1Fj6HU)LM#TGbLwDv*BORzRt)_41AN;Qyv=7CBDlF_Qc;X&EbxElz0)N>*ZJnD*N z$;i{s+%;CLcihu0AFCUQhEPKuevMi2z2NQIQHk_(E`@tx?1vwG4O^=+p~?aXF6E4l zQS^ctI4C4DbWLzFd}piWIMmYr?4-glO5R;bLJfxpMz*@t(i0M|Z%_M0_?gf?`y8~y zWHcBSa7dD$Cey}0u9>|P+=U2X@i0i=r$)BKP`H5M+3ne3(8Rzg$pP z=zz^F0(yZGd`G=+y4t5AsuL4Ww-+n=7b~Q*dg|~eRYYNxf$ZavTAVI1FhnKCT=}~` zYaJ71uiZTl|00g=79d6?@n~4Xn@=384@@CotfH%F{W!|FD{#ujRbUmb+G@U14Q=#V zdl|)AxraOOPfkbPBua2aEb|(83PODURgJ(N;$IA$OVV`NQyu@3eAvK)N=Bnf`&URu zYH+AQvkv2Hg$NR4BJ4AzH}i=n)lI$l!FR8l9-XjXYxsVc!_Qgzd>K|ydZ~t`PeIP= zv-gBQ<6x|33*c{+oO4in7bYo)v)yy^&}F`=y;%9iYuhmBu?;G`2#@&NeEpsuXx-GA z*|!+NFyDZ=U0~x&eO&vxNB$mRc(QACSS8MVQ0d78iPM8+>GDE8*x^MQH=wt7s4iVv zi^3RQ`{dpujH=kU=`cM*7|A@K=t`ccEC`+jJ;uuPJ9i8cqO_!4ugiqhzG zc(hIubo0e9Ba(So4y=9JiQ~eV>P8w27NA{yJ>7@vBlTyjp)-YU812~=3?o61`o41_ z8;_>j!*mGQz`W}f-oV{>RKC?#h|A}#(F=<^=8n5;bz)LE?y z+~kx0Y%Akn$x!yq>0`fR3$-sOrc%9k`?J$X{{|62S3Ah^<(SKasFr#0U^~5CyV`C; zdSdOjA`8tygSJNwz|Fv+X+{Jkw+XDYejq$j-*C-!R6Z=Ii3vE#Cf5S~=j{Z9;{qk!29 zvpMOQyOZ-v7Bf6-M9RtXSHYw1&a5;G`F)9ZX|}xp*XkD!E|0TBB%+e7+{e^*=1;aIZ2Uu5xmLtdoP%J}*xO1gNQ9 z*(%PU=n2LlLK_hfBO55mBu*O^V`4+HS`{1cpPa?hL6;+hG2ID5yH=CA(h+g8@(epP z1pL-O1vo8{w1~*uZ%u z&9X$YJ|qnbnyCi3xtwh5&vqhGa3Sux)SnkUds7~i|3m>Yl*S&K?#+1;d&pL(rydL6 zkrhvcv>vH*Fw|T`^wxf+>HbyWI+ZVfg?2AUmsN87(dnbDp4IfE^HX7-`$EZ99%HR$ z+yMy2kQXf%7%6>1KVe3|V?)AAvFdm__(z;K^7>tv8}w(O14LsI+YGG9PL;{(6Z z1GU|-xbuP49-hVfFn{!ZUtuI&#fnTbabda_&gv=qj%9iAKw)J?TCkpzDp;;vAKPI0K7u#p*Sx+v4o;cXEIo$t>;jAU~qxH`-s1`01V zl%2%cGfy)h>$A`Kc*Bx&>olO!nwO*GywHyuWP&(L$65O|-JCU}SLW*kLEM8evT@Nj z9*z+8=)#dMo7bo(L{MaxRXZb!fKM3%EeG4hHE1wUjdzB%R)ya7p~h-@&B}b@a3|zH zsR|>Vjd@t9wGdrm%ZECmBh;aKe5vmfwGMfZDNoqX)Q?!&H9uxv&`us9#4az+?sx3}`v2U-2^KWfFy(`AfX=okQ>iR;MmpB33uVB1(WXT>#dgRS5aF zgEgxa!hENs1!2k{qYvh|MONA9FWv>s9H*Yg@y%Aa68g322A~#G+KQ?Ed@28JTalyq zyzZ$C%Q>DAM8aUKBo-N=`h}>y&S)?`b!y_j( zD?1V6ThdEEdd+ujxse}!HX03UezJi!xC#}O+Cr`%dO2c+TV(@F-Ve}3jYZ~Fuv!pO zNUZSxA;o8vb@2QibIQeRtk4s)(SEEjt2^`AxQ(gmi6LG4@w_puCTSCD?yn8hpDz&C zX+QQDGrI3|}&-(H&j!vf`1%0JDN ztFA<`3Q)LX(Im^!JWCKQbq23+rw#)Iz&#cX*06@d8hLx_;LAjiwWuy*=l zWgM$qYtOqN*S~MNzaaPK&uUI50rFgV0yg<18Z7gjz}L;TgOR{m!be;9e@^UhR*Oef z&hQs(QS7ZXJ{sTPHYoXFbUnzBcT8FooW6-$e@CV?&Ja5;hE{QFt>mu~)waI%7WBl= zk*Fq81T0}XBzl=CPh$g+{{*E~wetEH99BYf*uMGQs|*OLw)z6hiD#oNJ^7|fpQXIT zyU`BAz$R5;qpw=55;wt!MxGZB5Ai;3CO5)$6;lv2)1JQ~4 zx-|OVCs>L%J3|CJ5>Eb%#M7kktrPwd>FN~m1FgxTzb-}Ba=dL3%m|fZ2C787S+`dXEDveub=$#YY)beYAe|7tsJ?@Q1~Sq>ELTYmUEp~p64!Y}fa4$OhE z`q=>`?~yuwX`G3TK$f>qo_GguYV5e&+W5;_@aB6x)Q$ab2f?GTd+T=Vx0O<3@8!eA z@W>T5GWX;g6Evf)GrO}Bnp5YyF<$Gsc~ZFu?tjiV@HzKq>01ZFMBG0fH1jdP8w@~v1t*DYE-^m}cg`%Al?KcJ9hN=p)e1`O>QjGRIN8aS zmQC7|r2A&gp(2;$2tUlA{NQpcc~Y9tI6o-Pj7-#bAd0z<5j^B-47Kf3@b z6Pa$|-w4oA<+SkdTSu;&0Y#khZOm*!41A$*5w^&|e~p%alHRXz4dQf7O+5Nr8l#H}rQ(|=|%G=7v|3MW0(Hc_ePtN5&mytQ*0L>~#TDU?hC8@+8u_&h=n*GL7mQWdEJDbmY54O6w-|!~UV5dygudAg zLiX+|+#({IF7>{>1K3Uwq*BE8h-IQ@j6hDNub}21YFg5m#EAL0w$vfShlpp`63zw= zr4q+mFGio2?95JUWWMQYjnKZ8-!Re#D&V;&aSIp!1{$VIDW#xx{QZmR4f}w7BNH$^WKPUh=Qx2?>!bI9f za&30PfovpAV;HOxOu923&G+w$lc^XW>$8to*n5Il+o8K=U4g$Ken{#Yqr)KTeuvRh zf}KfHj5&)_GYYa=TM!DZ#k)N$CkpEFFpI&6^6$?CY^AeTW-hGjpoJc4CE8T@I&XIo zp4h>kt2JpqNDO^lb2|Cdx0uW3{p1{oywvn+6MjU~1f}v}SzTttWE$!-MP*r8Yd`qb zvQQ7A5$xp)ECRbIl~0uizA>{_jrC3%oD3JJ(uOyV2HuEsGx735sTaP!rI^93_QAZ5 zo;BgASIQT}*aaP&?A40A&k$N1^qMCf;UJK}N2VtOLvgaeAvW!>(+$LjoDx=bZ)ZoV z@}QG>3E358!so*GFsp~Ol~k)yBB_bhah4%R&s_w{0ZEUpwidM<9snu+!ktyCm==&v zYJN1*oZIQJafTOX<3@VSiI`R?GB1JIeAgjc9vO4lh%}CQ&SoT4WVq=@Cl_q!2rjl2 z0Hs=g5KkkDfci_&Mb{?R4WH9JByA89{cNX*$fM+*Ix}N;-MM-*6*0IH*f=U+K(iIM zk4OCH9WTO!Iu?f=q0P-mG=zTbM*>!4(Y`vJf2u8$6jAB{Iq>q=FDzvL*&2>BOka+7 zJ!l~n8FJ6PTGbFTw>RXd=m?s+=F^tXo95ZP5MW zlfm>v{Qa_C16|UKs}J2m*!dS`;uJLP_h$YQ^W{HYd)8IB&%%J3I*?6KtIEMXVR}ZhF>AECo0zLte{PDJX^1C zJ(qFi4J`wdkb)n)@JP_QsLejGs-9x|QmRKS((lKn&lEm*EUvipMf8H5>FOMh6YkA? z*Z}Y>ce+o;DEXRhKSbVz9k`dQ%Q1_T6eEY1bR2$igY6;v2jrXM|izGd0@ z`_PeLxSPB*uCvR}X0kPl)Pncc?nEGtw#W?YcR%ypAwHY%R2Hhv3!3NJn(m^t3K$3%<;5>TlzDL3YdaO1ABo`0+f^3zR(W5!%phLu?!Vcx+c z!3qXD)L`>ZLMPZER`T4}IW57(GMS}xZnH2uBwI+lZgZFWZC|y|p+)8tsB6XHP2iJ2 zG+)x*Y#)>md>z$PR54n*Z=z0FXf_Dh?62(szs+c3a#_P{YtO}B@H?%!(e_jO++EBpFDX4 zybbpaawrGNgOcey=y}UwVM2Dfs$=p!~T>!K>4-f7E ziQiaUaD{h5?pOP`W5895<)#YBq2TCD^k_n91$4oD&ZL%yFLQ4=fIz<|6Gbdy@&AdJ zB=Fyw5&pMc(*IZv@!!0p|F}2**S)0w`m+BAz$k(LG0^hA^pe;)c>Y^b1f25;jQZv( zb9je)2TgO+`3Mn0@cfKIoAKkj ziOJm3OJ18Xv8d>$o%EleNWjxWAW1}WU`O|8t&;f{C$c|V-6fwvk$|Z+rw1~{<8C9j z*3}=m?c)_66^kan-2y%SreBJcKL1U*6l*EySbydyA+GjB2fd-hzNvQI=^no8V;fs6 zs2e`ZI<>Yf(_f9__QXn*2B=j8y4$rrt()Ywac}$yAaR;*|M0#ozhF$;eP-^|@wzz+ zjWYM&Okjy6VRPE*dEIx@(qk=a zV;<*xR|D`wqDBcc{6gD1DlPAH(6bbXoA=P$|5Ll`E8OssUfcZfA)v3-iwyhvbLlxH zeD40Ta{5_HQUGKK4!~*K0>CoO`~GAFW_}?`6|7J`l2!Lj@qGhuoa+KtPgkdMVmK%p)2a>X?CEGULvwgFdx?9z$H=UmD zh~UOWr`APehv41=(n|~BQ-`1kwT9cG@~%Y&po-%$Smm@VA0l!m{Yz?}l}@8+#{r(S zh7J-JC$_&A7X*Ug09s%FC^^5_Le3k^zPvSr5CSMyb}b+y5r_a7k0LO|#u4AG&uZvb z4r1t4p__7&_($RD$Mi7D=%7%>Y5bumrbPggL5qhMHr$!l=c~?8R!V#~lqz@JtZO2T9QjBKsbfIPaGqYWfR)h2l)(MvF^Zrj+az^j^OSsgYxH zCWJ6@g8?1zOy|4nfM7R>FI2k}_Q*rZSUG$@l%%ne>urkSi(GF5`w~oUl(H$#vI%&H zECdsF_o-U+dq9p9pQ;+5EpPk4SW+K{a()hSh8lJGc3xH3sA3z2=-0a!m#G*Yyj`Rx zx}AWo+gARzf;PVt4(}KDnqG1r?&-4jyMQ3h2sHYPTTN-`=U|RV5LGGtz{nk?9D0F` z1p+XLkE&P}2kwu{KkweLa%`vWo@dTUrUR zqg$NGFfy~06|BqJ?c8wnONy84a3r(~Hfo<-OEUEl00NSni)6>iH*l_QYcH!}`{2)w zZ#J0me_5(eD899nzwb3nmwpRf($ao*6HgA&y;{AhgV4CnlAGOCN8qzQkTlS%crhW; zddwuQj$S5E{2rn4^AH1tm?!DmbQsQ{1qABGjCyhE!D(?v}>kwoSC_B++yv2UKlYPnw6=?yT+Xk(d%8w;LhqhVwJ)36C~v)LdW2 zLNR5uzPrAU+s`@Cvn*dYxi*|@p$^Wrx!k2Dje}1DXZCJ-O^X#2o*lXN6 z5ry8@=*vOPGWVOKBjCYq~d-sH}Lvy0$pW4r@J1NWApyQC2pP^$OE25YfO9G5B; zGKzSPhN1KDeGF#H8pR-R`EGoGjR`8abfkb%N=pmOIm7+~UsJs`vvMB4dT3kH>!#GR z8g8kMtiB6jT|^RXn6fz#1EF)G%wLn4YzSOsYbqi>66zfSZ6p<+#Oz#-i10e&KV^GEmfO2bcd8jg4K&tRDisM z;2WG2`U645uj!b{7^t$t7M*9*Ajtp-oc&I`Fj~A{y_0SMk2@rKUg(=i(HSGCev4zG zqoP%9a;Ciutqp*CG%FQzr(lNPF6;2&O&ROmx7r4Z+G*qC{d_$Upl}%BCKLzUTWGM6 z&Xmh6lcy-sA#t>+pL4_^hoFOtPTVkNcP>3nerm|xofG@ax7c?hX6@jo4f(R>Qdpwc z6|F2O*=lF(yKsKhT&h(o9nx(elW2ZWln~Vq|8?3kUq3;H3pY{PxXo(5BNHUGbEvN? zyT+_%5b9b;d^Y~x9(kKgIgV8X-Z-3Wr0IVcf+nm&h$NVdrqOTa2iogdMPkaAY=u|D zUFwMwX5&YgSV0etvQR5w+B4VNQPj{_;8Izea#0ZsNa9(TYZbxj4xKHRUk7U&`L{|e z?1HAYPKie~)@(;xcpk+86s^iL6nL;-Q)M>JtQZf%DVs+$0L40`bbr$o(}AOGUFi?b z4I|{BCR#8ov%OOo*T&>Aq0Bnk1_0PoW(<5=kpDidFL7o?Pe~od9WljvaF!(neAF|K zXp3yKT!jcw(WFNs2Nw#S<%(1=h`mfMQ{e-};C||b|Es60;4Gcz-b_7^Wo9nM%yZTy znA#;q?Tfx}GCAn8Las24;qllTfXntm9f6*d=y(ux<5Dg&cza{N;C}iqNxs+4p0{$@o!uci24BBIE6N@vIZ@RG~CaU{jF3x!?E6zsQ${CvAu#s9o zCyuNV9ARWbC>`=>gC|MnX%gF(sTnc`c6bf=lUpQ=QB)%r7KY9?L$jRxJN(jg*l^gs zDkwbmx3W=RZDK!L;5Mgf{$Bd{7dcO6r^F*%Ao_)b3GR`J!-emSWx1>1W>1KwXb3hLd?ga;ljtjvdBXYBBGU|V> zPV481DY_9KK+S;b7++=TKC}Vrt(=1*fF`r}>TQI1#>zXq zqNk5|yAt*rDZ7p zcG8VWyiDT^SM~;A$@zM=hz&N@lzMd_E$R1bkj-S{oV!UxCw+rsi zPp)K&JyWO+eYG%Xgf1H#R>;uKXVOQbO`7UM?s!4iN~Y;HzY>N86&lp(;P+Lc-2!Fk zBz-^{G+;g6XeY1fxd`G5{%I?h*}T(hctcq|5;^2x*ZtNp_=WM!TiMlEp2y^Y?txE; zSdDEYZ3V|P>8Y`@Ti8W=sp#4+zd29s&j9$!b0UKRJvSNoHX(M9d`Kl6m& zlSm0(q{WdM`m@wk#!AEd+CFEp5l#4CKH*THBEdIiXlYTv4>C~ zFn!W4wfozqkrXjt$C6P)n44t7S!1N6uQeHpBNATVXjhp<3Y;^`?fe3Bz*G-~X4G4n zV(qkU2CGq=ebgOiu?*A)szt?ACt0Hu|8TDe)f{cMTwb+P#m`qy^tugL~Dl2lfi5# z-SMz*xXLe&y6J%&f%=nW-*_~M0%Y`4Mzi=qi=>dEO02_Uo=5p6{-9X|P(9QwWvE=W zd?XHsmqJis?=@u$Iwf$HY(Zr03p!((51oU&8(%3Lz>1hGts$PVVUmacLV)hAfLFPC zG0u=dN&j@APt`@wl_{JnO(=aMVV#79+@&HLcl?32I3{LGElC&R^CVB`cua=>$x^Wd zI&gK^*|fLZNYGT5YCuO$P?+p=*P}S=3(%9!;O-9nJ=pzQJf*9b-I@1yXNOw2Jo;kK zGy~O4Qh8O_dPjI#8{4zW<)&6P8VC7BqwfZ(aJEPy(VB$_O5{r0Y9nA`p7_eb{H2T8 zl_TvF5>>_XQ8j}i`5rJ3G5 z(h5dz^Go`NvJBWCJ?QDIq?&@!#k&nLY5NunW0OdndI>9e> z*nRpA>ik$#!FEU~4G#E33Rf;hB>NY@?PC@6x1%c5i-Nw#b94xTT>i5L128AYlxLj{ zN`n7HWn_avP(y(P?O}6ZBF+VW+SYV*rf4+Zp1dp`WHB38<-GV9`a(%>NZ9HZB^xgf z&W~834`r$`AC0DDZdMh_sKN6n%MZ8?y5Vw_Xi5YaNj}ID0~BXZEOfg?JY$FDJOBLD zjDpy@sJBs6%dHx0pzZJzwGzf;HQ6s0iovT?x?1{BLcWGPugXY1o`f}xgZ$r3 zCY~Zq2o{T)-*+kSlKuFj(LXXQGHzuEsJ>ztB_LI8qNtmE4dVVByea|hZwaB()lMGw zt<%8ywFAtMrXw zRlU&%ZP00dv^?skPAbI883;TfJt1UQa6C5Labi`nCwq{$Jq-9Z6uzf?dW zYeBtF=yOo0GvZ+X5r61HUcd(`J($#0`PslJ+rRea0arGEAuCj}gKVg3(?r`vlwYTk zF<4)l(45q)PNKFdBXnlq=dz7wFQ9rB_Un!Q{*eg0HBn&zpAOggk>mE{-)jBuIO}6F zqroRcb_Zxnx4M5{x4*J7&3Wdgr6f5(%9R*Oq!10_I7GA7We7m^k$TS)LbDp z4yq+i%am}BlkeB?q#j9hNhC|*P}>6dw{P`#D;sSvCO*sIe)2w7io#`>l=3_xXXcz{ zi|Ty$Cp{?Fo8?V)V;iqpKa#2_cGZ41z`*did&8XGqhf!h5p!p)+{k{o+oA*29zPEm z^gK6WhoTqo)@WpEt&bM&Q@;c?70Fl=h{+w?aD|M8w({O6K(7p0h-o+FX1Ax}>QP*- z#`UY(IWWEj3tDjJJ1>Bt_SxYuyG$yyjlPUH@z4{NyS!n95Lrx2fN~?{aK1)U!obgh zQbWZkfW7FE?@cHnRuVVkTFd|CO1Q0P0^o1CN3Mqv>W`vNjNlr4h#hJci}EX5NX7UW z-rucE9!A8!G6|eLcN{~=9qT(%C|xK8!V`y1)h}xK{Hu4X{|&Euu3kN;d6tqcOP4^* zI6%XolSdml7#4-MixaC_ZT_&zW{!~^88M*zP7u1SUoh*25;C@Nvpz>6z8k0l*QY$m z#qp=ITltQ5L;nY`lEFaZG(3?uQRAUpn^Y|TGS zK?=7qoqqmxyQeTR5;N1<1JwkdC(liAgHwIJ6`O|*9!GETUhAl9-Yswg%usMhS~E(v ziEkYdD-T;wuQ3Kt+K36tkO=J`ot~@kjg~1VSasmSj(Jgk79If1J^88q^bWikQe#x? zV3oMOFhRu>LOmzW4xDd{?eh75XnU)mNVo;-5_fkiq;PjA+}+*X-QAtS-Q7vt9SV0R zafiYR*TRSI_DsaRGacRY^1tO1^R)jJNnpz$3vDxW`I7 z2iI!0nwq9Fxj(bwG8;a&GfHIl_d_-)7tlr10$Vu7@7g)I8vvfj5MQk&Uwhuj7)&b+ z4iO|()bDifffDzJYP+0PPpV7pS`4Ls&mb0#EUHksneMAsp*UAC| zO_7-Rp19sB#s~!QtOIgaxPWVvWz(Pe!aEuqE$gqd<@klg~TTL&i_=Pcj=Z1}|}o8N;@EsY0$7DshRL z)eUTyh>*c5w+6LYNJRO!u4$0M*|G`dTfp`F7KUX!q?D~VB6X=^v2o|3mTjAXX;vEB z{@+S0Z6w>TDbFLn+rVxyPPyv3U}ziWWHp07=QI~6l5Y9nv}FbAjgn3wKZj zR05)t3egX;M9(f!%M2(bkY_y1ePXzzGOom?P!rYdTUM%3i;{`3ze1*kwyYL_AtCy( z`*LypJ~oeebZVuO*Ht(!=}As+s)#|vlYg4BZGf;0-qK(lrJRdeWaN>}z#;-ZVzsS5 z-Jv<6ZF7pssZgM0y5yjKsN_?~p-8P|*}+mRp7SM|H!PhcaUP3w;HR<&s4-9R+QEt7 z%4mB5isJN($N1STgk+i`n@%m$xY}KBF|E@zH)ytpy;$583%1&leuCq-+#D07Gv(f4 zMt8G!m@EdmxuZrsteEvNQ!Bw?IM54MF&orXBD<=!6^hj z=d1D*M^%wkS2tMYF|AmLaCZBApAGsTgxdc*JncaK!jhz1pPq1^c|M>sn32Aq+@l_My*%0dKoI$yee$%^zO4)RymN5)yu)(n{Ji_xtKxb0#qWK8 zd)?^MTWC{7{?b`^?;Qv9lsd%6f64%;!F2*e&#{>AOKv_dy)|UXHv#KS4VTbymnBmx8v!-wT zC0pn7Vqu_|5Zd|dI3jt&V1%}9q3-|^{ItC8US;lux?Rq|<8Iv`?=@RRz;;vD(d9zJ z`a;0i%K5Y8gZ#F%Z(YIuw=%-}?+K0mI^27OIg{j2r@ zX>_sL_Yj;o)2dmDT{OiNOx(SJHOv9lY<{jNDRpYFzrV1-xb;BZNg2CGlkSW^WYZUL zN5G-=v{7tC4VkbIor;S%u&z{!t@6vPhsss(o*AX+K(hN!9t3WN+c$Kk4@+-4%Rv9j z4eJBzRm{@xAU=NF6PV}D3c_ND+&nM%3J^sY;njm*{J8ED&N$_?=P3sDD&+-Ff&>L@ zU9kL6-`3?8Oz%Di+UzgpZXf!*p*IN2(OjLgWNU=0?L$#;BIVZk0H3F6F~k&*8|$j; z@MQOeIF9w~YZt*>4OQmwj^mdTS<-@kR3+>}LB!9nO)?jbcs}h?^NQ4ba z)=cGDDg6AfCWv?ErFUB?jGo|Ts`}bn%cUGMfyXNutpwU4?W$5tQHqUuBun5xEft2) zL&131aMLv&qM^*O*|TPcOq}S!!r^cV+D5R2z_+Mr9D!RBwywp#>Jkh6g<<@r-f_}f z(85c-Da5DYk)0yRLTF%&1jVcw1_H|jHzuvyZ;KWY-x*hMsd(hdpf1szh!>b-cc-Bb z`HzU&wZ$*(^pb-=Q7BtXG8GPbzewC^gdq2vhOSh5x-?-H5F@U~eZAah*Wh=%UhAb2jzf7ir+LU4rs^EEUQxQonDZqbHVEM6#RAR9aKZdk(0j>L$mI zCyF=VpoMYNdA`w7%=A@1qn}0SpwPcmHKg*4=Je2OIWckpDDC|*uIbpx1-tEm5bW$5 z@M0S8IMGsy`h1;@6}kF+0MPQ=E--?yT{DJv-7}+qEEQee)Q6a@3yzTU2FXiiu`Qxw zwNTE~>rgi|KX8aQOx3?mpeXMs6QJnRBP@}^VoH(QR|FU!_hL^@-<@|;V|9BKBU<;E zwl;IDL_o4h*@boGHmfC8Z{sOQAd8LldO8z9UmLC#3)c(x5) zz76?=IMKfjjX#eBS%{|_9qOz51;+(UWmxh_T->K&@a?F_zAJO+&EykqYD61-*Hr^1 ziW{tUk20UrqiE`;hB@UlfjUi`Rm%-;!rvzbi}Sv83g8Zm+{~>55i$aVa7e$)dlpnD zMTjO@bAPao+UvM77t^ebGN0wmOC z*3*=q_|JRUA5qf{^pB1r{V!}F)-%P1k26c^h@1@<_S|Tu&T0emT9Qsem0%AxE6#W7 zUmBYGC98cb&Eo+O!7}_xMmh}nd;G``+uLAzo_Knm14iZo-Y;)N>bj$j`6_Jmb&e{p z!ezG$RpGz(#gU5^B9$!!DWObay+o9l|N33rOIos0-^>G}am&x9L7B!gUIzhTs$xv~ zP3g&U5Bmdl>w3seZmEiA-g_2aK#5%N8$5lW(?U{QvF}dF97~EAx0VG44knCE-9ZN7qkJ})RA+uqKB|c6snS+m zHyF(Pt?cG;s4G|x9K_wB2d|JinbZ(ok=gc)Lj5TQ3UN~`OD1XDUA+mAk=GIW7v`LE z{@xHrs9)Y%&5K`Sk%`Vm2TQHqG+M5Om4m4n*4LFesN%JKwYBhgV9_W8-4%%qjuz6i zC5(sGMKn(6^|R=2`KhCf-?x$2X??7RVHQVE1V%*W1V6B$1BE*AS}lZ3xlo)5>!ugv zBjO1~oLjVCWLUaH?7i}z{UyuaTJ}|X&yj^^4M^i2)<)OU6BWplWIyeknO9X-f_ zfJR7Bc{0498Z5)_u73I9dM-F`=o6fsT>QJo9J5S$E584Q-Xpl4qv)l6Hk*bW3_kJE zv=?SX%UA(X(CP`TP?1m)(5@V-YFejTa-~SG&aKhI36eY!X}M~2=4>3mdDM%@5is>s zRW7IeI*zjZC5)al+6JUpu+w)bKzr@O1T(;KuofW(MVPTUPH-Ha%_w$O*d|W>L>G0S*EtTKeb9mmW@~v?f z)r_E`E+*ur1wwCZ7MYhSMa7ice+BFLk~_Jqr{pn7{{BM!2|MW83p22;i0syjbRth- z@*LaXh88hAEJ~|pDV^u3hEiiiPsKyYJW~&l4*Tg2mq((cr#9V_fXan8w5Tg}R%rphb6&ob(*ObY{IBBx8lZl$i_qPI6f&ah*$XA;k`|1Wi549Qvg{Ho9}9YWx1? zbHu)(!3!KK6Q8Z!?W7E!f6*C}g{9J`f*>ReG^aJS10wHJjJtVDA>kSLilw_4GASp-0I|jP zI3=!5c^N7n8CA%uQv<%A^*Vy3Hp|tH9M&>?i=qZ*wfOij6A)4MBIDa!1fJDTvK5m}^E0xOq`CQ2&>Fx}KL4%!G!yQk&8>V0K^HGK5tpcl^ z2vg+7@-4WFr^oo(PsaBW#YCvwmuP0frh|sZaR&V{R189ADiaScfIF{X5A->PQXf+V zCXL4jd*`xbO&Zm<{p_eCV=*=VEzg6_?K6hMP-`C8KA8KxAD6qzz=^(8)|5hDHCj6jT>Iw|HhBfk$fKO!2;+^{D7VhIy? zLP7K5hI;&|HGl-rMrp#?uazFGMY~2P1L!Y{t-BN0TDtlYm+w^yP^b80vAiVnz_=&Z zuLvoYlu+l(Uv3;JAltv5yQ2_rSmDwNdGNrT>HI2fTW<%;&jS+vS^?BdyjNdjm zUsE^3!43y*buX?u0x7Z0iWE2>{?wg0$Z?|xL`FE=u*<#kV-Jkn2S|AS-Xn?$d9VBi z5%h=g5AlyQS1OJBybXahAxE_a@7j=E!0o##bpJ!8-BaC~5DI5gh~W>BpG$z($6?Qa zD0(h#NME?tgL)|rord^p-LFeK`)&)7lKgl!@HPD{MOo9B>Q9+@F^a6Z5`U}90<{jA zsbI~w?y8|+c8u9c#{AmNA;Oki&Jw;ICgI}@zvkRn zEt@L%Q*M(YFxQ^In@nw;>-z@sgVUC-+FJ&H2HQbkZZg(4$yi*L4IVmC@LyH>M??6d zx34$Ci+rq^?McAd6n12m=0Ee-u8((46fBgU!lH;Q;P%IkII$mL;+$DjsSi}z%W`GI zkHqiL7Kmf4`RuJfP%oylN<1^T{HIg{PE3IB&C3{<1Zv|DxC+&g-*QDU=h07dt9uH@ zQ{mNG{yd*`kn3B&_FLtGbYC{6g@!&BxVe0M$rs9SN8y9b)c0MtA3M(K7Y z%kn%Z?R@~GXjtO0u2t$4LaU82+JSLgZh1=;0_}ymMHiW`KV5+1g%PP^yK=SK0oAdp zmG6ur!?Q;uRNHB_nW!iPP~Nr*vD0{hN}WdB8d++4=5=Fn(B{!e)p^FQOQ}YEcNy&K zemY$WO>6`Qw|8l8zNN+744S0qey9T~i{pa5o?Uk(Ovw^vNp7kXr_gH3!LIHiw}VP6 zPOfpSe9vD_-o=LozR=XUs5SA4sGMXp*re&=Ojh3TPBa=*Cr$Q)(GxG1jh=A3WZ_jY zdX9x*Af3!*s2F6zgFF|NlnO&}kE+Ydz>t|!$1ciMg*mWYcz@NuS7XcRsv@D%vY3yf0bFQ$@94qLbC%N->vIJkNqsr_ixXh#g-)>(NGZt zy5|WUTVxO}WT4Dhnbc3;`RQ8sSN#ri@yJ#XNtg!czu=siY~TeF&>4!WJBEyf5?5hM?YNu`WeO zWlu60Ru>lnPwN9dH;9WTotk`#F*4)D3z;}%r;I58zkL-&qaSo;d*D0k^n4rP>~oS|;p(^=-J z14=<9YCh5Xqb|z#jOH(7S1Rc}G-X!$ka;nup+xP}>9Tm32M8D!kL`=j)zt!db6d@T zW)c1n&^=MNY`J|s-=w*UGdBhcw~VB7I_bMgJ^i$O&STg1XYg`?xY6+v&l0omwXSb3 zi9+KW%5mXZ)UK2%KAEM*(4Fdb2MgZ=`jIek_utwV`SR^3nb-%K2&^Q(lrfD@2l5Ve z$@2`Y*N73Jk;TEP3$OL83JrL0VQ#7lPk91v?1IT#cLdmfjeg##LSsVOF;=O~58UQ__~Eam9q~)$jhROWP!U z8u4j%$)Hj{H0F5Z+YHZPp>MQ*DiSTL`cRUuEO=ifm$rr7{Yo>mnUr3f?*de+w)E4_ z%J8~e{5qcw7Yw%M9V8ND5KhJ()`$3XKF7KHF?9wZwrHzjJN&(Uz;g)+c3IPKiz|Y* z>NHuZiHUT;xoO3ay=5qyPy$UG@#{xf;AGAwBQCpe1J%#@oAmxEw`;lFVg(e8P7j3| zDCLeQBdt>Y=TblSI(Nrx}Ttq!foef^5JZ zp>hd3;=a9PHkoK~Pkt+-Vex68^jpi*=ogMQr=z<{0qI2=FwZN;g8ulnv9n}KhaRlV z}WBtVXYR>@(4S&4t2{3~S`gUca6B{3yGk(K9w%KQn6G7WU(12x zHyVFikmT=L~sX}9;p^+ay8(~!bG~N?t!!irpYW$Vmre2x$sZHciXL zP+CjM_styDh&ZDc;?>5uO6q+JcIx)QTNO?37aB!r(iv>y9eF%hZ)4D=H+T0>z|pQ{ z0mS*{Y3NNYUK*?&z(|Hy39%%d%zl+EeK9U62h+3aV8XUt*m*p8N1Rmw?2qzYXphu` zqhKq(tZ4mZM^i7vyIO;1lh1Fov}YT4)A1ihm0|nnhgVV z?Cw-N68I6;FoFvnYkfq`C>UY=(p10x77$<6vUZ}o>st8ey|=G*QLowjS@GMn!I6~b zux*^1)44JzuiB}vxdSi^>vvVBKOzst-`qwMSI^E>3~`g{pl|43ucY%N*o5iGnk5{6A z_uDqco3agofX_O{KkXTC9Ec2B9x{PGs+e>Gb154IK{ z{XJmz+jM94myCcw2B<8GDSDNxFYP)S|ghA^~~RynmO>h>sUFKsg!#rh~wwQOcR!VnhVS?dPV z#lo7OhPK(8GQ(;J-i1={(|nq(a;0sEP)5(T;9f-l>x-qYw7s(!a9iR^*_Q6N(n}lQ40q9dUGW?%rxB0afuQ$o1v&W^7FAvd46dZ`1U|h zKx!WU3fHsKtACPVeu#-pXcG*3Gy{81V1n$h;sSAcs`zMgsXGRNbTG6G_A7HQ z^FB>~K<;iD!?qOC!f0GCLt}#;LnB|S|5*U|o3yb={C`&rIHNDTuDKLEIgH?55d@Jr z652or0|_1R*7iEm{e5k#P>D68fA3eYLy8!#mUnP%ZuSfTWD9l%5N{`)9t98`<^DK0 zqA=J%4(iKtDZL9?iEotSkI8;m>ayXQl~LI6fh|ubbYO0M%o8&M!zc&U=`4!VPK$`s z)bGR(!P$RgmWtwoZqi$Pf!-g;O4)AF2K01jxkSNMo6xno-xagnCBY(vk*=5Tv359nY_ ziEjxabK#WsbIJ;LUpDV8RdjtDMR1f8tt?|4*MMxtE95BaKd6ajsuUcEY({8IGb2PTvilq1Pd2P|wzXqM8>|Fa}X}o)Ms1--A0G z<~z_9olPquIgKFWd5xpFx#Z82EaU7PMu--HU4E2(cBJ;i$QkfTC(d%bnBCB}`CV_R zu$ZTmqv;^zBpzz|!WIi!N*u<~{fU8s%(dC51|V)_gOmvpE>%^Cw57KOY6k-V;ICRw z5JWDEdo)+xQJ_pmqspB?Pca07_cF*5Whm)9kmES%4El#vyUT=R^RdUwtWJ|frp*+9 z8?~d)Fc^CyB?!14MpVlzX{%Uh@HuiEmjBD|j32(`j4rgF5fVlXF%#IiBBjN62XB$> zAO6G5A32y8M_mOgXgc3mJne)pi=ztfXsj!Q7C$8<1qX^gWS==IdUhae>INpwhJ<$?&djY40;@ZO9> zX$x?!P0NZrlTF1)-oeaddm3#Fi`(CqM`zkjtenufuhZye(527z6hSa^PD;~h6n)Wm zi?QCmp#cgcR&AhRxvc8aLF<$jC5fL+YL1 zJ-%FW8ZaJ(>TF=S=B(sitV#jE_pJ)YuJ~~_ffQs-J4svziok*z`m*1y@xgJrm86L9 z6V{D!a?4rD#+O17O!o5$7Ul{^jrN_62^k6Z5W1*=v|?VMs!Fjjv1A8QKDDijNjuG3 z^6R34D`qR!f3etfJnM{eLXfI$)v0Cp*&NC{B?3vBb`?*1bAk=zezCLPWib6p1ZXA6 z-u3>Vv}xT)_JQ7#=B{W0WEDdz2dRmBu6}DF;S`#jldMud=FdV;KpyZ)?&ic9!6__(MQIb17)cI_M!tr(YzBlM-`Zj2Z4bkjd`;786p>Z$CrtotG zgy7`N!?O-90vWVAr$K$;zItitD<}1`2?u5s=5Q7Fw1vkR}Be?o9Rf4 z0!lXxSbwHaxy4iZcmH;^b(XY&xqhrb-&G(di5wi%_OL78;x(R( z;%-co8dTaJ-inbNe;D&~3%XYct7K3Vnz&n(BfzcTSh=v)-FMViushlv8VQWCw$l6W zf)F!M(-6YI)Hf2dnM;YYqkBX%Q*O+^{KI*nNkvySiX!+-bTa+l7t4I>MpF1t`!IaN zf}5+udVJGD07#S6eQMW?oKtXIDrZx;ZUHV9IdT#pNTED&uSW};;P7oF1>_s%6@8(W^_v+G|gS!gP%(G&gK#59h@pnK^+~DG-XbT0%_!awu&F4@o z8l0CbArap4XMCBzBctGQCO%s6kFDPEe#x!A4)5h}DhIoc`sXyZOIWudvLs9iF~LQa zr5>F5h>}sStGJex*6u}V+#M^vyZ4z8znh%KL-hI7Hl*tHejeLxU;RQ3um5TWv{{!J zK&FyN)e)T%Oa&Y5gg8FJF4xn&caxMWt;+keJC;OXh^9VhGUw_NLQ)q_u1*#y-=km5 zBF8G%wVLOoptPQB`p8ks4fi8l;S8sFm_`Hx{%EorZ*V|5%{m`H(Sj{nq#c8?SwI$HRgO2LV7;fw1XL8!w*XP`+(gj%_ROG>uINu$NO*0fm#a(Gr%FeQ3U zVf${?D#k#@_tMxj8{1}Cc8>rTmGB?}>UIm5#m{!Muk+^QU}d+PQYYqP0{Cq0AM7Ti zOy6X-Fc>DH9`_7I)c5KIeCsXXnhQ!Z$YB#ARK1}p#jX_JRrB0%944f1LR~_04efiS z0xOy}u0kdKq-#~sc((S`J-_vu;sZc1>ymue;&Txs`cglZA!Hwt)QAN*<2^WrES4bz z+{;CTto9%HrS$;+O*vhh=c zC-$D9e_ATfTOeOW)8a%d65~YP1G9248h2kTd9lG+6*Q%9e4DzWiJ)PJg?D|=>5h)egODYV&6F7rVu>r}op$})%hRfCYH|bvA(yUPSR<{Br9WjWG4QH- zaKhTCJNboNcFd<3!vUDVfD9vbVx)L6Zl@G;n`)*1{_EPiB`jL2U~9A~Hl#PaTC%@a z*?(Dg4T;V4>Gx6ij44DMy}16;wp`ZXbZ?c`#$v-k70*Cc{;1os(GCyH*Vp~XIqT0x z$<+{#FqSx+?X7=Y*{@-Tk@HVA&gQkklaBP`fD$ z1bF&ol~k#r3WCXwVozoo(q`2?pXWfdMu)1}sO>BiD(xPKP7hboP2uA2EsPid)LJpy zp*L>dU9o1jlSdR}`XK)(aiNU(K;x+1sv!%3oix-+Ut<_!egve+OMWu>-85B2;Xym< z$syqa_6pAM)Pl#l?q>XC+pfg}BcTj;D($bCwwRcsIO1zv@g0lQ9RTF1-KXZd!=O;A zVm8pX>u>7_+z(NB2reW_N=W{FSJ47}*>$c;*e5gMynii{@}0R*Qf>;Q z%%OcW1C+$AFjSt!B18geC|h7{t2>>EWZ(&B(Z3?GF?|oqLtUl+sD5I=>56k6T0}Ef zJ|GV^`3VigKo`nSyrtHcy zK_a^cxXTsFnosUz@_ZNBcB(O91)D(WN^LXyn81F8`8`W|K)nXLbSnC1ztXh7a((HF zUi3xA=FUJ`2wODM3RV1;1z%Rv@Wp0N>I&^NTq~DzlFY3LnJNyZ|^*ThO zUJ5bg#rnjTLoH`e0moL2c?%wzYC=^ngt^?^ajDQxHbc9iZ?&ZV&5t8tLQfwymS0Z9%Jyvh&eqidI z8xz8mycPLbUq7t#xy&RRXyf6+T9mQ{BEP*g77aqgGfQWK$Kv7~axfibG8`%I(_g=1$vyO;(q1GU~Nkd@3)uS>vP7bBg05_0opr9!1KL@!SY679y`H{DMM%3BYsca z)CW-cpsd_edAGT0kZ0?v0Q}IrvwsD}jqmScy$y3{Bq@Q=b&OX!exF2;MO0_q*pEgU|Dz_;(ud|Kwu?A5WvypvV2VTQ?ZX@fYr44J=pcj73l`Cm z`Bex>^^M{zMpQ7ua{NZLTRzdn&a%Pp_Hezy<9?%-f=M$?XgQ?W9inz^cB+wVi9Xyi zITi|B*;@aPaE+~B@sCyD2y5K@t39>&_lw@+vWpMV4#V$@0_DX!{R8}Lln4DBUWTKw zy*3~5uJ<SW^TLD188%xACN4fK^U>Nia+6Iz{Hl_a&3#9m zaS91y=%}ltw@*kpny+fTIi}F*BfYrjt+b9Blhv_hZCZ$xZJT4>W81LcgYBKF_I4TsmO=iRJmmY~Bun*0#Jm`j1cAj6&Mw#Gb%ikglPWE2>xO)GTO({#*x zz8#$Aql&Fr(i2JOyLg}d5B&C592*Dkzoc!aWsDos!?QRhz(#f62y23REjpszBKaIRJ9xx6q$sT~yy%~s~=>CFjCteiDE zQ}D?1TsGJ{3Aw!tKRt2T@6DuF%Uxal&}+)cMa5C5b)zXY!6Is~9b77>?>WWb({wo( z(k=THzRj$aG%9QN_G9fyviffK;(QeWb{dJ8xkUO<Gq}RS=Wkkzj-DUJenV1IG3(LB{665~);}ej29a|2N3{+6qHv{< zEs&C|1f3z1D- z+ovL{Ju5h}g+@C_898PZB)B1k`wrAvn33t&m<~Q{r$>~kAn*f;e?{T;gni8fB)fB` z(X9QMOo7`xwlYm;(+yQ{bQhO^v}M!W&AD>s%{d?cxe?k@PTx_iWfhvGsM(hL0 zwD5P|DF2`ZCi`xXFeoZ&vlvc6ujm%6)s~S}uK<%&KC0Axp7Hpa8fkLw8VoAsm`IoB zS-&5$cI_YU90cKopT{!)%pARb>9A-2rNiF(cwYJJCg|%y=<|DBncQJG{eOA{8v%VK zJC^}R-cId)(t~gBI}V?|&+&DG3F}uYoVaOLwg(R;{2w3WexENJ$Il+V-JkA!9vYK# zJDV@ri|bpPBOgcWdh{lr`YNA;Eqza`dUB)Jrd~Dcb<~LdE`5jLo6Ck9ROUuKJd zj)y9$jy|pf)3gu1*>@W0Ps^OC2f0oQxz-9!v{U;pOW^CfO{qZp2f?4pzRpLR^S&H$ zKjh7v*NZ_kboan6p7qDy@cv#1vmgF<0UwVSSB!N#`X4vUZ`qSZ|DcbZXU?bNZ9(IX z2i2q)rL(9IsArDi+2v&aGh{pg-B(20g1+LYRIv3+*xJBmh20K+)XGnH9w*c-HH*+? zA~8@qk;Ya#yq70`T+lKthfB_iB=1=xwVtUW;dX(nYT0G@QQeTpGyZ(A2fH2FwY6|Z zuUE}F`~@O{8Ml@YpYI;&znSDUE*Us4^;J6k ztlB*Spx^+yYC%CmGAf1Jh~z4fY(U#C29f zTb)|I#Z~=yT95_dz!b@}U8q`xFbq&~)K?c#PT?87mMO3+ghOE^cN!kQf19jg3phYR z%(XLlLtu?6`hHg;TZuI_Fa@IB*2)eKXuw;`MK`6z*T=T*Dp54GZ(Z8 zj|XQ%<9!(?x~FD6Uxvdy7&%1uQrK^Sh8YMNGJbvy2Ng~W?yG{Oab&?hZ+>goRsj?h zn-nL3{7Rx5lh-rZ7A;s^K`cBS6}JKxhiHE%UrQ5Ckmwgs8naF zm8LOgsEJtUnmi2y0Po5DqWz@Wu>+3m^!=orcNc|siLOt}yC!G)ri!n|^J*x*oMM-A zrgCCdI!n|DGSI>4`Ua_~*LbMYIjZR;AEsG8AjHypTA@ZbWW#vpBSwog%(^g8uWI+B zIlk~zSK_2#FHemx5}@QNNcdy}x7)^l4N=q51{E)J4SsZqGEBNJ=#K9GBF?TsyaM}$ z$fw%WgVocEF=?T)OwZj*jc{pT+DN|8rKTF1_}mb6hOjw>QPO`i6Kyxy=jwfuKG-B_ z@Sff!QRAawhnl?2`?7sdvzOt940k=@2n!wY{v3b~T8h$U`1aFhYwb;+5r_FJ*GewE*@|rIGR>%HbtatpSFfd%`pJ zqL?gz7`s0=zN%@%q>1K_#=|@_`NYpfH*=NAt{jXy48%=VdT1^sRkc}kX&3(PwY^Dt ztoV8j;$OwMHA}jLIp2SHw={u6locOT{GD}4z8(yuLU?07OOP}cR*p%;#FWNB{1RCk zDoMf#2}}hP(gDdTkNQh+YC={)lW}K-nCWTKNVKfjVuc=D9b(&QoOk4{A()06sBRHD z91Qqj6Y1_q`kX%N%|2Pi^yC~vyf>6s5eghKeDu{CrbpCNedMN{Uldgf=C42*3GPmU z$GpFE4VbVP9PJM)7#e17#n^Hk#5>JGrH^Qq@BV!SAQbFO-{Wy9bP&!%H3KR6n?cz6 z>+=Wue!mRo1%L|UFdOeaj5#E?cFk5vt#|~}59W&(0Uk9y8bgL>%}EoEoh5lo^6)vf zh#$`TsW9WdMmf$c7KW4(sZdyry;@Ff4$^-HNtjqbxZch0erv5$6C<9||GJdb2rj3R z67u=%g`iXWDL=`w^EE7EerMWWJsxbN!T{Q|xuct6#0qNY(UN%@l1$d`CCm_Fe7uW} z+JKa|(XgM1T9V1pe_F|<*!+=Un*y$k$Dt&8t($`=H$VW&#o}>?u>ML!alO4|BF+ zI~wlenq6V8>cQ}o;tBR4OX8BnqK~XhZB>!3VL7!Y-!w_Fcl=1%KN17^6Zi6xn<@tLNXZml@Lk#PJ_8c}OFOqGtYXPx2wA6B0bNVc zw$-F$kgBHhz_LgxdQu;v*s1ZhbktK_D$6XDYS-?cJ5Fs>-qhhFJ=j)V~i2jH7?nN3u-H z8l7FNXKxenu0roLYa6&AEbwEWgkh*TPu-;>9K@nuN~#AhaO~Q80@>0UPT~xOZNUT* z$hdk6fnYtPG5dX1V5nOZ+qDK*2jH;;AQnQ3OJv4?)55RnP4?gzt{ftpzb{RKpD>1E ziL>);EeF|K^a{h*ZAA;f2c;X2u+no-;E_@`b_}~C{Polsi74S~UtsvsSFj6(0#Pup z8bBplEnv>E+8q3=NiSNwT)@BHJ*{rpO`tdWvtBE&^-pY7FKUTMNYrFn&eEN=DOhALK}S9 z6DR&c7eMrF6gxS9_laCGE{<4W(rjnKQ_@bWOvjusS=rAx1beIzA^GEDz67!;2&PPU z-)r z5(}94p$z}t{)BMGU`~1tF`OO8QXsNpQ@o17Va^D{AW7I{mOed9rhPY~FPr13t&qEH zZ(`T$;~;F;eu{o1pOYeMi7ZlBJ@U?VkB@<5R$)HB6+oHCVvAR4y9=5<)rGc*ql}|5lwsyKB;|JL>{- zrNSK)<=C!SuH923^x_6Tg+&Z(iu+pW zvtLJYllPhPIxR;8T&i~Eu)+-{gnchjC7@a zW=Q5rZHHnV#vBD7qUMaJinVZ7_BubW@?s$#a(eiStR2Jl_UB^Z0s1-cS`od>M=IR} z^AYx`CFYjJLyZ<@)8fV-BTAL2)N~?>%lRexXRd#XL#($a%or~}gVAwwndL9pE6r0H zTEE}NoYuaW;vh4r$@vwWm3wPFVT`@2Nh%Z(AwD)dLH-@}egKxgIu15y`y4CKftiK4lt_(SwS{RS?h_YQOexu}N%v;&2k_Nj>1H&~?&-?S z8Ml^i%fr0U{J|I9x)x&0*u3$5eCEyTo9t2+o)nvrpZ5C+;a`CA3jvkZQl*9mi$1}J@<7-V}2Ph+S+hCBeROd#ertL z!CGh_I<_cQu=R&Ztk3D5(dQbf64e*6spB(%5KRw>llo$*+m(>Y$Lv`OdRwjL2;H}^|&CaWURF({${0y~dR;A zH%$75d^r_G*R+zyVs zPL+V=ENf>Kh$yR6^R7clD)Trb)q7LXN=Kc!V0>#x#IhbLdwcRPR#LhBjl|L&3C2ot zkFrGrcwV>u5z}bq8k3QN9fX?)4Be`#jM*w~CVL8e=vloZ@~2m}AcAfcRxsuCW9JhY z5EIeIcp|EIx4CK-3^q%?qKiVOUW)Smh_{4G&|>yV7tsh>DEO;M?uJV)Ji{jqAKhdfV4)ZwNH&@B#7x<9V;q0@-WShF_V$*RyVy6+7fwRanNWEK%ao4&N?g5Q>M2U&|c z77xYoo95=KvwcuQl4Kg^0&5l++9yX2G9=cPg-5q-<#OAFS`llPK-=wP<9VKXHhPxu zmxPP)OwEF>&PJRCEd#KWur~CJ8I$q3ivycB^cGjzF_@u|y4Q@b(&lXYk@J?5`U|ad zOY=S(xgi6pP@K(bTvymjA=U|lc5KKJtwakhEH*b2xfZIBB4w14f=322=P8?)5^hc( zpqg62;mrg2Ut~<gO!CKDwqG4JRcmPmQ*G<{)a4)Q5nEb}e)SS`P? zx)CSWUvhKZQ5Iq<-!$WLopPsX07j3LFpP#r4sD;@y^~Ox$nHN8ZCJf-6dLw9do+kR zdl3#se0BtY7MJk3agy1KgI&Mu%3FNiX{m6Ij`Eq)T=>XtOvQm;hxTylM*P8(FYoTq zasXQk$dS-z*Emxkba7g7h- z!{aKf5wR>KDL6BY_RMPyX3g`$SXaWSGj&B|q>>tzIz}6^c?*aWxY!A)EjKVf5N#m6 z;3U3Ro!G42Q}K;7aH(7|Zw8m?kD!Uh z$CtAuG*Ja+5dmb6B`B?-1|04|!<=iz1u1=apHT7YCkwTejov60VaMNh*J;X_LOdLy`NIs|wMZGQ{QW6rz$z~z{qFHsxh>qFs zDWmTHxV{NoOt`%N|6&DJ=KpFM_+PLBEAxMrE&K;o`1c_H|29_m_r?D2^$D!Z{~6Ty zKVk)Lw*LVuOn6A#21I)YCuwsT1oeTWEWrIDFk&4@0_Ecko_>W+3ovD`Y|f5BiPuH+ zTnHm?&}u$i+xoral(Fjc{`zmM;QMB$b8{K^`S;TC^BptL?emc6^WNj_p40F3KA|Y?AMxK{t^?0+eUlyLG}uTxR?IIqbq-TXL`<1R0Lqs;m!GBq2q>RxcF z>|@0G>~{_`xa+5NU>)n@BdzKu_4*4iu)~Dd>!$saWwU-~^nK*Mzx}YLlPd4!Sl~hM zVi}An^_6M4ooK|2%}JNK_Vnu>URw=6UmiYA&mHp`?Ok{#%(c_5f7`#rDKU$e5P1*j zKAvs@4w-2xwy-n&Fa8*0oMsN31;jKTU+R%OpPTt2`3jhdtctLFnOmQa^V~v1E=J#V z&DLLT(2`diKOUVf&(9|i*EG;HiAU^J-4%1~rxybl0M*OR?&-3<8zYLZ=f2{Z23^b( zj{*1$QjAOWosa$9)4HC^T5T}}9!PcT$mI81xo(l>srhaV!A@{jnAY{9j*0m`>kC+U z2*&0-vGW-HV~#Kb5UM>XZ)mR)=uZ0{d2S`Ix}t5MX+b?pjS&qlYuI5Fi*LOfoDg!C zzx4--2qiZz!@!~rG0&~RnWNXD9yPA2lWDQ+wppu=$|`9=gw|ieb7 zd$d*#b?OadryrNDDRn7zIDwioR0)pd1vdo%V@TK^yl`#19!MB|EbEJ!U-Lnv;kjG}76VRCk#XffXbg~*e_>#oX3 zWOSt55#nwtU8};o*<<3jwklX7!c^GAC@{RNZ!~XD;JBd791o3G4EeqtRPu^fZj9nF z1~P)*_}Rp$BDeDNZgS8#7j0*Dq6F!X;39avhh?72fz#!By$S%c7F^QIvnc z1h3%!U^o}R9J`)o!<&RX-6!MlG|-;xMg|Xw9U>TRl`H1eaOdx|hwT;n2j&wG_9J;Y z2gl3kI5tCgxF@FjTa;vxj;ylRQP#wg`WJ%}uD&c@z6Q#ir1wF`@&f!(8mW&|2EA zI-z9bX3NT|C^(v*g+K?3On0XjZH;|Hogve-=vlmLhvy+l2bR){hW#xf8BVC5KUFrL ze8apj9dce8kmBjLA(3&rGu)c)i~Wt8pi7jQi0UUwrO`zG43UK-{jkw?vUM_RC491LFEHm}(&czDCdy84#4*aIM}A;WnSsj~BC-jFvZPiZ*A9X^J7Y z<|;BNm-5KezvS|6!ep%1F^X|xMou<(riWy~)_Jrv4=Yw&B^C-HL^d!MFOw)4Mv>XO zxPB7S`Cw?Rv&KBDXA2MPN^B8~{_D`?DqFhI03XIGo*`Hh_ zD4eQXDaa~!7QW+fYQwJ)Jy)k0*&_`((!@y+$Re#x2O0PHHpi2@lroBMLck;LnITE7 z+c{&O3`R~bdFGHoQowB~ss*LwudgmB&yeA9g#~+#MT~>XVr*zz+*ZN~5MfMski;P> zW^kh*fWuL7fhG_oc8xMGI1^p#j>%edQ3vdWBB4)KvakbDgnb)ZPareRk3{01d4DUF zgBr7PM&p6g;!tM!2R2^D?D00jR(+6fJ_qb8@uRh`ap<@kYZ3f!UDBaqM)WhoCt490 zvH41)`tZuWl?j0xH6|Xj4qm^jwmXJ4Y{a6qxPV*uR6Q<#z9f6<%2GXi3G|bt=)*H! z6_86UFJHGJqf*&$BiNed?&7oui0Gxdbti9}e@6akxjgGJ%Q8j9@%nw$r@wcUl*ePY*|itXP$w=kq7enbo9U#lq!KjXwg)MH!-Z>+{9TLXdhy zn2#70hpj!|o+pLQbRK>U@blygX*n6QB33(r?A9d~xl0UVAxyiXIlKsnqyxQz) z*QrE-|0W8$&zXupq~rQyahg++S}(rpg=`f5&o{mu))3Vwh%r~3k)i7F8^ym(yKY5<$(7yTT*Z<9? zW};I50>@!`P%`^~w$bIy?4<+$%lbZtzid=zXA9awqZkty}2`cl5ZUDug;kp49YvCs+TyR>B5C&frc+BvuM(v`u9-fv@a*voiNwg zINO-d0udL37D60HX^>2Upn{G3JjoL;Ocg9jny3hXajDp1;HV)$`A|{l+dNgG;>355 zcvU(Up8K1j7-{XvnQ_J#I6um8-59u|Z#W(O$@yQMW-7~b=IUI zoiEu(T;zV5xR2rwg#snRjT77#Iz^0hFlm%_>zH=VjP+=*U!AGt6w@+D2_#j$zp%Cs za>d7py#Zhd{TU=}*dNLuqrw)dy#*;ooPQxZB4tCjH&=k{+_ggKu`lQo+Rm75tm=c&tpwQW^s0+`0B0G<-`y2)5$Ua}g)CL_tj=9)ZDuGC zp;#OD^u;SH?UN<;>69vfJrpgqV1c031FuGv)#d}`-#U2R^DuR3G}L`678LSSJv;h} zsZZ+Zaw!s*pHRU^h6?S(izI1VB`Vm|O z<-UU$cn>imunfqNE>))+GS~Ke1V1qgq4#?I2&y|KTD0n?JIh~+U$~nh?r|qZjSc9s zQ9+)GHHZ@>9kra%#A0H#N_t!DGYV`PWzpi}3h?d`OI6t&me?;lsN+f$l&B2;TrLkb z%&j9RQTZ)Jgz1eebD}~F{6#>_&Lzei35`xq$EmN0ja*1Gr^V}b?Ylx=8P?ow=$VGrJt1;@ce@iX)F>fF^6v?em)QKABC=4AeqhTtA)P~ zKu(d@g3J%O3S-H@su2uODq?dk8u17utIqtwr#u%`5eRLdIk(v8Vbn$#rLuCsIVYeoFh zm3CV{`5sZAQ}~bU!m7(`3Nsz!2-`uT!=n;vf&+Q5!d z6adXZOwJ&ntiQrX$hd`9FXG=?uheL>#-&Zq#EekP)m1vuWf6Fr=l5=!;cq8A(4^iCA|G0&H#WF<#Mqd* zWM|^3TyF0Jv8%9ly=ys&zR0QGOsLC}E+q9Onrjaru;*J&X4z{=c52qQzae{J5qXu( z@HH%6{-PmO$R3+kVFX`q3aZ6FpZN|jrwQMd5p->V91T+nrJ^b`#V2NnbEEpr-S!^q zzt3?DhoEWv+A_}ycO&VADa_98v;_3@M0E^WRaQTLNQ$emJ&5$aS;<_7XWP&R61=f& z+$O485iB!pbV@tc*yy3{vuwnK_(erxd-Xep@pY~k@H=FH&!eCJY#v#KhSl0AAw)*i z8MOLsbUWaAV|AO}Eo_Q|01rgL30@qU&@Y`6dc`DwmY+Mq{7KXpN_ux%*hy-89|&tN zxsa-F9|?)9W(PXY1c~{Tr&lcvT6E(($5;px zDC%HDuFp*9m`%Cae3z+0I5|-p?exWp{JFhNHY3ENJc~#mJ)oOW8o8#&*8+)aXm>HL zP;?(tz}wlBw|-6#k9GVTAyLrADn(nVG3(BHjwY(cw$o8jF){i?=i0plzrn?##er=?P(DBaRNmcjm>fx`3yY0h;foz`g`g(U?M@Fu*tA4ZU-rw5&cjAGrGU zLxR6En;=6u;#Q0D0AUOS*dRM+^158I(a_{zux7lp3cz%lvgs0O|&xP@luG=V}& z*(6Ck^^Zd<)exm!GkAD#4jtnpS_Pt#nd0eqO*E1_;w6W_s4>ME|gb^^3t zTeUpPl^%=L$;7nrdbt#d14+ce^G~^OY$|60wgJK2mXj&@Yp?X@*y&bR z;c-B&aQG>{Ir-S4%e$;DI9FgiIgm*$bi*JG_`!46~d!GEF$zW?l314VmZz`KF>~gqhhH4Gt3G>FI0oR^v4( zEwFafZ^K1s#?MbHfoHn78zMo1r01MSY`S3x=6*O~sjw)+a;w_h*$+bS2WrL6~BM`u7x8UU+y2irCx`B&mQa)AL2>q)T8_03Q3i| z@t}^fOiy3UqaTaFCU432CBcCWN9UuMqGO2{6ff2c$+~Cx=1-0FXPmUJ zmVv@+%u^1L9m)G%Tr6k<6l=@A)1Np66lZ;noc_A}xs@N->h8rdH*UvG+O01t>d=*K zS=_nCEpURg=7jLD2*8YCYyvetdx`om-^z4eAjt?r{2TOzf2_bl`l)vx@ZUzYVX|?DMfXQ-1S_Up z+hpo26%{#;dhi=b@OA1U?J32o8&CksnZ%Cf- zFH_OfM2>wZow;HJHLl}Waz7}dNwcO6!mXVnL_^aG;^vA5>ubf9nw{5BvO}!202YH< z7z*;W#zu*Thbm#C#&=A|ld0cA>hANS)um~2^XWynUH8S6w6DBV7Io+N#^XK;0!4I~ zI#xhtyiHUcZ6oeg^srI}ON<_`Cs8g6Q)UYT2xIF(W1h1a(3(HDZ2W)oE5`CUbtX4s zet3eZ81#=#C2r0Z51J4xzme9WgVzCN3YuNG?$L$f^e_Z#Zo_37&F~{{gA>#=A}@e{ zN}L$TYljXJ5^lI@%I5pQe6Ze$!;5QXLiF>g;sNTK>fM@mL6sfJTY>CoTy?yV{LDow z@eBcC_0KeKe77d za**#UR}KU>YzN-524cnpd7MTXg<35ELxA(Y6!?{sUjEt(VdhY4%Kp@HiF%_=9gcZ< zbAXdE`G70uGta(Rt8lx_tvQga+~@is@6#)hws#_b~>=VPJi|^ zg41?c8i!RywdN0KaAHfWM8%_BYAJ=~w6)Q<377A=!rsr%13_>P`nmq6LH~a_`~TNL z|9{pN{MVrWpV9jN{Xze~gi8NE@&o@FbND|E`Z-y6SpO?Ou#wXqPd1(!@$U1LA1GyQ z(F=-!cjDNCwNk{k4Z@L)xci9E(zN3I%QwN4o%m;1PFp-N69>mR?elEF!Dit8avXpc z@sU?|-Dy3#_4$6;dwxhr5Y(SbSM&U8A$S>T{d|@(ydZLY zclm$Q1A(tkr;YW)z%nAmi=ocbau-;(IlCj#*2j;`pr zUpHKrd348lp;Fu-=xja7)06bS*{JzE9d8v3{PlIo`y6|j;|~8y1dKKsi*j+2tWc&z z#JtK&y+17H4yq^y0WX#W+vwjPmU8=F9LGV&b?)q(T!1Kyw?_PFWxeafno72wwoa(e z#ep&FccWyvekYH=-LU>HVT{1F|MW=`S9U&j+(=%-qv`p2Nq49OJS#j`M7Vo8BErJ> zgxL*YE>is3co`}Y;NjJCHKED{gE2t!jYVKIa&ilCM_~>giIB5435#PKB&}8Datz8&I=v!+h_8z)+ zrXN90-Y>iSL=Q4o{_T{BoaEsznIsdWjgkEoE2VVVLsLA!1S!fPpxY@1`{DNLK7**^ zRpl^SbW+IWGMnOI-u030pvMk{NZJ7(D>R5;wfX=@^(xfRen0PF@;HdVPqBM?^& zmVdPKA5%h)ZLf$l8vBKlhRq;hp0#Q=H(?{|d@K zmh8wF9mbyRdxO^dI@zDIJq>1XreBC0WaH_~5rah<&uFgIwZgDjnM>dUGi8wh&B9g- z)*onZ`B)Q4-Djeu2>`#TB)Bp`<&5uKs#S9P-R@E}-sF2e`T#?i;c^p$=TF}+Ayf(z z<)wrLkuiPYvXcF`2!F#J$~{0SvhU0+A9TWKmZ5JIN26Pzy%Hk=gkXmIxm3uD}flmJ5?yD}!&B9I?bQVM$6HXp-tUSz?)eXp$g zCaivc1v0Y{D4R!hr^dD|M#ZdX!>odYgFV{Ip;~;@`Mrkp=W_IynaG%_U*!+qGu%G; zNZiKAqnKP*~W{*V|sty z26^VZ;m`yRpmCo2I&2-`(G3C{@Jh`y%P`O-27e|zWceXW*_7ht${`ep6hpSwk)UVT zGFZVV{RqyR$Lxwwps0DQD$O{)=ms8OPDh)Nj*enytm4J%7yB+y;}PFhtVgOpA++KK zAYcwAH2RJjC$iW-?7}>mER5`y7KtWm_n9ia9#9q%$7{4RnE4Io2Z;u?xX2BHj#hW? z#fWR!cTxn_1`KJ>#}h`v{P4`DLAy0VcM?1gO2&ES=+8D*e+39#1P9>o0zoLA7Y%mJ z(ooE3=2w2|6s!y2va$Fy1hABFS2pNjo`( zi{3fp$d}FVN2l}*C)q2eh=6Xx2G@E8CY=p+VjdF5TEkG`2CS_* z43UcYRx!IMDk|j+9}B!5VzAn8u2@;5tt*$}{_EkB@0vVyRG~6+Vj+*XV{~t{@paiF7q;xVT**UJVWFb)Z-jlk^~h zgBOBYZQba`wWkk0fzg`TVyz+z4H=}frU};zbAElmbmz97J zGj@V04%IH8*D}I+fA!;$U0M7pOW0BZiWQh838Rps{pHHiwo*1aOD3t!X(|7~0X2*= zs?1?1NIhxCB&^^h`%8PAJ6gO(ZqL=I$Ax`{*du>p2=N;$V$tpiS5N1%6p&)r3D$vx z5WQICv3^B1j6KK37nw#MYlvz6`(wko0CyoFMxnI{Or0QaWl|UewLHy{f0`*ln*PUG zZ~eL%<}a@JUs{>V{VVR5Jb0q>!Z13^9gg3MI|QgBv!mfK)9FE7-Pkd*i8cc9oGl;Q zagM<|sF=Jb(_ru%$qF&|;t>3D8-WyH9wl}!I!)U6SV zccg)y>&;k$lppR|9TkPzYfpUs4vO~*wS)tixKXBqZw^6 z;U)zWj!Xh~mW7t*x@9!10)DGjJF#KwT0wT58kK!5$`=Q^*P8GvuL4*KeZcllcUUSa z7yx-=OJmD+c|o9gYqbm)3y3mKL(xA<#yH%iR~ z7bkxHCOV^RweeRVZA5k=kJ>DH^8@(_2B$dGKOTiex7nSrgYctugq>*RbeDWt0FY!H zkm?kAVc2Aj0<>aeD8N76dQ5lE4A@p%r6V2V(|E(WubA! z5|@TE!tm{?UlVjr#70?Yze{JIuXachL`?=~^Ag@=f&ZD?F~QU(jh=C#@PY4Ei!J#! z8wWw!D*_TX0kd%y;Hemk*KK9`*!ilP4v<0JWwvVd$)<}i_keylL@(qdl_F&C34KYF zv~N!JQO>LRx(wC}72ULBN!>pHC&V&4kNbX0RF!P~ZisM-NmkhlQh5Uk9$JVUR#kx4 zB~M>ATLT%eXL0$e{3GnssHpXkqsR7~Gvkyhd&~Mnkju?fv1`c0J3=Q<=Su{3;FJ*xFSd>CvR%&S+M*BNC%@W?PhYbk2sWX_-XB1ji`T^DQr#-yc4?> z+1^5UAcv8BuVmr&Rik<${AwoZt5~s*nuaMy3SJCWFD$*x<%iOp%`ARJfCK@eSnj$f zbYP3Rf<7_R@`*$ABK_4iOlAd(Xdnn9kS*3I_b-fOAhG^R>j0LTlw49 z>PR`HH24?)E6{X7qX5y!61Z6Ex0rpZ7B?P-AETAlIYr?{*^EYt4zN3(+o~;(Sb9Z`z*WhL?^2>o8=EJKkCZp1-S1Dly9DNv#ZMFO;!o7vl#@e>Pq!}^?|d7>d}q*Rt* zF7i2avT@pH$P{#h?OCH-7{wzIb{w*N-}fRz{WU29GqhT61e~wF4B)4QWHD%Mbq}|Y z%!1M(+YMLycC+T>?;44@m~YuEa{4L;WH%)?gk^CFomlIB02GPjXMd$A3sZ+`8CWKD z$tCA!&%{@4#7L$XZ5^Oej?@V?c8Hk*l%#tY`ME5#QFVsfXDR#LT+nd5$jx58Nfd0` ztn>6dz*eYL;2SeGhmvGB{=A{jj$a~4C9S7g_qiUU-Zr)Xv--g7L6 zc-u0R^G}*$yY?-hbRKXVH@jK}3ss|fI4VALdtHs;#!P0qCv7kmY@*^bd3Q=6v>Ma{ zUFAGfdQW{7x0YuSR*jNRtVXMc39)|uReO3hblhXN{XtRF8A>}*{Sn;4(q$fy4wGG* z5DpWQ3=o6!4t$?^);;7m$1qmc%}Z)?cN1f_W{TD&N#pT@B@J|h@8i+D44&x{~K$d4s<0P=NzKUfJnF%1|(G zQdrCdvBiRPr-yU>u>Y=ztvjP89CmP%RhBM#LkD8eDx52HA)Qc7x@=P_1U#f7mdXg$ zMC{*>3AW`;(Zz>gb6b*pWSBQ5E|c_)X-ewgp%!|0+3|gT{QCOU4}4k)H`9SNHuKED zJQoqs-a*7kRyYGYGucO$@nwgrXE6!?-B48IXeE8QKaUPePEaz85LzTtP|VUalgEM= zZSNe~5!3vH-NLSp`b#&)nGg9S|AfPvG^f?szlemLsgr_Xyi0={g_4#ezqaOY)}c$E zwFu}BVlTua3#~=h?{s|LY}{bIeKqAaLW>m6PPEqWNJ!soPvmO|5i$f2g+lXUG0^2( z?VLk|rm;78hBxC*w<0Pkwhf8ffb1$B`TQI;?AGvw_^+3D=tUOKRw7+qB6+WSN1Y11 zS9YdTTDn-dUkmD2j^dm-vJe@bGjwAmp+D}UxdYgZeO9{$W4pqtOT zlQJFg&Qdla@1WgS?r`!32j7ZF%gc^^%j)TO%l)l5zayaS<;Uodok}h%`Ow#F#$-FM49RvD)T+4`I3!j&)FF(J> zr#&fPD}TDv5xP!xMN4D0sA`kzW{afvv3WIn#60~_(dr@3x>?h|C(ouCYs{^^HV+F^ zJ+AMwsOBMvC4zg)U8_}wi&VD_2puH&ryECu1V#wz@Y1`vd3u{_Y>u^233rFV+|r+w z>g+fJ8xF}+o;`;PB_iYnrazA6PtY1PSqL+)NB5t*AyPXeHfE+iTT;6H!HQkqup|9V z7w)??CZbHfvcIBMrECqjE)}VPqDPgl&72r;?`BZCQV+p`W+^eecwJ*W&u7q-LRFys z&*7VgU;$)yTha-I)`m?rGM-&x9Be@vrD|YoUy(7Pi1_ysl>QiXm-MdCWx#M^k8giaNpTtL5EGjxfEr4bdJNt0S^H`)k-C)&EuC z<<%X@Z||7CqA4;47GL0INjDY<;wn#aoC&*k`ep(L#%?iVma#;HWB0-?q`%AD6jRzP zqFOYuYPZ+;Cj#r|Z-akMM{PmJH2XGq_?LXEwxQ7=5+A7+s}Wqyh?7Wq;MDx9!U|0z za+$O--6Dx>^G2-Q!N7;(x4s=VDhH#`^YE>uGBXmnO9FlVktrAx2Mz0{Hnirp)*yA> zZ#>et?ReMWr}%lNuz8*0ljWA}Jw=N$Nsgx$nW&|W@a}>`rmyJMS=rIsIinKTd}WfA z$9l%%h1uw^TxYqihw{eY%|K{}9LOr8O);mr5+hoCOkDNqY!j(^|FBw(-QbTaXpX^9 zuv%k`4Q5j9bx0?rSg4IbDI?cp6FrW@-!Xt5zc;ij3K_NkiKqNm%fkQ4Q~tAP;=g#x zKLq3dK2Q0V_33}-DJ=h)@AyCQ6b>$Sj{o8*|MD@({QNghSz>nV0)d83q)uho1UY9| z(lJ`bH9dHbOPwlQ9AkJ~mkEJsOa7fXFN(5(&Q%**Iv zv<1UA!rZD(^`3|3t<0te!MGUP)7IuK?lbY@WxB`RvyA+uh+FhsQ|{v zcKUJFO$s79k3QW8QYg@_=nm;ochruA*H(x3p=K;xDJ=svTE_S0^ngR+=admo2ldvv z^@kM=;(Nu7mys@ezA&6~;0bg(WpaK(O#Y~=a>AsdA41P>^1RK`Kk^Z3| zQSYI3S<_v|d#vS(&*M_80l2h+^d3xl5c0g9ZbXp<2fKCnlGbL?@#W9Oyt!-zGbjOt zLnG5j`845M#0PLf<(HaCkP`zL7beVR&FodXdw7kWdy!C#@=MAw;WJ$I@jAhH+- zyaQQOv>}Bw%(XO{MC~s(RQc&*v<-qgo=LZ>e6zZv2O^0UIqQPDqde4O8(YcUkRA~; z(y_dAym+XPwY_X|jVx3dNJSOu_BPJc@{3)Uxyz%31hmagVLo29F9kZNhuv5|T9_-8A9O4&+&v@FGeY49u z(2HmcGjs@(nUIFR^_?+Px5T*Zk5*Gep~P+JlyN_?hE#^rtq-Ex0}yCXz01;t zwRDg~k3$Sch)t9Nm6hA9gvZ$*g7OqdM7G|&$we_~3J~P8G|Nw#({Zbj_4+R6S2AAZ zJNw2uVwfK0&#NsGNxE3Lr@?Z`mr?OLsI(_@z|+78cAmC*T%tJmufHh?L-7RR%RyF4 zm`D%VsuLpXegBDD!7+NUWk521L>vMQ(w2Cn8(NHPxPyD3g8T((3_EWt!-Hcl0c{(; zhzGc=xk?Lnsx8J!jK*|Cg8p2sKWBTj8E|q;6G-}6jiHY0x@fUmW}^g3FlK_xSkN@f z0FH$}+t?l$T;J2S8^2$mJ9#5@`5)m+?m$AEukd`%b}78HI(-CLDS1%Vj80IAuA;Lw zY=oM-A|CfmMaMhUWV&RqgO0}OrY@A8KlOfay<>o{@dB2TQ%i3}vKL*n`SPT5Mocu_ys@9XP-OB}Yj z3o_-w?9VDammodetK353{ZrLKfKKdE3!p?>mo) zbHb3vKw6pw!vwbbD;^?`6gJpED7@kJ;;NI@89Kv||J}ktS zst+I`ap}ST?95+WjuM7dRPz|2|CUF+&4cPBnc}}dF!`a)fEEK?fQ{92E4CZf8uUtO zj4H+;NIi^I8_L(WB_*Dk$MRG;HXYNs5VVvy>ZBp&qOrr${Mu3!{XkFnvdiuwV8&`*=lC)o*N&2IgtobE7j=b*`8=p?%o? z$suzn$fb|sc&hzd{bm~#P1spR?m-gD@DxfLx9s;!D)@JH^^Zj3=wBDtyBsivo^)Pr zSTP4-A`aA_qfMk~6xn~f=%y5F!)v1IzEvjJbJCr!a23__mvsuL#mTJtfooJ8s3qD2y8#!Ok3w_4D(3>-q=I2HU; zKb0f*6CDvh$2UHy#cBfDvHoUV6;V6iF)I`onuxAw39f0>3w0bz%n5+D5pI<6X2qOd zTVdv~+C~Hgo-Lmd;x&=bh@sw9;mBhyC-sPFu((O6_7iGX@KQ75`D#$08YByUk|_?a ztJ0rFpv<%gZhoCEqnEXgNdma2AamNy{nKq0lE;wehQEh$-%C(KgCz8>-L)nvj_MFeUAE^g z;45ATn1=i4N$_YsDAR3=P{hKr$_oBJw7p|wkPR4SE>(VpIW!+ibvSW116l%(C`i!G#^#VI@fL|ZQ(2f*mW1C>7?qmhJ(R3_0 z{hDnWYkq4*ei$uv@|8%Sf)jDv3eAL=kkx}BMjuf}2~pxK-fN~NY8VA7d2b~5YJGLf zFH^uoNgzir(yMs~%RgL6DJGRFbE#kEM&!}Sr6`+QbT$?|V#AAm!RCE$&suRQ%X4bC z95>#<+zp0X8=trJST%vS{^aQ(+S485=K!Kt!Pe2DI4Soj5=nw-N#vB1#=Az~{+kB| zP&Gi9{;Bb#tG@8jv<5pYkZgZkWcA@(N(t*McWRmI3zN%*KwgghhC4-e7BH70P3EX2 zA^!I3Vh~yl7)?ZIlO*ZZY1`U35<@1F$Iq{B?M#&m1m0C+K?v(XpV_z7Cth2MY^Tpu z==rq$RTG<3DZy2_(m}%RiPBZz8Oa2g-nlYX2AE>znH}sHoe~t`>;U(=#T>JH@+dOk z6nB!FmXvdIDAC$Z?po}hvC&{>iY2_An31%FZ>R(NRA@s&SU7cUPu>|PG z-97*bP&X^BVb=c^Q3lCyXYeGT;o*nexas$$k)xOEPcK8Wy2buxk1B|5#dx14r%$ED%bTyDlrA*t-GQ_p4fP( zB)~Dg0^q?fD~1bSTqwt*eo8k&AMm%!ttpz2dO7?=*rA^sjJ(`cKKwx@i$9=xcBgC2 zFOm-bwEZHb!HArImi${F(wU%Yd%m?#)2!^+Iw>B8;1pofPMFmBN5>^usV(25?{l$Q z8@GgvT#ESjLV!5h9+D~KtL=f5VksdNcj4A}1tiU;`)X}l>L zYnO-S+QN!YD}4#zf7d?iqO^(u>LS^ANZ#u6C@3{$WHKGaAj#t0v%05-+JU@-NQ8p8 zSz-3q!6X)6Bwz<^z@l8EL|WNAjCgbs91q69-T*;k+$x=9aBd)@O7IObE29pm<#?r;a#Aj2=r)I-#W+Bzj4TT` zlGioF@w6Tm%QHKTIGf+cE-l<-E6tv*yH;yxdxGGF5FS=(YS$N~3R1;CpKO}uP9T8W zJq8v*f-|;=F!4O$2=}Ll@G0OHa|uh597y~nW8rkJ$`)0QGm0HTsXN7u!6dl+eXHE< z(=|LsCz$!1AWC5USob7ol3naJ?FhwK*6F=u_8VpVxtR}^3ZcHPKUuYx6Xz?1`0w?4 z__4Y^RXTa$J<&JXFx|m~qCs%$0}%ht$zv6|V-~WwBRoOvGWd z19y>IxpII~fvTKUCyfkf7;C|?93uHdXk>IbqG=IHm^n3-c+^=#oyl&=P~d1{d@9S4 z?Q|Fy1&X3#_<{aRI(D!W=Hi6r-<%eF8>Rj%tzij)fVEriRa* ze}9TC>Ao;@W!$k{wvYiaeU!47*1WHe=bLy!7NysX8l%JPRZ253Y>o$19bG*zki&Y7 z(?0ROk_E?Gi4Ogkp_ANG<`P9d%o(6$`nzvgqT9GQ8TrioAEyR5RgVu|Wq3@SUEz^} zkL$og%T1ClWTAAQSLl#SPu(>_7P2vw(19zQZ(k;?KT_oby&R9fljQ^Bc}H^GR`x#a zE4nf!s|{H}TLp0O3&`+XO=Mvele&VqWl}{C7i_D#NCxj8B9Jv6@ll+ErJ1*Fivo8U zCQysJoTCd-lZ&#o4(k0na2cj6FxH_OSSVpk77VD>Xh)i7x+tBAFDHa8CE%kUUIyQ9 zkl$Ru>}$T4i}QZ*A#GOTirW2xrtOexx8VI?a69)3lY(wM4VsstYlWYEKo@PIH@((> z^vr%tR)JmiVCRh3GC#xaF1M-gFW2S$@R0^nT`1o}LFGH`bZ@tq)#P^)>_CSgp-C}} zO81XtW^8g;dxTc1xx{8fZc~{4{lXg}Dx}vQO}9bi%RWVCPD%{XS(p1*u`-scLv|R| zx(em`WCfmQnnus#J33>mzThm#B_S7rJz`Ny=5)jbEEYhn#B&Y4`T0Orhl(6$-Yqj+ zbdF{NTi#81+()31w5XRgl)pHkYiJN&Q3+Wbvep=Xo19q!HmA9R(N1zNdJ(T#~$9^!)hMV5CKjf@DK1 z;ygDLd&17EB*pc8^da)0h17vux6G{E*NE=wBMCIrO_KfYid=MmG9uL;NCdk(4swxa z)Nm1GK};PJ*+0i?Qi|OXfs;c0x0Dk)?ty0W$P6xN4ytqw(jwmB1#B+@gg(^y(ZrlnyK-f=wmFgl2mo=|Q+a@i17sEI0KKBudFRY@D-+3ZO<3aRVVL1k3MS&HE5~baxF1kTJG_#(_^Xn};WM*6~>R!_jNtzX)=05^3TsU(mBHZOYJ*(jv2&zC_G#s_%R!iODU@v2mX^UXPL!99dqV{A-G?*kfROJhGOEC0C5H^&S5^Mp=XGQBTV{sS*cS$|&1zHOSFI@4@ zYLj`sS~lwR&)_k>{Yj6^P)c1Ey<)n%i?kYLVsgEb4mg+Dfjn()hd?~KC@iED<_Cp) ziW%f^D`qj(kwhK&mTb<^MM>ta>nM!Yy+2CkPw{wE?x9jhJtbY8d2?!DNj}sfJi_*5 zbb9}%pyX%BGfOkvApLB`(~DK2m6hf{o}|b}6-gk^)79io=?31H<%hGDRXj!IK|r1u z(XXZsVf7$+<$q27J_Tf7W5tJ^y!m~TR7}T&@5H-M4w`zMh~y?; zKGteKV#%?>$mYpN$M)plE0%H{54$Kt`&f7C_S=$%A)J6Tp^#HsM_YDCgO45j_m+O~ z)a*Sc?>W&mNK_8F32n>^UP8lFSS$o~t0|33%v|9aT}#gY-jzxOcyTOiNM!SEkI{vVe!(P*s5^XrexSvs(L z50DuOB5pL$8OWT>l%;1vB7F9nE@)M-_GB2HEbT-FmAO@d5M2P?#Y3~**qRr+h*k5u z3np0a8eV*hCUJRAN~D|Bviht!GrUeX{yK8-cIbooF+igme}}mZ z9z5O0CwY0j>1huyZgW2+(>Xf~j%gMbr2EZnZ}7DpejTv}nQT`ttjL;pH$IeW9@i+W z&o3h-<#~s8tW1Kk?I%+ao6ZG}w`jhOZRX!9{0*OrzAwp(@GUSGwDqJgSABM41hwQK zr)wyBcV)Zq{^@iqH$U6hc)w#KC;eZM0vqy@X~J7<)*IUBr#_8NEhejIA)0lGJY~k0 zwczw;=V#k;top*|m7mKQ8W}8I`ez;X&?)Ep;rm6uGxL-eoeD3sIT3!IA<{o>I9h)&&ppz zY!j_#o9EV_CJ(XN!Xzfb2#K;a>Mf`<$g;S;g1=NyON zK|oIPQ-CsbbkH#pZGPVe4WMan+|IASDEvTxxl}+cIv?V0I`h61Ei-}9wrQH3ugm6< z2_--XVis!0qwvj$6g)})@=Hqr0gE%hoZJM%;=mvB?sZeRYb>|9+Th21IBRt}E8IFE zQLSLcUoGgjW_X2$ER5D;IX)hT*}Blrt@CZchOEqP)S1*7Q8{A8E`{f~3VRk`t;NCs zY0i_q8S2Wc?PrF|IZZAB^+^WHSLURfwjA6D65HSlUbqAxKEH$1viax-(18H2V1`S`>a&3s=WS<#+X=4x zQimCoU<$&Xp={}u_r_rK%}I>8v^)TAG;L5aPW{yoVz`EhYvth0 z+}^H8AjOHg=K|*kyTOlcN2g;=%`+^?i^u@nkPPLzFlw`&4$8awudN~$<4zJ|jUB(l zucwa_?6{O8@Xo2SxtbkH#EF?*`n{^F%sMv_F%e!f{Unq{T_7=s6j5lWFf61F;@d}r zs<5pY9clsaLD#wox>L@+00QlH)0i4l07*m)PaGX^EORdESA#ek-`5h(VSLmc6ir#B z19){D5vvJe&Sf6(4n|9`BtXk(W7<$*$&mauJwo2wO67^)Yz}F331JL4MYsECHoA8c zFKTY2$0jC~#JZJRr{&Vk=JaU$C4eLCU?Y>albGb)*7#%n0yK4GFDJ6fI3f4ne@2Q1 zXz6eKH%;>{loVB%@5JQw%0)J zfC?9f2{@g=IVsu&m$GIf$cg1YtHk_~a!}iS5M!B&{ar4%;k`#9nma**Eecgp20P*# z)u20+JAdr%5cs4|hx*7Qb!Z`A%6})*wG?O{9vik!Nvo>Sn!6a8uK~P z&BL9Uz|3&7S!yqrhWu($*H!x)j>B-H#=@L!wJWwA04s}x(W}6HQ^E+R-j6B_LN!>3 z!FsEG`+)SEY?^97PL(;)+@H_*HHpa`|1L{l1N%XEtER=%YVV#1S>A6yf|p*AjP>Y1 zJX9|h+GYM21544S4@V-{b(P$Z1X+L-9*ILQ1bP}Ca-Z&*?zF3YBY7lss&e;x!@q<* zY!D9KwD2;SaETgo2wA7y*Pk%w0s7&gq6Cm_US27Avfv8X3x)vn#mu^Q3-Xj`klXP# zjpGk#nJ8tX+U;9?Q|ZzM+^K#S%aCe@K<7;d)y7CimpwV-;THGPFxZWv*4@1 z4q}*!q2dEx8(b{ymU|?q!-6LFypwEf_FyuYVncaMQh1)9pZwTxbu)%6=mL=LxvOUT zdavXxU$g53e;(ChhTbF-+F7;MF0{DixEYzC&Xs{>;p!@lP3SWv{ewC-1{umOH%hUD zKq3lNAB;(>0 zMLZ!Aob3~&rNQr6O=PP~`R3$CHwDR=Ex`bN$(QZDWK33q^#Uf$joV%A6SiLVTno@~ z0h5TA`_(Zk5rVl0jshcczI+J!b6Tg}8`ybJER3Bz7}CzWaM*r#4+S*l;-3A*>4}!^ z^6ktWawbyJ=SlD*g>DpAA)5!$!6qywS^1^mGT4zjq=u*sy|NAi3G6_#pf?whaBBXQ zve|JnF8wZuLdQ=68CU9GS5bkFF6F(7Ia$7)=JJb3gFPL5#f;#d6XGAU0bcrpHwyGL zX88P^4`Kj1^W)SKoa9B|H{vw%n7w;hKJg{{97wt zj}>7=0dJP%Va$fivjQ>?2q;gV5I>TrgN%j}RwEI_X(z{gR zqIp&PDIHer%041we0LP4Yn^{Fc|hzLKOqFnMx#g`3lVkUvI>A6SDPwXJNjofFRANW zA7%A_I412Hj+_L>SZ8RJs*?8vJ+uwSJODqZ`fFwY?clO9VE1sw7%RAEi^c1jvase2 zW-0=mmXQk8+nkDtE0j&(%6JIiB$EY)+yf;a)dIam$UAqs6fj z$a1~g$_pHH5RX$X?D=2nrz*A!(Z!Sm2}N#1&29SF03XEKmhq zN?sR{!<%R1&TQ7x9i=)yaoO%K2z!A=Unxsil;{SpUgQs2ne~&hAl_-#&Umgk#^(Ae zGBJ%%lnxyTJ%Ig5 zH{iI2wff=*9qXXA;Ce#qx+;GM-uNb_f=G!)QDUI%7Kx@2U>)+ z#j$o9nHXP_90tSICSpitJd)Ei^-#nIYQnD#Z|m@IuvKnYkgwh!^{VCL^T}6LaC-mA zdsa!UVfcLKFaH~kvd(`BIjlTAJcTv2 z06;;aA(A!MT}i0V0bG`{^FkdnJ<*BHgGlItoD=J3{+NnH<(ZTdu8HdwL$`B#N-usC zKw{}E;H)E1k_evEK$I{5>-Iq8W!)Oz#1nekK}j2xBI<|K{|cM5B2qB?1Ay{d86+tn za3oyXc5xnl!z1}kxS*fbD}+8Ri#fC77V5dpM94AM*oz*$R|ZyzXt0Ph0>(a)r1d%8 zQ+_<%FU9Blvtn^KnBjn5+0k%ozAM4ga;_R)(>^>bRXF9We+Ct` z*)vj?9v??d28$mK3&jX8Oj|0CBQq^(fC5BEO_3Sq4d5nO&8|SQMQ_xp(V+jnsu!2H z*_%8Vyi30fe|3G;{Dgy&emz(S_3UX)WM>pDyZRrIL)DY+z)d}zW*51a{GWukPrP}H zi-!VMPKaK5s~F#;G0h`=VL3KEgR=TY5c5dlRPi zf#^l>V*gKo3B-1%fw;d3UPeH#-HyZvGzv3zrly06a@QGYC(4{Pyd~+W#;&f_+D~Ma z05Hb5A^KvADJ6h=R^`Q^(X{Q$vRZ^Y#L^k)!qS=I55@`Ni_$At5j~p2bXTcqH2nOP z2E0saU9zo$uJXJ_W3bE$3}@>3+WA4DX#YWGKYIM2QmppCTuPU@IG)EzfytEWE~f&- zl(PdlrYV$qV=PrO&lR%`w}sCzFS-~W9j3}Hd6Yy@;rm?)TXM3Jux#pZQX_waY9e6z z7%QxHUD7nM$o2%A5$Mw>{w*|*@MQ4zoA6R)gPKxOAw>>kdVT|$x%?L70WrRVHciKV zj%U9Lq>1K?T_{F1rpeJttNIbRlRLa1UM+Ra0LK&J&#tfEn~jEX7RLlHMlN&3dx=%K zn1b0`{4S(2C8r8IRXEDKa z<7G}CUN6hqspL`aQ17g`7ou_c*&<`3a`ed~$fdEp-hvE<4O`kIzbUB(`{DBl%Qk(a zCxCXhU{m-~hU^X#e*V$){-mQ4L%McBe+^Z6cjp z=NpsU%o$AmGDT7Adv-6Iiz0e-TpZo$jU}QES6oglUQ#TLw#t$YkWjP|;#a8m`|Ty= z*(xq`hKbqF$({Z2Hc9%Rz_sKn12IuosGH3J5va{7)wTNS6(ESOpKSh6gla>c5TZEF zD=${1zn-?EdBO*O-cwJ2aQ1BwHCTFXoV!0bk(1_k{cF>PBC}>atRkaPT|kW;dgO!xd2Ap|if9n5l5&5%|brJ>~Fc^V~-_ zNC4%yg^Y2SmQV+l<4ff30QTu|ph26hSJ7+@eCuj}&eX!s%YY{g z?l_llrLrcT{NRvO-M%@vb1%3n)0K#^kiHohHfzbtD#{B=6J*boUwdYJj)gC^Ter+{ z*7zJg_j<^Nf3}@gl}SW8OqicHqjAT3o_joG^_*`p@1{0V5usRN=+0r7=`aY_YvxxU zu>tOCaBl5)0Tk;6*ty$YQ$4uaDb{4ew=rdLi9{0<9jn501pDPc`J}^HAw+c8ME)5Q z3dZO-+|WnR`Elj7HaJhDk4-tEs#gcAg&NX7*%(eTe zqyxnZ4Xuc@ETRA+2*KVcBNVipko3k!8?+{BK$ad|3&4PGn5M+a%= zu^6r#w4Lzfrhe_$7pB}=JPwH6J>Dh0DU@cG2D|UFxQozbwE^2%GR5M*%mJuu-yAp~ z2Gb1ft6UIgr&!ZY2m>`=-i`>G8(bD~j3`p)N1c1%{DzzEi+)-H>sv+BCFzc6R^`DTWKIr_!{%W|9Yqg~W z)z*}{&+^Z`a#0#MMHBq<)f-VCVsGgWu(1ZK$#g=%P4@~X<68)hKem5+dttz7w^=T2 zSGRM>Y9DvIw6We?WOPiV0%_s{}CB0d>?!j-pnu4J@*gw6?&;Td~0+L=%!@& zdQr?_Rypr;KJTC4Wo*B{_HHD99c{qZKR_>&uOxfvcD@{rf^hx%STeVf_xLPFlj<#C z!+WHuq7nf-U#``7Kn{xZ<@vc6c)k4)_VMQCZcmtiL;IBRI_iBF2w?I}(p-wwZf=ndg~6+1u8Y z4Z7QgDZw9>?s3OCJ1Pzi0;3k2p%1wekJK&g-Qwjf1A+2&K_!Ank+J4mdtrp2`X_6T zpxh;-D%pUat*0w2LSdkpNs$tB2}#=Xm{9q6r>0zpKN#x-`Q(O`WX61p#JtQ@N<4TE zNedD}_C*6&fLm;%j8m{x!3t`~*LoRqE|Wv4q!0mn9f+!QNQbY`Q=*$5Pr*mAvG-9O zT(iLnIhK5ae2@=_+nJ*z4kV1BK3C^Xbb~)v@iIKh*A3J6fAs@i!Sr*QA>wI~mI_iQ z=Ml!|r!akhr@6lrfS6LIkFpNRMxgK#$Go9XWNb-)0k_oc7phDFz|fxRKF8J1rZZA~ z?Ha>*{5b`!r35J5HLBw&6vC+fE^N0nAZMPwQJglE+$1hA=}?W^@$za_j#qGb8MfF# zAzW{`#3xpyx4c8Dp$lP^d+xQ)$;H1rSauvFBLahEBl-YH2Us95BC5d_Uu~m6pXlc= z0rGhQMh2iIW|FIOh;ZrG@^R)Zi-sB?GfMZXrsf8m4<-X8(_`^V&c|DY>^;{t$pYXi z1)V2ZfvyIKB`PDA3uUYRO)FWLyzPlCt;cY}`6@^UM*IME!b{hC_36AKE@WF4ByFE6 zdp1v)B<&5N7&AQ-Ixh|w{pZW@O9Rt8?k7dSQBeNfF7?bjFo?5*-Sc$2j!zKb;+Aob z&c3y;G%e9H$dmf6FtV9UhHe+;6Y_diWWiv)YRnP`pn{HY=Nb?m(sv03KDwMS($v)_9GG4N;&d9kZ_unbJ69OpP;hFL!OK|z0ZQHrtI@kI1l1$` z^z!%G=B|$gGjIHpaok=B8(HKm5zb)2+N$dkTot{)wlt`u;*S}pKdvxT#>>U&#;_;P z{D2>57;y*Vg`uMPj_)q03_HLL6P(?2R#>m#W2cw#+2^G#J_vnM2>)ww<2aN)? z-#8**h$}@dG?t!+4LpdfUoaNF^%(`pb|~gHEUHrbIH1&|CT&9jx>4;+#5`f4H-!h> zttrp|MB+Z6=eKzz*#Jir#Y;|irt=qmBtBa|xiZc5IG54-By$A0Gzf6j#X>m+pD}hw z9W%1fhA;n-t%CzO5p%1I$Cx!Kiz3|D&k2^AskiNzt-cn^dA8*rXX7XCE|s{BT`>VHLk*dd0O~MxRrd{S<3h}l8^br6at-YnVNU=YPq#rt{O%F9>C%3Q z1AcH1S1jZeC{=IM2tPSUef|sz{g<6{eHf!RmKUo&8y8pa**JcM=6B{#I)Ax622C?d zyh1Rg-y&;rzlV56d@)RcT1Ejg{Wm;~IS}^-_gVf&a~LW%K7S11#EM2kaaKhxr1oYh z>+mE|?E*e^Y2bt5@y(Z>pj`cQ& B_<)>t(M2Op(qF9U-|COzZrop?4ta?L@_AY4 zOW75qvYj9e!r+XUhq^`(!kMP%JnAcQbE%@}&Ru?DM5FppO9oi|ts(}6X4hbsr2uKc z@>*auMlbG*ifi}-()aW*qa=|8y|;RaTDJp#7AaJfAa>XoH``qo$U9;B{^;yIIxj*1u2PoU|!YbW|99^=i{jMPa@y@ z6&Dt|Ff7}5aC5jm7eVn%dwqarDVaWIn9gGv5q2(+ro2rAOddsD3ElRfO4S$7qO5H? z#6`fj^Q_6;qk>@tJR;zR-4YApcP_%@Z~T_BWO^*OvbBAx%MM{CzJy!;r!Q6MuD*?I zn1NQaJF!fLwD1$=^C;P~ZXPyo;%k3t0SJod^rw9Tf`4qv+iTg>&!(y?>J~?7I8uA4 zX6d?e?9;y{dY!HIVZ7XIG?;vvOHO_c@GjAJ7kAj~nA)q>xImnJ_`u0lP$y|ZzM@3* zz0DmZPvB%|`*m_)ahzSdb>>Dm8+^*zDwm&09s0?w2imW#WG9)%(n3RM2J*reTp^ku8?6kV)cRu$GN)@WVD`XB=57a3!$BGCuwM2%m1tHOR!BoYPbZu1 znpyr(Io=<_W~RXv43P=}*^;64#B(q`2&Tdd7=Q2Wlzy(4Ooz!!Z%Ux1{(1&oXZmv& z$f<(t808!3BCXyROkTT&X-mmDoKBZ5FuKUnBnK)F9HD z|99fYQ4SxuRmkJZX0+M8QreS9W2f2m?+G+OYX+p>$5$nQ=1T|zf|=Gd2<%v}uB}?3 zSWvR&wmQX|KcePl#+QcJ7eYWoj&n=>9{0WifszX~wm(s+ z@3Y)kHk!yl1?pEr?pyVDewaWY0L;Lb1-NLP?)1j2m7MZIBF}0Sk5%#O%=x{3-D))O zR;|lWq67#7-npEzueSGd$M021s7-}x%){X)LQX|N1uHhkf^k%MYK)~AcY8xc@>WSw9=3JRc+E-qg4Vsk;8CA6}^`v zuT`tUInG$F&ewl)tAc>RI5!4of}P1FBa`{UXhmB6Vi;4Zu%t*RC2-cq-O(EuasOE%(r%ofWiS7&l8&cM zA4pH?HZ)U903=Q4YdhFpuI7d+XR54fjA4laX-{1O~D5>X_F=)^29l{wj%&((mEsy8BzMlqZvSsG($!KO--WE$o z%y;Q!zU%VLt}O2p=ZM#sDJX_Aq`CAoca#r?a+amf?d4|M=-Xm0N!q5gQE}f^h~3{A^BkmgEy;Dw=;brq+AN$4 zgBk!Wz+g<_`e~)Q{(Y7jP;YRx#@78w|j|8{8A`4*)QRg5PA{tOF z`%#3w@t~i4{4fm)jFXCsIyN<@r-;EizZL5!jixdYq_~Ai3rYkXa}ZBkwik|~x~m~k z_(PPrT-uX4#Nw&RJ`+lDbiI zT;_*fp%<4T)a7LlvfygU0E_ykIB#Fdm&2S6E-Nu#i;GEMT>Wo^v?Om^CKuD)1s?JB zYum#zq;ec<4vO}vEnunj>i{Bfm3+tzrc)Z{PDoYLgs!sXD6;s)GA9{nSn7`b(HBSq z=m~k^`#5@F>bgTW-atBmby#40^;`e8n&D*5cS}}ezdan8Rdr)XOj5;~eFN#V2G7iB z`Xonk6=>dX^)oyfwTnRz{6v_(uyM|@sRB->JOwP8nAnGo!x)6y`#F=sBTIL7P_Aar zM3M=mX!3HelX#n!zqv{k^SjAKkIz;uBg%-}W0nvQ_x%V;kNsMIN#y0IHH;Q6_ z?j)S~o`~NGD0+_xHBfj*wko`kyh2f3G|JK0^b5(P%&DDvEJi+RoA*a~?TNzh;Fu}t z4XzZWPM!H!Q+ZY`qBdY=!-jGUZ+I#YSKw+wUfttNQyd@$wVb#T&gg8h=OT=nmCzZgv!){8bpa$i?z)Bdg1 zWCUY0xCt6a2I4iI7sHPm@J=)UeZg^w4O?Qr%?1zfdX##1U6zdQIoJVc=gyNPl-AQH zk|pT7qf3RF=)juOH&uRgQuZu>1z1g@3MtQ8b**T8qx^=%C=?*ZAZ$9KbHyV>#fbC^ z;WJ|gH2;S39%Y`<6m871B|xcO1<(MEv0YN=CK~qbn%zK8GLA@7fgrYx_THzG3 z#)Py7*d1$|9bn;%mUBWeqNuiJ42qDO1?|VQ*8B@pMhn)(yS2&Ek>(L89vtTfNVq0* z-B-rj(UED%7i!sfmV@Y=oDlE${0hv0OCLMp#>b8p+?fmR$~%#hKQS>;tS6ateA4^{ zJY)OAlG#t?$(mqX#A978+`t|53Cus%k`TP;eg8BKG|Gx2t>|(;2vC<{*Ox-YB{r~e zNf49;OQX=GlbEZ+1dW;s%jGFYK!U80J(!dI2G1?wfQ&gn$|2fKptvcaj1C((ni>)3 zdNU3!W5e>+ruJf11vcKnm5pR*vT$F?btG?8y^)SnlKbO+UdNMfnreDiQq0m}mO~}E zY1&g&>C3!`1x|4{7L224ZQG^;q0;>tS*LvY)6m}U8&t2ek`oS53t@A?Bi1Ov5bEH# zSmS{KkD?B_xv<6?&9|cD1#db=8xxgdX7fii z7&i|%Z1>IutT=4)%v}b%UMt;3{zeYLHc?710DRj+sW#o_MRL2q??6BMbM11`ey&PY zH@~uL2|~-9Zv~~6vrNES*o#>SEZrrV&D}c+w~u`$5;(8kq+#GiA8_c{awt>uUMnkw zgPpkKXN6V`M&Ghd}k zTTRbzg(s=RQ7%bkv~0URF*;k(r%`A&WbZK-a0=k7ST8l{f)T7#f(G7Qq0^*q0Scg z+qRj(7VNvf^VuFJgi9RG$bVt(=}yi%x@nrQIk3M7;cAyz>Ag?20z2TfqA13$*26jJ z%JY*{Vy~FZ6q-ZNxOw6;O`OL(UYV33D2}|yX02l zvqS$ICiT_K>sU769R+g zqVnD*nks&YsAp5BMCR32IN@-aBUh$Wx!~mLDm$+1B=E!xFZB_x!x`B$*U3|>9C^`c zfwQtp;VWVf{bw#ogsDfGqkXy{I@|6$fsJDXDV$<9%(*>lHr3$NIAP?45h7Orq_{3s zB83#fOLj#3CKcE-yY`Z&Uh7wT#IoB4XKfm?=A-Tv=K8`XwsUI%;_-fgt6Y8wfhtq} z7};a0i@N3%2x*MR?%Sndx747-7V|GCJorJB8&KaOjdLlE2#3;*~vuf2egSu2Jur!yc$GDF@a1k_~f+APlPBUJw;$|8y zdUyYl{5P^krx{H~SyoQ)gOe>PtSMWQ@lhehd`{70eg{02{Y^rGg}h!^1BGo{GbJvit|L3l8461It+!2&(~ zPDh<7phDG+z^9%ye}-XTt^_0!n~IUl_Z1R>Eu)B4<=qWa{7+{9>7UES)3x`<>t*-$ zo^av;cbbYxxTjT5U%Rqdy+2OKkNz&Uv>n+{F+rgV9a&s~6J-YIJ zMZ(4A>!eD1J0GimrCa$FZzJjJsP+5QWg}ww0x$7>xkB-~03&{#uMFmM^7v+c^SHL# z?QFaJ`}EI^;e@BR!`j<&m8$Z@Olx;*cFubId-m1P3SX&p6AI{_la>?h{b&5!X*=y3 z8cb{Z27F$WUWh8R#-p~$S|OSi#81Z3tYb|0`LO65f?y;?inyGH%g<7OFE{nXk0*rl90 z`1$BgWKN|zlfT$RrPrIAE-f*&J&b%(^S-=6@O-9YI9>v-8o^Z0e6u1^Z@(xl*HA0E zC@7>De#hpDuVyUvqV&ugv8O~VU(ppecE5gNM02GVTGJ~c&`ta}l%;oz+XZ%xa77Xv z0Lb&Y9c$ACV*dE^JMnEA5a1U=B?Cs!;b&CWQ&ncFcYUewA?oJOUy5o;Jt%rRy~xGH z>3Y=Dz#ZB#Z!3qj?kH%|)r}Ep^_gzVEC#uL)(KFEfnHeqIqx%~00XIPe~$9lo96Sq z<_+bn46i%FwIg6i0)_~pL+^{Fd%;l|utk%uoK~!a%JRBbe>HC~vEYd?Ab;h(`DUs99pjh z{N*7?(aa}D!IrsI?1)sos0p#AsC*_zcGz50Twu2(&p&q`*wc9*E1d|jg(0AL!H_$&f(4jqf|F>2|YW(XRZr$iKjIivS{KoD^BoZl0lqjzb! zYg^j;2k6rY&m>Tg4!F^cyx1`^G5K`9sQ8=;L|qlli-=Wf9!sm3?LX6VD-BKcccp9peR=G(2(D@D%=&UWjAZQ zfgK>u|D(RNh>lA7erHGua}*jhn(v+8Iw^F)ww= zgX+s)S`|xXKC<$Q7;nVBDhpJ@DhiVkc0^y722fs|2}K!g?`QgifS>3mGNPDOl6P2XGMoSGVj{hydG; z{6dQ1qmSBo&JdD{#5f2-$LGcnrNY%tLxP5*{g)1qOlLNb@NoWHtw+f1&o3o=mU=r_ z+&vrekmmRSRivt|f(z`EZy!%ORlW^4$I?5%Qe>vT)+z6BScM*%-%OD|6G2ScL{bp; zmGMt|2|=%CXEfeH39!Ix+SpB~bICLbO_TaXvFpgZR_fjl2uu*_?iBEDFi+0a`nS9) zW_2P_12xYFz|sprE8!-hA}pPuGPb+xpMSof;EB!@Z!ob*k*^ z6Ky}-yyRR~?X2NUb_T8k>@})e-0eDyaSge2YU4%Nzyp`h63NT}VT~>1&B))_IRBn4 zsyN_2@Z@0Hga-K?##(?mZgAnbL4Ea^E+s`=5tURov!omMSHIvm`a$AMWj2z@BD(1R zL)%#e#n~;|77OkW+}+(JSa5fDcXxM!Yj6wRxLa^{cM0w^!JWSR``m}Ut8SfhU(O5F zk6m=pd~1$1=ZMzSDsIhcMMf?GD3*iUMsv#ZMfbv!Q}}9w+qMVPa~mH>Ta+0IBPK)> zfWgKzjE@!!u#(Yhr>2lOe&bijmCl|W`E0UJ+Ao&@+M_j;S{t)iBJ>x~)}gspF?xHZ zqePU28IN@6cn(8L2D;RK*zj$3k!>z z2{|qMGRi*$LzXU0&?@3)xlS++F7v{)H{5$rCy6ks4QiMnlV^{p&~f$rDt80( zo4)O?hsxr(0Zm1eA1_^ZI;+}LN;a>40Hau9hWhSU$JvWoBv23ByBt@*ab?<1XS zo$Am0G!t$JL5X8h(6-7QpHn%6l||rqZeBr=MGvh?WK2N&(KYdiSeQO-irbc6o1v_G&l(o zTI$dB=tb@QTK%wKT+~3lI?d-_b+59H{pD~-cZuMliI8*Sd*bXOzUD|15r&cd_yo>8 zA48d+?Vox-wqjy%f6rPEWaG2CgjW>!Tj;d+B{1_^5OGwuT+VCZskRJ={w!-L%9t=mK90VR0p0}>b1Uei8_-b{TFv5ex zfJft930)qSJj<^TH>u1Bvo;Q8ZX4B4{<^~#e_1d0>I@+};3l(Nc&lWQIdRBT)aVX_ zMPaIkIFc)ZU7aenVo20|G!Q(TkCY$3hA~`N?V##1wKv8>r7ibB>2bo8d4mq*g?zGf z+!+q)O;GtRATS;1%i%X@v!(OjMBl67Ub4lw#vu@Ig5?>FvKZcO^;xTckuwaXJ%jhy zhyKY9e3VnNn5SR%e>nzQ`% zoc#%~iV{C*q`fese5k66ZgFi1r#H_39b)-C^L(ZO(_VnFbsp5z2+mI7tf^}G6RP?Q zeYECRR7piIxK2%JK^596CU}_*QHTK3c|Vow^2Ix=Z3!el+OR%0jw^L__Nla#OM=Bf z_6+d?DQVQ1#I;D&vY@q6pf7St%;|+eB};VJ$_oUjcVfT+)o@eAY4j?Z0(Y`Y;knGO z0}br<(O+na7Hf+flIkr#?%`w2>guX&Zku>>0YS*(^Kpgw9t>0v_h8WS+A)1=UDZnc z@y@xv!O`@ri+6c%>ZM=Q#kHuK>*)FxXxF6at~EnjV!Ndp_wd&I5y-JVFqL=*;N6%# zf(}lCIGW97&_?aeRVakTt?PwW7A=P$ne|`vAC;^&`z;NQVg=Tik(w!7YBoo3ao%e> zF;KDjV&I3h>iW`Hx*FwZabIul1F=V_23dpXL|Z+;@Bvve=N7{$!aj=AH~=W%$Oe8{>mAX06D4rsE6UCPvT0?)_J zf1L{Amu2K`fU8w`V9Wa__;19_b(`GD`8!!s)D4m9T>n6gSy~W&(Ah>6L0$lsk*hnU z-Kv}>C_?0}NL;;D{-VQGM0e5-X!&D=U!t9_*CoDCoH>ujV}gUszMjqdLD1<14vXXR zrcG#~`zoMwt~+m`LI|0769Sl}Z_hLz!^XHrU*EvBA)K0NBuU;jQ;zh3gIGp_SZf~= zz_9fRLazKtd1C?08o6T>K?xEzGtVM-&8k~UjYdLs5B#>tXgh)3%C^erH7j3Lk#>!> zYOVIVEULx&;7Pa|U#QBv>G zbI}@v*RKXTWGjH_7_X}%ub!r4GM-btngE9*H&aCUczXu6PJDaLkq^exjNSqsssXp1 zkUAnF0z!ZD0e5kBIwNNZ2GXzysSW7u@M^KK~j-x#vBDLLtPDK5+h0Aea)}ZBwkzAl) zC37H5*lN_pCijWPJX!bFgsvUf;*iEQ^vJHbKZ5T3+1SCWrJi0kaSnUrMY5J85Tj^@ z0C7&hN&v}De8UH{e%%Enf8#{CLrnej4UvA{r3s(-I-pS` zaC*mx=Avz4do~>Du5RnNh{<;=-BxPaoxMQvwBh>j7ftgC>u@3JwfU@n)xzmxDagA_ z%;e!{8>;5&jGSm^#22!lvj>pZmAZer{P^fIaq-LD6vivk7g6S~-9QbBe77w5`2+c{ ztJ1Afky+FvmaD8utgse?TgP7#*MGl_uhb==#0(J|=Z}{rkvf4p2Wr^Q^fj9{d}*NE z%A9gHgYc@yA@jx55uk6ODK$^oT){1=e+wYl)Ukj$$SoZt%)TbvstLtr3<^sIyvk(EUqd%h& z*gewJB3)}7tD_(nO@|5M!JoKct3T8%xfN&!FNXe9A8`09S}E^yWNv90D=YZvCcytz z*`XcDU12?4XoF%>SioI*{zqt#`~}K|p?9V-l6-wMWT}EPR@$#qY;RV^hgElcau?IC z0+wWBa4L`F#y)Y{sCjl!1Pi$`=g(A>D>YF{NA@YR*r9qHk1amd(10}?ORgKSr&GC5 zCBV1i8&-?aYz!i)pCj&9! zMjc=N+_q6YN&ed=Z^M|Y_wnbcU^oTE_F|kNW~tw}Ho`HQ=u9IaYhYg*y@&FPP_S^+ zAh2$t5Q=H?HP2q+{`ai9{0j4SORysU<&f2KOuo~pWCfa?Xp&0Zepfvzg|MIvS63kr zNWNNVyrNz|549QAT2np!&}s=txDnafTg%gXcNzdl4nrwFmY)C6+Cr0h)XB1z-d<{{ zC__Qw?{amy__E|5e_uYpq_XF*(rEEj=VZW!S#(+I_Nfr4+6iiITLA{1QUun)Wv4GB z*Yr(Tp1L<7@ktVM^%+P0EmqpzSK9YsyKydFafc5j3dgt$h+#Lo23%cr;pi#UH*~x{ z_`>o>zDKn{UvnhAD5d!VXssU@;l*bvja>N?WKhQSv6hrl)7eoaaX4tL{AJc~zlIAK za_gf)G$HOew@gne<0#d`(oT`-}x4lsInq@ zDvAv6as2>AhU##>pFi*a?h`i_{rLsVT%Jo1Hs;ep86^+gc{W&lNq(8fqa~t1S2RT} z;p2&>6v7B4OGYMiL+gA(KB>BflzkQhXJQc-ie4EKkE7mkHeA;>jl%iu23yBhiQE7Z z!!{V8xXO78GVCMiNa#3a&LJ%G4Jvq>EcaH7yMVb6a#xYPPDvj(nb09)w!ZbOZ!5P_ z45_-j(#FytY}}Jp-{1IUuO(CE96~WMMN72r2U^%RZan)TUg)}L)<)-je;ew*@rc(N zaiYm^CFl?OJgB$j-1w;`_9aH6I1BZz669&>iT+p z2e-GB>=3EtYaYOWC^OpWn8_NKP0=ZA$qJmV>;RiYO^uHv?ZS^bL}VDYRf>_4pij|9 z)>-XA7M~Qbju+p;=ER~{!;UkyjsX{EhBn=gUj%Lg$S`M&Lu%2PwFH>T%6sfifBqu| zAl!T;Pjm(Q_{#(FQ%6oTE54?~Ei_Y>D87>4LMv#U!@=ai3ob%ii9vqTObn498?8GQ zTC~3qcKglxvwOu6Bekg58JF8kdUh6o0M{}ERZiO}ezGX>HAMU#8!S=c!yPYEBIh_| zPa?))ag6|(zJOcZ68gr+jQmN22%ab7``nV{S4oROY$W#VmVKii+Dq8hGj<1XC7i3= zwF0n6jL#7<)}lN!cFj`w&76~nUKOQW;)NdJ+@1ZGSz&{Ag z$z{}~Bo`LQx}(e{qoh1;LRO-z@yI(j-{P=3sHFpNBRIWs;=B4OBlj+Cm#>)Qm})msT< zU-C(`3c@S|9uAJOp)~#3ep8*tNz{Z_@1u%N8LwQ0TMdU+F_!B++H-CmR&8gG^jgLA zU@gdQISPf_$VQFPR6Q1z%g_j{7Wo9;mUieri2UWocqnTHfm^?{e3DBCGgmhkb7T8| zUj4%c*x3GK6#svu1pn>@_zz0(PcHwzP6__?X8%7Z0o%WqH2ynEz{SG$pG*H!xt;O* z%&%Rf6#?=R*CLU%i(^Q)Y~le ze7INtGxUG+XwHKu2AWxUT5CEW27SzYuJ&JJId;6?&VYRR{R8p4{XoYX`QJX>$ta)h z;m@vv$SJ_||zHpY4d(rhq%{^rG$G9{DY?w0PaC`nw_Hlp@{dPs5Q@`RPcWX%xFX5|WSpZ1|@u(z-7CL!2fTX&!{l3xj*+r=R z9aC?+y|X6hbb89kdxu|eX7gJAi}!W zN$9!f6X?3&lp%zr;jbdUry9qjbGh{pGy^h>7*#d>+XDI+gb} zrj63qJFCvFXRJZKBbf_|$x+!w8xo>aBhbNejG=2iF$vVW%#uL}*iR(LiuX^Uy@#~+ zSCEq{eZF|(KedDB+K=9HEU95l5=rj)p|F$jRH&jhm{;6Mgs&_XlOD><#wC#v@M{j* z+$XG~hMt5h`ZO?kZbM0mI*+u3<6h6q?^=%?F5_}f-~u~Bn;s-lNE<-2x_I2Mt`Pe# z&T`7XVl_BY4kwWWY5Zy=x)%TfY0-=@XNy~#rZ6k4^ra%cWod}G(HHc?Yx?nvmm~la z&OX$TEbLP#4ZH0m+#|YaEYB`$nAU~SQYf~wR1hVbJrnFi5J6t} zOUYs>Wd-FwW%Di6 z4x0!f=6Tlm_5K9;D{jK=se&5@cSdvwAX&&QU~BY;WkmH^^b!>f zb8&j9=R^<0X3^B2xi?Ccx?I9D;r*zA@KCPCWl=Pi-H z52{qlB&#@Fnl`?)Cu|P1<)yEZ{(i3%8ML3xgLKe(T*0J>RL5h~plm_L=9}Qj3sJ>k znaIKE96sXvS-j-O7Ry<9%v{8Pn|r~BTd}&2qgsVRvD+rkRx5Zu9#RP_JFeT}wh!$% zWhjD;MowO;&3rvS9#8-ldej4^xK(6?fSe_7naR)fo8i6+t0tz z;p^G;@Rn&I5(Zy}ptm}_+u|zA!{2wU5);0w#r&xCZ#7`t<=9>3s_G~LU`HpTGPx3e z;6$47;iU<#TZK;>B54XoJb0K_Q6rEnk-;5UVwulukY2IROw}=UHqB-c0oX3Fyu>vY zhb{>7Y^ujqzKC8wtOx{|-gumNQr?!Zuxj#79+c+d8TLM;dFuec4jNm*IlQBX%e<or6czV1ew;|Fb#XqRUbW)(`lq`0h_qlp4-bv+hlVslSCih{HKc>d=iC zawK)RzwYXsLf3_95*oFeNFme)9AnC70I}tY4Wg_AHKY!!`qM2{P3w(wH6479Onxk^ z#0mX&qMIFxlKH;!A5!2*pkBwX3E0n596~ZrPd})MxkcWw#kAVr`1Px%b#pks=+3^e zkF}>n>Zq(^%oY~K^j76Qrx~k%#mk6BftrP4gWY*Q{M!*;eOY&KF1LxrWjAga*7J<$ zQ``)+LzBPeIvI)97Z8X_2my5Li{mq%&mnyY_(>#c}86ml|3aiLm z-9Kis)lZXow2Df?U{RQe6M8!tcOxUegQsymjKK#nLzR#I(_XR~kNl-Zm)ls!dihAc z=)84j%m}`Xk8?wHx20wO$Ks+~FB>+KzlMlZX6XQDg~yY&C%)WJt?(eQntmlZAA$wE zr2!`8sBRV;^OhfI`Ny@Nm||)|k-0B!y9-KG;_sm!4VqEc{2EuF6sn9(I``7stS{%2 zH$SeICN`$P6C!<0>4a|VnnNwQG!6^=CJd1>8*1r+O}p)=7XKF$Cs2H2|IIJixqhyK zhm&m+t_kSfVj0I~2gM*SDM3B1q(^MARTboBgO3SrSX<0@137_RSZDhK>3U(pPU3ni zFToi-qV%ZiUUJ876 zzz=m?I51@QR`InRZNll%MKkz=!0s>mZ6T;Z;EGN42MdG@hfqt3Wc==0$j>^3J)3OA z@qNiq!qEa)ktUA6MEKoE6;GHHOBJmM6953E2T1j_-|Y}ddv?)1avf`x7D<$r8-wLb z4%^l$!U&UF1c+2KO_=o?tThfHO=rJy)X~1$vnydW-wT*$rlE_6qH$a*?f}TKIVwJ&jx@_%_0|kdxesg1z?DZIczWMFOd?UkVR_h zd~@@6{C(8Mp28oLJg8$R^d^!Xd3A?t0wk}r;oduAaaab{755QxA>4gieoo1&(hIRl zuuqfO=AM2m!`#~hcob0R%Y1ApI>fPjur6}81a=XhoHLR9k}B*vyFW{YXKTuNU502O z8%%xVHl$Ld+{IcIRm5NdAYozxe*T}me$Ipk4ftN0Ty^XibuFWmZPk&XFn8vdODNPI zrFJxCBO+t{o4WoWfWPKO9*ZZW2vADBC_ssCQ6ORYc5<{t!aPNM4PAhRVH`f5vu5#K zHWmO5=m=;V$%*w9Wa(ocVK{u%TrMEnH(;p3nPh=q8rWV07Z_*U2Goqq+R<~}`=W)( zKRY!?9_!MA$+x8pdzr$B0K*(YEVFlhRpXjKifC((E5Xgu9@JUGNky-vLwGTC#cX|r z+Jjq2GILvrkvELd7MjIQoiR?)iIB5T|BM*7nps{xfaE8nHAr(Bk+8EOu7ny{Phql_3G-Xho#|I_1hgpZW~BnP*(rO6$t*cd*2>J4Uq&NX>9j%zVg~OCM!Mi6xj1|z z$WzV;0UTZg-ZPYfZ$|o3uJO%uxj2Y6(Rq+^aPjPrz+$YO&~HrkxGWI&m^_I}duE?~%5yYibZ5B->=%+|>{cg~ZX%7`v{`tf}cGf0{h_hYqgC2$wqlGz=ha`o*eMwfxK}(*C@yh$=zwKw*#tq~1_RiALOY zMdPt!1vR`rSRQILB}q=P_&Te^O**)i?ZBaOjzatL+RYm;KLZD&(+S;y zba!#z)-nQax8LRIWkReupj%u6ZvlEyX#3KCOyFL3QaIK=PZC|xTg$j=;)WPijJ^mI zEp50{e7=(DJE<798k9Q{LdTvpv?=#*#w-+Yi%vM|V+InqfgnP@=E0~vwev0>2=;nOet zh%4j03ZL~VO^hn#L-i*#P}Tz%-<@b`$6R!?JPY2P30PxH`@SbZXF`ByU=lG`Fux(u zc(f|lYp-;qG}95>h$RPQs;GEvO&ZtKnGcJJu#jg#sPYiy+lEjjO*p$1dAdf^$47j;1pM`0jnpaM^}jEyXDED63_dso|P38$lx)$VT9c36gJtGz1#eU zqeTJ>xLJ}|rj~p5U4nPU>2c(k?k`2B+a}iu?%KB5PzRs?DzyTH(5yNRRfX2R|7~wE zp5bD^=L?Bsz7p`l=Y8NqjKGV?^*rmotRR&>mD`$@e&@ERK=dZ&yqeYOk~X(9e$1a3 zJb!tKTZnbF{LnJ&$rXH6GZb>a7F=0zTugfl+*om(&mR_smY=cfW|PAZoX4H>?@(nF z`T!Ri`NfPz*q*_>`z46sNUEcH5|`)fu6Y(x;wPt~O~JL*koejzLN3}rrGj73+zDsz zN})4~ZpiZBOJ8y;b&Sa`O|`X!{-o+hxUioe^l97YH)<>#*1zkdDRrA{cAo_Y8dHl~ z0^f`7^ma<)Kp8J3mygl;*NL2EO}R^F3^yBOV;T|~GqwWmhEQ~&w z(|GYFU!BUMN;b?^-H@(1a2ylj%b}X(=iDb1n|rf2o$or{v%Rx0&W${#Z5DrHaD68u ztD(xDv!*lwGn1;E`i9Z!im0+JwE9Y=aj7nRofA^*X;KFWiJ!i7Ah~+L5{QZ2Rhogs zfe3x3aISv->s#Bsu_kes$2#x7Nh(Ew%vPjCbEiyPp;QjtI+t3!kI5zK`EHzZAi^wN zJ`1Eo6$qbYFwU3_C94^mxbo^I)S%)z33)jUke#`K^@ilN3lE5aS2PM!s1&hXI=yYA zkFkv>YWqJ>8>4x>IOrqI5uL+^M-5swT-ED5s zwZh_C#$^CP08OB?E3d6udROSTR0LLq4LfQ~A@tDut8IUPbsUz%7Y!3r zXFBZVLh?fTDc#4AI(zNx3J0U)v2&a2b+T;~lmTAo}r3j1|sKHVN8N!Q9 z?8UrHOYxt9qlQUy@?FMM^W3;_)+tBz9!mM!lzJ9EUcwInLZJTpk<`4A`1whI?4_Xy zrMH@C#FU$5tLTU$MD-oFko$KA{?Dx_H#6BE!FuyQ)f=UBFa9pai9I?#*d*_j9p|Kt zU=-i+q~i%}m5yY@#!DG#Rc>pmfMeLcmMWi%En@nFYv->%0 z%f>oYjDqy6)K%rfZWZXj-$Jzb!}_I)GMzuzvLiNI6!KPRnrdUs6cxwA&JYSgE~v#T z5?Iv1dt=2VT7FmYV74s443EUT*<;@SF_pK`E08*rVP!>%hXH?O?8jl7i00~vCUztE z81s4YpB(+=y#^2?tofT;#Q?D{dPUoO#_vUGOKlU~FcgTj{avVpNNu9(S?kHQ=L^~m z?U|iXNQ|PP`kI*`j}TGPR$78F(DzxT_R8cz;zr?o6NcaXi<62Cn`TtMTsAkz1lCqy zlPQu570WIJ>ZTlHm|~w7`>~Qelc1OA$XPQAHh9;YKQs4d7b|IXHfnX8Vx@B-jJ#?1 zAM>k}sY%b;M$4RGep6;Z(2wfvan8Yn4rbGgZNvH}Svd;+2lV?!wyGm%-h=0k->pW{ zRdj3}JlSo)rf?%g(mVbiUt9)Cn@0e@hGKgXchggShROVFii}fi*~rO>P?;EF7(Z+h z>wp^u)m^HDF-Fd8f5cob#X_)?Rg6sC6+_A<6V7;SH@9EiFTT9rr|N1nHC&}~MfmOl z^Sldm5d2Az2FC#pb@|GP9FCElomq)yGgU+ofk~b=0WV*5dwXNtIKWKfZvbZ5mOFX+ z3;9$1@_CZU@ulRp0*2DUoe{}P4kWt=tVTQQA4RUgF2TZM7#gbN<-JK_i|S6lArh>0+?<5aR`D-}J9?ea?LERZh(@(I``Kjuhzo_c2=Tr%zMVvYhp{rW$WP zMr}H2gATnoQoiDcIv`h{t;r4vWP_>Kj{H*pmbrvm^;M|QjnfKtjNshTSR@zazTfgF zzl@t;Aa8&mDazilqr+9}Y;BQKHK{)svEfS$-;-!&PcZ zjVR@qwVj;260*?en!aeDt$i*BQjB%Iprmf>9ftPqei=8&^WKah?F*}V7y}b%u9LpWuOt-%DR`U}=)4!aX6a zEWONo4W>+vKI5T0Naac9(c16l92+efWPnOKdUhrdF&ZxKMJZPf$RF2ZU>0=T>SeEU z^9cGl{=cl^<2WDm-U52y`g8((Dh_f!S%v2(tMJ?12<$3hZms1tB&g|`X9)ydwSKaS zSHsA{IKvro+@IEV`_GmJ-5)=@LC=Rbcg?SvojnS#KpVW*?DN7NZ=l0Bq4Niu)7sMA zkr~j_&E=o%?VhgpOVcBY^ew%g=D0mG(*9S+#rOGXGTeW67eV){Gh=An`<0QvqmW9i z95K*H$*Z=rS@i##(?l9cTHBA$==)vms_0Wq;!8h&@FfC2VMTs zoi=Kc`qHh7cDKn*Hnl%{WUdb>PxmM1Gv`*Y#L%drx)APqM&dgE0T&=6XB6>^V0Gs2 zfy3;f`R&?z&EYNR?D094{Vw*eqT=aA8)ef%@karz%~#S7p96wRzoI zZ1>X|XhjeoDqD#@?hHuw4<#^U&_N>WIKZle*ju)%dteD|2|R<-q}Kuc0SbK!@qsPe z`0#@c%y|28VEkQYiAXDr$Sx0*0qlH*eX{i%TsJK#+KZZJ7C$A{FQ0zr*}bp@9kl?C zJKaeGe@8bWkfI)dmBTryfq7;r7{Y0GVn0sk;ms*}eqGNqMzn~}f?toLpw~ZbCQ~#P z{f6nPFYt7iv;?u(BEAa+Mw z8s8gpy|y<^ryG^bgqyjHh_W1$(XPtIyyNK0aP0QC7t~=+fxA%H>OLg&WfM-eNz$hG zzlhT|XOxC*)7EQ9hd)n<%lLD?TK#R@!Wg-4Pwm5;kM z;2mKDj4C?4zkzD?cXuy>eAS(&#&37Gt!)xS0wYK2APm?uE55MNXbXa|BcvqvHE7Z} z&05a2Uw!qJ9A2I}GWnZWg^3I~z(f@6y<#4I(~4(8(dCg%E4a?bW&#mAaWIaaX!*#W znecmm+#Klas=8aufevX(Yw`6^;QVb0zP2zZincFmMf*0Y)$8z|MuEoyC9)`N5^ldH4I1K5(mF`e>78)1RTVrhg zN<$Nt0}}`Dq^o>@OY zmz9$-!l1xQEr;U%J8LYb)q9oddnr6cAgH z+H~M5K4ocMwu*Gf1Sbu&Uc`?N8;J@t@~lyp6}$2Wbp6D%@0X<3{Em5ugPi6SnI7gG zr<5Rs%7Ss?=X0B7`?EE)u?qLYcpQ z-sD>MknNTmS_=EJX_G%@7mOWUh>3XpefgVkFgtJNtRFOZJn-11K)rRI|G8rzjI>}K z5hhjL+s~CMGk`R0D9aogMOiF}wqTxgE|7(1;H=k#t@roG-jg@SyFKeX&4Omvw`Om% zyE-w@YFAgO$$z2vIujp&+oe2X2rg8N(kof#-{7?`-gEWIBJ-zTAIqr!>1;f z@}GC41oU;Md@=f_B!mh~`yy+gMS?a@Usw&RET*s^3c%Rr&vgmgEB1{bqIh^Q2&yDA zE{e4HBC88IG4Uq)zoOK|VhI&+iwq-KWpT#EKx-yV$^w10UO$T-icJ$os0|X{Vz87O zm0AsZ_pl5y&THnAX5N`_*`-@0I)QCKS0?<5Wy;C^{UMVjVbzWX+(JnLX)-ay5Q4?X ze(<8Zw1jwRJ>R9y;GqscppnR&1f35Dc-6G%gb@dT7bK3J!_btBjF9CJIdgL;ySC)> zVc0#71~pvSa9ldf_5C8PIT`f|^7^7g^o^iop>@I=vx^}0OC9{TQo@Kxuf&fqWm&6( zF&K0)p8+w?$z&3&?FtWevY`&s$x(DYO^~vMJJzlE=51s@K@hA%abRZrlJVN%MEu?1 znVp7AxX&#h%(FHLDMDN($gNcsY9Efpts1amkCt@^_wL2T`(*#u^7b+GX_bvMF06o-IU$U7dNb~rH0=x z41cVl!|(#BEm_-Tc8&O628|C(VJr9ido=8@MK-<5WaS+pimv|KMA1*POX+i@-m&Q6 z3#rs-THHtGs^G{0t$wVieUvYqI)_uiUN+1LiY$^U0a)~t7DKqPyVFXS2;TvtEF(q| z(JUgWx5_xyJKx4`SH3rEherDM52vvNn-I=#8!;?Nh>ccdMs8&HtM5SZumvBH4ntA@ zNX>G9UoX#q3MJtX0)VQKD<6Q*&5v>qSYqW6J4YAlE7w*h3Fi53+b~72sq)M;QJpCr zl~dL6R|f{6La3C+lIREgze|77_Q7rl{XScrkU>4{x@>&xqpFJQJXB!^71e*y>Z|3t zKiBv$%Cm2*G~}+Sk~mu{4R{)ilg!S44P0ML(4l0jUn@swlZid7<-E^E?0eTSY&5hd zfzEcA@zIB5wLZg^KgaNY__i7*|M`{JGr3|fDn+wmAoS987){9SG|;Y);$`2I-sV0JI>d3d93h9jkBd+!ZfYZ8IwqUP)Bs~3D- zPgRBFu6Z1z>Qe_p1@?ETKq#eYMEHAWzK%j%sw4y53CFJ08}da2K0q7lhmy96#aOi| zb4*N=z{Pk;dhZo69iRVPljZMEc@(W3xz{q8!HgROdktLA3dRXH#?4{NhQT+5 z{HBpgSIM3!6<>L?(e%--i+V0P69*l(Out65M`$aw&m{dSlSO`zEpL>`n8u6$OBdSb zk`9`|tt1aFAGe#(V?NaveLO6;U2#zuE8ikaF4`#8>z zE#}1ALFKyL0TVHueQ90qTmblD>da@RE)Us?VoKPaX$Fr#nU|kSB$*q6SwDCA8KZ}q zD>2*l%}M0p5814EPT|$_SkBLwY4=s(D0m_xpdB z!`V%(H{lgatPR^`{o;V>0)v3jU7k%ah5hh85oWG`**7fPRhsd{J5(ks0sxejGBzA`5U09o|#Nw>7$n7B!ggJL6))CC#;hk7d zdt+tVprfjfjBGbfI7}`=0j9WjEex(wA%(JufzUWV6}E%>=)%lR+jeX_L_hx{vTB~Lz(;DnX-hk>uHUKxwY@ z;>X8Fb$xeq9A1(pv|D;Vqt)Y_Sx9{f`@U@UfmO@s7<|?9I<`Ar}Ygc(@jV0x8Emz&t^&=tR;P>bBg^A1}1btN<>u_Gp zcUVHO*L#c7t=c!jsj?AA;9ZuWH~Nyi3uPYn$VojT{)j>Ce!#5uU_FecXRSszJ&EAP z1k*DAeviJnv!AVM^(z=Ggcbs*4;eEexylW`nHmJ>=utQujkn80icZ;3p{PR?rG&PAfV&EVux~FQbfbnsnV60kBOPG8%P_f;!EZi(|L9!!TjPtv(1>No765;9(VWS9v8|!x%VLcfzLo(&!O~UmsG#I< z(uR1s9rMQDdYG(&daOV)7zN1Qkv97^>SvH0F%{N+Vq0q{93-8k|>B@;2?A8 zkwWb=JXI-)^I)%}!zmQyqn*T_BWI|s+RtUTBaJW3t9R|;>3e9{zEPd({Nu}OfC3|1 zxL;3(b!Brl(p!J=&`38~He6J%<+fAJsRM=uMY(mQb-*tGCBSL7ezvV9^(y{UVIj>f zRgrNGi?8X%E`A&8f#pfFPRg6pP&P%Pog?U*s9kMKgLwbzXQ*=&0H)yy$hS^<)iMt6 zH(zXHR{8`^zUdOjvVflWHanMM0GoWBgr1$(FBwH|darRGJ7*Qt@jTr9&;VRqaQhgT zm_9n~Q{D*n_!Me59)DV!)sg=E97*{*vOd@Jt-JN}z1T`I3P;G@{Sjl)nC;#2}eUs1xQ`ko%g9N{=_QUEc1KDa`W|Eo?xpqAaG7DBf#?0~SK=3_RprHp0{} zO6thGwV1vB&G|raHNftK@arNzrJZ5ok=E3vTw^ zLcY5(TZWT_$OFk+tRX!!!rO{RrYw8_g<&El7soE4y>C@OIi~zY4n%K&n#Ar#1CPX1 zU&kUEYEw)P@_-bnS5|C!jxloaI;l$W_3@yNd^DEUg;BjZQ|x~JJj^O|%C7q15#RB2FYrv+ zISOE-Y;RKGXogy1P{TbFD0BdO<_VcogB%~~-mHxS^dbA&<@6p5ZAjYMYy>!|@!SJz zf(sfuK}ASV;0Pyqe;5T+1;X_18RC(oBq?-$Fm@*Jt#UU|d0v+Yn}E!scyc5G$E>Yd zKVf*p2DtRa1t*qlgGK~)qIYz#7GnuUM; z=vanGSxA)|-WD6ZF!Cd8`A!bkPjAEwrVtS+?>&4+Ja{-Bt5crCBIpaekhgC; z=k2$L&57C{jsO)ayX29LvyB33CQzD6`@ zTF%X@Q)4rE2edc7jaEd)*9$oVEg`fdCEIGNh;@3VobXB9$af*{3k7=jruUVR=_pzC z_k@Rqdv3%`F$fuVQ}^a&`wYjQ;l4K=k%O&5yjGq~=8%OisVGW4>ceE))mW8MJcmBi z>`acyq#&=7m!{ZFjX5eUru^)ZDalr2))ql>bR`<8NuoBK)N_^Ki!7eAf=qm5j4>8b zg}xqAg#1m_>aCINnka^1AO9wTj~a(s^EI2V`UqmwUk|DxWcZ85vM?5*Ni)L5G925#&u238qHu6{zk4{$rHh@XrkRPGg?3hUjUzYSqJe~rU)6}IWSwUalW zva;3v8ANgaMw6eReT93vzP)4d5#;^I^7e9xd!;yYO2ZEBhF+_Is`6;7_LUv7!oKif z2kDk?tW(nf<#tSn`7KST0s54wf>DDhVtS6d@{_vIzE`)epM8GX8k))ol6glQtw)9f zXqg?Rd^6s&-<6gtLZFlJc$dCnuSm|K?xC1mZpqv2P5)y{Id8GkF0#2&-|ghb{2hgS z^d}ji>{NTiSQ0UZ2cSUgygfmEH}oi%8*uH-K*QZ~+>%4AUu#Wz#aVd`YQL+I6kLN~ zroa3&6VaXUa*B2l&DQ2_EiYit|Hp5|v(|5t?nA5wz< zF~a|MFT;OC`2U3F|N9aCzjlxQKO+2puSEQJ5k40S*MCO%OS$dw)(HpsPb~3oI!-ozI4iSt*55YMDy@%O8F;v~eYw7!aOU^#6sjr%u6P4y_V(Vk^S2)p z=sa2ufprY;&9a`Chl0SF<@H>~k&kAkku7SXSL(~oM(h3{xp&wd12GWVdl%l7`-$XE zS5F)9reE)l!u!y>*CFd>hp$WERoFFu*xaSVa-b{Us$81PkJIk@46n2g@|xCu-`(a8 z>U&~kl|W}c=((<*CqX|GPe1M{(EH(QV0Z2(ZunqD;QB9I5Xi7PQQ&48#u?dO`Ce<= zy>U+5z1KQ>Jx!-Kf*AT> zr73zXVB_^TCF3YG{K@)R13<3Z;2HLNT#WDWo<&RO%oJ$<(D<*&n;)$RJi(4gouK2^Z^^!xR4tuj43j`~j~eQ5J4IpDY;Z zaa)RKUHzSN!fJ8m^f5t5Gp>6@5Rx6$n!fdI9at@&xw3*9LpzLw{JClFR5)bG=)R8M zxskRLT@|%s5Pxlvsx!tIB<@maA#(n@F=|Hdf@T8C^wEMLZZaVTy=84sl6IYO$SFJQ*_p$I?2I3rF22FjS~uE@5T1O?j*2a7PH!Frv|WYCFXjx9o_ zpO?_rw}(&JexGEZ2<5kMJ+=W^QOkBwY^8luB3^z9G@s9M=p=4}TUDOMlK`2TV+5mc z`ehAUAH_<36QkSQ#kDByxhKjLX3U%jLyMZM*aHE1I2R^A)&ABHAkKqD5jY0ZC%*u% z@J;H5!LWYjzdvhdBc=VTTxrQZQyJ_9GN8hg$*RAG!^5~}MeSyc5Ez=Yto${&;nC-Y zUp+W#zq$!FF4K<6dN<-cBl;~ZqTIvuJ(|iN_J_!%kiCidN7R5vD-g6#cW~O#TPb!r zFOV5k{)7gnJ0FS80vjWoR_OcUy38RL-t?~wAjaSh4S0@G?} zFwp9k^7){MWzBPXwu2YX&3Sk!GaQaG2Aue1)YR-LH2!KpOEEW3tfT_ zqtGj7jVc}gf*J{JL81w(Y4$tfZ?%Qf5rGv$7!+8W?H386S{WX(L}a-nNAD0; z(%*qN7A@-iGC5C=h?_!Y(;61&baX_%#W(>sihHO6B7v`>fGWg%Q)ftY7q?k7-M|&$ zk+50gD_Mz^lOB-F9_(#ch!=h5v?0grUR4%*%v?p8Uw`6Ys8f7PV3*s#zX~LmMv0YN zEHQ(wUW^+CP#1&QTHhHvfgpcR^rAH=yMRSL_tCjxkgn| zYrzYcB~PR+v4ty^iUm>!!%ah-j+>(z&Y-K@ay;B;&OI0WE0L_PY)2!kHi5SEk5PTa zdkH)|C?9oK+U-_w^1c)^O6pxEicAxmBm5}u1cbNThx&|9Kh8qYHVPSP_TZ$h=X*Fo zXhbrYaLIWkA{H1iBvB~uU!NbBIu$U?iKvH$OlPD8dz4yH+ffv+`3WpgaCUxveKdA@ zB`Yqc@ftKxp~c7`2+^@RH)G{K*%?1=ekFG19(Ey?O8Np1J^0-C+2k_Tn8lio(@Cfn zxG%ivw7JlHu16_zFe{h!Y>@5!&YOvde7Yzl;_$-L2^Co{8r{+UgGps| zK&?u%2=XfdC1dK6t^M>-g-2FV%|QM5vKZ0$37+}bCb2Sk>RumAoe1s6# z?d6Z4A{Z6$@|{AfNN2jVqEKPJMhq|Zc$LO`t=n`@`%+hhs3AvAw4NQhMO|@cHv5kd z0LgP76-|pyyXx7d(qNjV+nwKE*FhN0&V{!PS(-E#NuyDwk!sQ^y@On_!6a*8XG$gYRPnrxFavw5@ZrG_6 z427c_ku zGZR>8k#3hfReZa_jMNFPXYtsC&t%RaSj^I^{vq8DcRmub(&`3{No^H5E0r9HIUbe# zeqCU@O19#%e;b1G0N8G_VP+mxkVnle&7jMck`xX8vPjd|(+}Ga7 z+h)28YpmA<7zUzqgbGm86WS8JgYu|US9v9T#BQa-Jurn*G3hE+Z)y3R;7Ab!W*D;5 zLKV^kg?Mt+pc!%gDopvgohxfK$Hp$Bx)N%KD!Pv9?KO$r75I>*@<`rE9c@VU)IsDS zsH!-Y*t777#A|*+mnm=0+bMUqRANnS*Y{0ljb2?J)04k3#2NK4iF&P{LqWdKh8*# z%9q)6Q+_mAbicV_Z@P2)o|vVFVe)$evwt$hXL)zyUe!)|1Y2OU_zxX}<mc`qm0R zDxGyW-HZrF84Apnd_XS7fu-+x~pP4K&wjzX3_v9{Ed-as3?}6 ztk>OZp^GXW(u)S}ytOw$HGGMH?7HEhUFlVISjTdl>GPru9d7-Xruk2p72n$xmJJ&A z2Rbte1i%1Ez|rawU$5Xk-SqZr8A^*#Ygif9s;TdHGY@6C$+qyZvA_iBphFDMyl=#6 zHtJIpg9#@lJKUtPqq^~Pi>(|?BZ0nadon9|VwejpoW!%CW<(~tW}X$L8(%9j59BE> zA9zN~I@uro&fv7-3+hM!JH?t9iE}wNJbPhPrgp5Vvea59dG6Z$uW-_fPzRkQW-LPk&Q@l1{<1KT{84xuB)i|}M3nYl(g+d|EE?JuO zl&(-0qJnL?;bei-1Kv7~|DiLXa71rx{GSm*29<$_s z3X1=5La3QLuyz#S^uMYKFU`X3aAsKiD=gU4iy0kM!MkjEFs|%Ug-wRlXp*jwZlBAO z>4!G^LtKEco<=WxHhPY3Y^i989J2rfcNv`xz88cPX5)qQbH!$@`O7-FBwK-6M&NFt zC;mwT8Wi}9fry$=PuIV(jc+I|_y*|sxEPWkX zn6iDMU~uNYZ86e(Rd0vCY&R=pE9~B0XfBN1Qk%h?b%Noqwf4Cy4dZWQ)4Oj3fMf{+ zfwl;`s{?n`=c={g7B;@p5dw6ZZ+^o3dxKtd`CRTazva21RPnUg#^K<(+8b~bbtY%w zf4?XAKUP*9R}`Be=kO#YYO(%A@K#w~5;HMjDo*SAeA?m$Y>6o47%r5&vKiNawi#u) z`aZyaYxH9~cgv!8;0|H~PPVR)pzYI{b%i7AGfu2Il7d!nFdfi5P)kp%?S88qD=c*A zAvQ-kDlf^?ciL{xb@rs1Z3SDx*a34urt?<@Y(UZuETuU8l^oXPJKq~>gt`8mWK{W( zfPSI=wPI({{`+ulazor2$IBr}9QC%^{1_k(@AwJMl27X$j<*&{+Xb(Jd1 zPpg9}`7f;l4OxLDRB9SogU)z%J);Pnp@4*1KtB3PZx)S<5s=|{VMhLZ;asX2Ygun{ zH*z+Hhq2w3a(}ZHgB&T}d7w^tl)&9^KZ_WSkNxI&!fH_WH-pP*C08bnF>XMA$1*iz z_m*t1*bITS8x$?w(~Dq5*OlpLn74-RWnvpR0G2!T$*3?1fJ135`p!BR!$R5Ola*ZK z@hm>lvA!gF;kUptM)+QQFROtO(PKos_NgK9E@1>lLS=^K?jGw^-(4;AI@JLU{kfd& zIdQ_n#|bVSQj-s(?aNev-mT2DNi0j^C_8?)3a9?8P`1X);w6l~9nS6!#!|wEm*r?a zVO_AZ=2U&c5-nGJwfqmy>Vlibs-rxV{(_;U8}#(2s~OIUvQ&`bEwwU*PW$ElbvQZ& z3T@p8Y^C|t(!1iAYu@~F>SBq?c$Q=W{x1rZ0;wFt|x%Y|7UDH!3>`S=}E5 z*CjFqNVKD&TQJrX1p^T`d2GkcuyWiy@*sJ)WaC1>%gHbrT^rrJw+0dSCRTWAEOCli$5D-MMF^Yu35Ow6%|&~&*JIHPGb`>2raOEpj6A{d9(NoSgapIul4YBK-6>(O|FWQB=sEsc&HwtK0(?nynaZ~M}P~Fa} zF;{{$3kfG(Afe)zGfXre)jM=+DF!xkwTE&4s z3%pWd5-+f?=E* zpE4qIc$Uux`AMjGH{!o?Exg&euFRX(7HlGi*xL!r_Dq z-Js^EkJ>#23Mixw8jO|oy_+N6>P@FBE6$=7J)?{2>x_M9%KJ~|P2GCXPUl=2< z%{9AQLHWz}16lB|XlLST|5UFasv6t={O8xq!mCdDmIvLB)g%9cQ};{H@|7MmwCT>0 zo6)+P*xw@&KXT{5r9D7dbG*BJ@1i%vcPvM9 zi*4y;_RqMDl#r_fr6AAy4-7X12>es*n-E$zpV)p|CPvc`7|xddz%-%Rbv>;JP`4chQDSMWHM(1iW1SVL z_BDD6k5MF{zLDm$e@nNvL~*-yL{5f04_WLpU|&_M-M`8w%qvrFjl{N)dqXp@Apo`a z{b|~<-a+eJWF6i5`;5EXeHRPgK?T_f*TNt)f(UE*W-0>%2!gEd#i&E9DkHEmC&rOU>VIoa-$C1QF2>NUAomM1E(fyP zmYpUc5JURojmF5`#B}TkpZcgOr#d|S4eo1~V6JK|RFmftK-#Mtn$1*otqK@?lz}dn zyMXvC&z|4cdw>O3#O(f0hQ@!R5&Vya#(xDe{5M16KP-g*|AxkYMl}7;h6eM09i8~U z85*qY?9BfSv9Osn_7k3z6!QFv`Up}+X0!u@3X@y9knaXz`7@J{>vb6X`4y2|tw=TG zHW;&XnL#zsCgo3z7RfQ-dvwLHbanS!#O`($?I7mH#YCihF&qOdcySr%6_H;y=Nxu zfAvBopuujz@B_xa(~CQ3AgrU}LR-=0iF$&zbTAd(f5M}%H6m-2YB z>315j!XEJPM?Svji+N?%|MEtNyiZ)auDjNf46{_fl1%(yF+)MHyWiM0!IeuBx9CxL#z$dhe3_5T2azLm$ zNuKWow}gJYF->S1Xsz8vu}tkUcJfs45L7Tvd{H3>eYuH3z3B_FHAcsE{0F;tdf$Or z%J8AUn&bnn>z;_-3Hk-_iMYkO5X=?&9R4G@DAk%ZuNxrqJQ+4CHM^u4DIBNNWKHrE z)M(AgW3&a!vokCKA!i~kUkEnz^#wb;8!2&o6o=rrz~;b>g64v&`Wk6p;K67XBm50B z`sjw$qJW>(zuVaiL&SooCV*_n4{a|9mXhSpvPx-BmxFgYUO6ge>@<)nNZZLmlvkwu zw9%>;qQYtG1WBE_PRnl;A9x%?` z@$HDM546r9)RaLi6pw(Ob6z?%-60WdkkT$Do zt2S3T%Ht5h;r3r$q?jJ>^TwYMFvHQgxa0+OUDuDKRnbFwkgUa~hxMhHXf3Cj&Qg3H z%7Kw+D)=E1O^q4Ke(5XN5m)lBpavIDqx@(fr(JoFd6}SywmmBLyNDsN9!h;ZYu-F* zd_+e@{Ak>{Adyow_1NHjxWzb_9~o#|0T-vR1(>?#X6el#WaAaLzz%$|JW)%4C<;P< zuZ-^mQFXddi}nvSJE=QV8J2=a5t0<1l?w{vp+cWHB;#LM(4^@B&wZsW*)onZb&O#7 zj2IEaECJ0Bi0Jb@jqZA-&z5eOHDCQ14p6FjTLr*6ld)3b7_ovte&0jke&%B^=9umj zXP3Z3{<3$d{Y8d7_KN}*6-VR(7Rh}W^$?TIf1HAMrq0TOR^|3%`$|b>*}Q2A={ZNH zc8KbJi>NLEDG4;0DYGM)FE%KhEDH>l&RMJB!T30X!;zrJKLtCQVE!b(+&nlB%yaK1 z8!3ztKbm1kjm@BlFlJKp8r)FCmX&Ls*=rj@LZRk@{zcS6H@2L@MuPQeTdhV69PBIl z;L1;%+qDdwY}o-27=EA4oylMY>wlY@(%2A5yfViqk;0RZmh6DVnlRQQsw)O&%=?sM zW5cA85ts(}kw6#C6}}lm$3QqFFgGU&5H1^TAow~HOw5Vdi->Q09-01uK9S)`Ka!qR z;M=G|;x-|VDo>>&|08=<1|>-F56wF4q>JlBt2aXyV=)&<)7vD6rvKu;k1#AV@^$~zv< zpEtnEZ@umnCf|t=_mQ#iXhLtE@`5lT*~wkPPP&jk5(fG{^^>RyqAg*pzyA1CDAM0O z`Uj`-E3-m~Ai|ZklqX-{e&9x(zL}%3@E1w_+PY|8sXG#l!T^&_I7{|sA=+}gLUzZ4 zJsR)XAG+uig)yLHTp4j!VRHPv;j^Q(Vk&r)E|4&ph#Js=Z!7_N#Zr-twull-8V&(v zYM{_wND&miwxl7vn0witkoLkA{zDKip?+%h;EHAu-X@Yxe?E&ca}#pjm{p#^e2&4N zSRu*m(d3J~7t+d;Uu0a7$%XnKWf zE$|pewDj_0645?Nm?QW#&a%v5yq3M7uokxTOf@6q8u(}7pnuO__-{xdDQCP@MN4cSg2Cm2hSCATK63I)vHyT(|6o8b`K)mkgG1l{iVcW ztXjY1g;V)04lSO%TO8TO(v9lESIC{&C*Ej0FIAgXczV*OhEdqm4hS}0cLbA-i`C~{ zeDC9;5plH}1T}M^_s)6m2NRaDZ2P&74%K!8I0>ZMK2mI3^%dEn!no5w5MJ3dkNaxb z@p)$}?XId!hX>&Momsrhj>j;-f-UY5`^v^(_kfVbX@(ny(MI6}_ zrQQO7i(?EQoD|bU!Z}YlyQ7b#*a_yE{M@?_Z!;;9C-(Hwze4v^#Sr8zgF|pXk5V8& z+l(_rp`($dcYtbWM$-+)4kk}FLJUb%&#(jGc}&|#?Roh|Wm%dvWZ#4G1;N>C)BnaY zi=lU>U?~*6NLTVd(%V66S}eV!E(u5EkEnh|6a%dN3j3JeII+yWRC6;aSDb}E%WgJHhF zKyJS;*1EO6uHsw8lJtCQ_}Uw>=w3A&@M{r9X0ZF#LsbkIbdyaz;Q&u`WxIA6I2^tB z3v}FXL2T>6Z{Ev%7t53MUb&bt7Y{5Brx$OpR@PF%@-J7`o~`mMR?eh6=FCMLjaw z7KJ&|kDNA1d#2G0ny5pWbmFeygM;_>&4d^W`tgqD;ERpQ{Qb>Xeh+XnFe$Q?9ju(j zs0sPvCk)^t(Qmz&B8(5puRi$$O~VwbcU~T@YIq4U`E<|NVw8$}1t;pNpw;m}-^FBy zuap$6i-eA$dCignscKC}2M6rO#e*ELU2Knc2D7?^dRP7VUIjq8Dp@-iS|22}6=A0_ z03)SxAah_PWWnd!KMVRT4jcXJiaREQR2HU)bpys8tvMzpMzxpcEXZAg6VAM|`O8WN zsokEwS3fEs>68dszM(Q4Sa_}k_Ab;*O?ughZfo!6s)(?QI5r@lB^XcTs6nUm7jp{U zT4aRiIj@f83D647TcMbD_F^aI;vXQG@;V%t=3h#h0<<;pP#e&5kSK92xztaU;XN^% zz8y9aPkHf=E`r%y_GgOlZC}@fICqLIWq!g*f(WE5Hh~4PP^PUr=Cu*Bk{iI2;$Gef zZIaovn3RkOVkwvez>M*>irQG9Sv_K9Pm0m28^_4{>RyDJt$un@bMQCos13ZvZqgxtf> zI-_fs@v}15wRPLG(}UXyw4Ymb&%~j921IE}8Be_Cr{n_Rf|-&QEw(8qKc_Z>)8Wiz z&*|iwvykl5I-WV!ENOrhjp}^|T-D49mXWNJD4uz}enr%%MENwVwSq|9u6aV=pRE94 zu%?bi6_pOV^Iv#Y{WQ)Pwma1A^Uxq@*UeZEwRX%yJ8d~=szH*9x9T&6uoecZ9_I2K zw0Wf`(XgM}jJTaj)L`wUfVBo;0FD8JC)12s5YVlOFhS@B!JTM`oC}F;jXS-BYQ~GZ zd^-?m^Y&U$jn1gW5@C&ezP=5rl?f!8l(gR<2--hGRgu3{-l?ckW}OZbqAnfzJ zC$z5d@n5iy4p@jikA8Amvbo$Xsq)3>UO9SmR#t5&Lhy!D3nddPvzzPoqcr~gky+dW z`>So?b1Lr~W_IMGv9<35>aFalQL3F$f-vBcH&=d!=@o#M>q2`TPMhIkANN$K_^tJ1 zrb|U(aBEND9#h=dSsQG$K4w&Mo(+1i?!Wo?SWm|gzZ4ldV)C?qN#aGPx#q0ZRJ!r#(7nH>6^RyT6O27odrCGYu)P=0!t@fGxU)KPt} zGy}2*({U5}v7iNdu9@F2r`cFysD%iLWC#fM@8%~E7uqh>ii9;3lu;bBu)TD|8Q{#MX47bv+bgTIDo|TjT@Ff_2By zxR6y=1o5bz6*z=4Wc>m0K^Y>jS<(}Dzyoa4b7g!kCCpd)b9K+EeQ5q#Un!YI}mTMmvSWOvuq&1k*oZe`SkJZPa>UP?rK_LWI=M()?)|t*S~pUd5)(fY431#jA&RrU4`FT@kCsMI?9xf^Xt;XzMdg3m5$>I>`y6 z8S7;%#MtZdUu*SyOwNMfP2VC)t@8b)ZdA2IcC5y5FZUnPrb%tdo)jQAg3tD9A7wSh z;gj#>#hMR)FQx3frIO^I@?_CYQOS(WD${PBVj}@dj+=?Hd<{{j{r*za(%m;aqP|@+0_1oAg9)WVB*xa`_Bg% z6`|LY<TTC01tnBRXYnC!SJV@^32ai;1LQUs!#85x5)ryon9v3bZ7Zj5#}qL}5NsDxWLsiV=-O_zHg+G{QBE!PBpUdd#nF+ISuewk z`xpKW$)*3o;To_O6<@1I{w&N3d{FU9tIV=qNm>ynu2ZpQOeKJmhKe^lJ_`FFl* zM9)}%BE|Q3x8ASO)97A4{)qV?j*NsyWlJ+Hm6?i-XFQUpBlKT#xq<7Y)i~GW@gUFxWgU5B$#!0o^T|+KX&GbsrbRUzmszT-Qdc*& zCbcT9gFyG|&qwYyf-3P`;w1(zY4oQNXxNN@DJNx(+28r}47>Nq2IBbqfx*0T%;h(X z&ShWEcm8tkaH#)-SkL_5paB1qSkL@lxd{JNtp87W{QtXH|DO;0|3Erm{;xw4|5ve| zlY#Aj6YJY-Nyi;S{_qWT_BJ|Jfwyu9&=(S2gX}}sgGns0I&W_)JR=vE+`}%Z37^#d zRCpGsKlwpS$^1()p=~ASJ$9$Db1ym9w`-lrKY2khzMUV>(w(PYIlf=ZMJ%_FmT}$V|1mCamJ-ppVo{XEmhm9W}*Z;9%eOt-$Gv-`sj!XVe`=|HkzSr05 zam)5RK@9)6$;%$B$wjC7>LRxssT18g&U^2epp2>6dVaEHqN}VV5pS=r@T?%@J{O8ZSJ%VRric z>08U8jJKC!OVm>G8&fR$n2SaEeZGJvk4|mVaNt)fceJNR7N3Pyx?0<;+SsAgT#jFU z^L7(&qhP1Y)4tzN`+9o1Kd3%95d?b;;B@MeihL2|5DWWJFG2;+vau5rIdrFf74 zVPI}%jbRTY-mxjgvZki(E$`S61TGD+@SY#_PC6K1lNWnO2u$m1cfYrMXmel^kwV2q zwL6}SpyViB%1DIMo0XviW@h>KHN0~`|6ISAxoITc)|X8w^xpu?=+!u`$! zlQ4z=3dsBekoufmN2^U!R!DkTmOZv@>4~O*1I&r!D$v|y*5D-272J!?L^h9Ij&ymb zw~Niv>oK43?94YP3sAMd3laNB=PHAaZMdBrSd%^laMNbN?12tqS!4c-DdRT%wB@he zsU~ye8^FNyn7) zDg;KqfHL5U7-{Ruk5_)?AKd?LQW8nTL&UOaXI*Zg*9a{lq@W?VZbTA7ViJLwX+v%PSf1h9&yGYjXwB)->!@d8j<4;5duy)-65EOM|>4 zcKxFSzQS@fOblH6w0aLGJ^;Qc2rk518e-rfq)ZvW>mLlIuXH++n{jMm-ihP#yK%dA zLUOXsj2ml<8^K@28)YG4vNjv!gKR|0*0uCTYzJS|eUA7B7N6IA9WdVe@G0LCqv zfE1&<@UsmqxE_35#FKNV;0S}zNidkxAKFu4yjjiSIGHH^TnrC&0X zWb6ox1GcwY(O;x<9+AJK9xcL+C_}X{jXsn3>7H;hjGsj<_|nk8jenLQBLrI$@P~G4K8r^b^dVF6KkdBHB97Zpxy$QcSIe zZDK=`y8RO3LCgNlLfDGajfjh?O7AC7u}24SvhBQDY5S+(s;GoT$@nEqb237aFcF4+ z7iS*mC6c|5AooNI(n9wyE%?eJ=!5nz7B4~Esg;iXc=-b%f(H>bSX2UIDN^aNZs^ht=g8>^VcyHD=5Ia*pr#_RGxLuWH~(*Wzg9P`FXQB!R; zz~wxQ=XoOHy|Z#UP89VY^5ffL9gJ*0Sz znpiXXl;4+s{D`{Lgs<80RkHzLM)#Rb#k_9^Kxa0U!A7Hw>IFjb(lCQV%j)?rX=x%J zE)}$Goq7r?fnP5mk@*rCu4{PJ4dGVdEtO^NEkDhC~9uYtJBE$H)zecd1Aj4_&d(y1Cs z#f|uvLUdU8Kz(Zlxd{BmYWk9^9)!DHL>{8ZTDy&UI*6(DOD;C^F#y$OffO4jrj{B1 z;;KE5Gj8Cw!9xrR+AJ}58bVLow|FdgxX)2j_o}E?C2x41tg$X6OOw#p?W5&XVd|an zh2@KP*o%Pg;Zc=)g_g-pXG2{w7xvBD>tuBZ1W4KyG2rLDa&~m1^v%ahT=0FYa-1J| zI6ZJ+Y>S%kmlkQ9A4CLC<_)?4>6;NI8pG1On`lW%emEi5LL%?R=xLzn&RZbLReY5D zg_NGD>OhpmVVJP#vWsl=n72XD8D4Z(Us)^=3~h8XT=N%kZOxi+ek3{NdFR+-Ih07Sk>=tKO|%qi|aa%^p@ z9IrPR7w&~1eMqkcSg4?u^pi4p{9&^z_8j;HNJYTeS;%uz;4UuobJ^JUBdxUuN@pt* zJv^C+X!o)v&6xxX;(C`%`BRsZsBqa891JJ*fl}Hrsrz_gK5SQ%VSkM6FVz-xqF=9z!vKIw0|`9ryfQtd0@dd>ffyGR6+%9gdmvq=w6?)BO=Bd9 z@#RKp-4?EpF)sE%2N0J#yi>UY>Etw?|59YRQf0-;22YibFDvc0iU-R{ai$RKGwt-{ zX&KtAy`9SbPe)k5ijg|asAln|P%%)g&Bom$FUF0;P zEbFLJuRqmHIXm)+eO|)=vkZYwUvnt~mm`c)Ml_fdZV6Q zA|>)($?pUSs{$rxmC{2AN$ZhXeO8Y}V$6YAw_K-(Dt29(YeB2wxoacI%X{LpJT>sPyMc)rrbjJG4=|Y-0<91c2lN}8Cf?iZ z=!xx9eR+^BL*(6Hioj8JbyOVK1y(_r6@7Jl)U7dN9N_@`oXqGwwl&<8&IVgW^B065 z-C2gW#;JDAJkhgD)-_;~70zLfbj^59?~^oqW1_~)*`X*b3FBTSmJ%unQ}!)xHZ|dy z;1rE~xWs1uI?DFb7$UW4)fzkYl3fq$0ac%;yoo>EWSX2gtNGWhXbLxSH-rjp3e zFDW9MC_{UL!u%;ZVID-RK_B5kC$og>V=4qfBOA%=A)Ic~41Q|@yJwm!IiYg;?pyM6 z`*&+?{`c0YAhs=^t)rbbR0M4Tia9ZJI#rcshy+GYI~2N>+Bz003lkfNMP$2dxpWSc z8CkX_1bw&|^Lu7fK6=Y3p`jrU?X+RBJmTkQUFIB^!KTwyh+3Oa1q>A(zChMwAp||l zEdZ}?#TDU*GmT`dmXqWmca(8wpG94L_SB_CT~md!f)l-{_m_$7Py4V*)3+H66)xU0 zu2tV<9Xc;Af7H~!t-qX++;!|eF;QC?(e;uA!kW+~nuBKLeX}f-bLB(s@68wuyQZMU z)X<^NJ)istMSrz#T;HSo9q^|xnGYNi)KYVFIRV>F?o>PKDHe(bn|FMJefF z>8@^WS!YHxU(XEq05t7a@>%1av-7NlHrBC@;OXBCUTHJ9yX{@PmWEtRRuN=kKP`Be z#Hhu5RUS`Lk8}F1iIZ_u5R4g^$)8_l-+gDZtNF-ggyTNHTh9?Q<78aGPvA&AG!g|U zPlkFfUP^ykg+R&q63LPY7ZczRb9^=lSr|Tt{ft~BQ%0Bn9As6O@sJJPgDl+@OCNK@ zD5|}KhQe~}SD^*R`iyPPXiRQaLL}bIE)SXTER-<@@#s*laO6_6-@sPvk0OzHHQhm^ z;Ea%|NxA!yRF#vV{Nlaa@BL{yw`a)s=$HG&>2mRZj%)voRO|-P3)@sci%D3Xh(Ko> z5AvDf9fSf}vYf`G+!vpO{+gf7ei(ThaljQ=eJEi%YhW093KYuS&XqUu>ud^Z5R%4 zug!R>+L7gXy0qpfA2Qm8gEE(gY(hHLJL^-R_1U{w-n2CZ=8Q=A=zLn)@ykNN`Nsq# zXVhH^XGkFYSngfmRu;UfLlw})Mabuq1T_VVz-9^OoCePS1L~;@Zn8@Z3ma z$`azwjs0jVQGS49U&4SoZ30{IXN&esBq=G3rv^%jcvQBHoHU1;8*k|fxv<>hE98v62n4i`z`{7pm$ zlXnc5W~Qz;v)RI%)auqWQ}ztkm|)ObhlZ&}qvDP-E_da&aCvm?KBGfkrUNrB`$#e6 z>tgrccN&jM>md-nu(v(2Z+B@NTh7@oT3Y4@poaKcg#!=~IdjuWVWz0LwQ96P^n9&( zrw%1Lh3mL7eH^-ogN>~lW;m)jqpmv#dsRfQRS;m~i)ypAIdJ+U zNnY}NmJOD(Qg8~xnElq^!&$B+QT3X^!ddQf`Ebm z_|czxqp<6a27%f9NBwE_^45@Nmh}T0b~~!|=M?M?CB)Ic!)Z)e{~OL2>d53=?g@(W zDn!gf7Fe}LL6;-pFE3eL!0%zc*Uy0d3+Dc6aX)(W`WD(!hTS8lAI^+?z&sXP)2D;m z4V%}>&g#9J>H{Q_pm5FQLf&%55P@_so~SSo>LY+@m)Sy9GsC39*xiNKj0yG)9K1qvx@O(DUf45OtOX8JqI(TNgE#ED~aCG7Duv>R} zc3yY@`gV-1q6$MnVfJW7Z6@EQ@&*T(M!fMmhBg*3@HEnR;|4ft@ySt#gNFyM=8&Eg zP|RVey=F4NnZnUam;UBJ!esJ+D0tKG8k+D3ZOAuUuTl4|6_)HK6&(!F3h-~oa1?~y z2)}ViofhUsv3BVgSl^t1?DP={5g8e=GUuG*|Gq(HL5=K;Khocg%!xZ0n%%Hx;EVQ~Vl>twnffC9q?|lyQ8q|#_ z0JgZXn}q`5r^+Cjux~~SrP*l(s{8=+M@6}*4o!4NVp%?hTcRaYZy7~2wY(x*=8-T< z9h!GM#2wpE9DfETG5)WmkU$q|rOX{1M@_G_Eto1hZq2)+>*UxB!A?yET92KE#B3@( zI1i$vZX^iKZY$-ATV$wrJ=FQ{{MZ5(bZL@$S7d*r^Pe%R7&f|KH;>X1%xaaO*9a(H z<&}(AY<(VhO5D9XH}m--BH$$pHYN+Vg;LQcCUEsR^pczsX+1upQJ!2GIk0JjaN(^1 zfjW4ngxWV)w4DdUmt|6?WzWLq7LmlPY`)lQ46CRMV(zzs^4eATS{&A;1%JZmg0}Yf4=l4zzfHt@RmQMa*GH_ulMcMkeO-7Ty~=2Q|Au zO>htfTKZyeJ-Q=Y2TgJqTfvX;tHZpWFZ61R;lxU`Ekg>AMp-5Ti` z_;KKeD>SKt=J0&pFJz;3juF47A8q>q*?DOYcyu!R9~dHYPdhk|Ur^PVG*ScmXQqPM z9B+&<&qILL{fwqe(;RPcK$IHPLNXa*6zxq%1)Yy84mmje2O+uhqL*hBcb*YRyO;n5 ztz!y4StH}2+KW69-b#t-P5SAdDLjFluQwfPK%j@CszuVG#U5n@=gHZ{s!QiS%cpH` zx(Ofx``NE++A)-n8`$tK?j*Hn#Dw*ePkMm>3nfsSAqeGe|ZMj375A)x@nW=3VhG zH-(cTBKYAILwY|AH_yk9cuR8u!)9ha0c=467_*ZWtw+?vBFGHV6F9wfST72n@v zmp_|=ilAX^Z>tfF)VINk7welpYb1T|=k6b;<9&-~+Y2xm-Aqfe9ZEcwPeBtB_z37L zAGlvqz$C$A3V>U<%cSdTjv@>#Cbsw?%H4|L56>yzfFq;E$^R8G__ucc|B)E{tDxZD zh`~S3=>PAD!9QD({ukr@|C&Ph?}-5m$A2OQKjZxp&i^squWBNN<2wW@MA>vx?YD-h zgITNEdE)&Yl++@x9)2B)Pve*}ccN9qCl4c%xyyTRm%e8A{?3~DkG`UR`UYZrzR&4w zeY_&ryuR*RzTGstyJ5GxzArDgt4}q{OY)NJ+iyO*x93{khc{^9a&qSAzh9o;b+^9u zW&2~#u3M5|#+jRM_YGe^TORh$@pFc^+heM}pB8khyzf`GH{L1~eORi`zxEZ!E!0$I zGtRGH?0xRj&g&~!I`V0Z<~}jsGeRs~TCF}O`=?{RUoYRgyE}b+-tTJ&%d}+vDOBcH zXyQE{!p(dSD*0MJzOwMTww?McPHbxDsQFyX4z{@BeNr9I?e2IOUwboN{K}R5E(CKw zn5^(_U;8>>dMeR1-HNoPw6XadUC3t8_>R8xCwpc)p4BP$`*mLAbJxV19;G?s^)Q)z zfpg!aD|*UNKkvp!fzTx}0+@6(z& z`e##Fj2WUMS%>sToQzeH0YQ~RRJmQ>b9LQL6{V0T{JppXRgEl)G(# z*QKYPwP0(5t^&qyFH(z)5+s~ARMf&(UzG}NBhsn(62hJ@HQWTqgA8JN?&lGHN-|CF zMKn5DmL%JLFX9)%X$uF7m^u!<3dm(w`u6g*GfNiWY3v{+|rd^m=C{;pd0+>aU#c9kN2*vNq zxJtQBh>SiMJVg3nng zJ0Sx|aZ{ZdYWsH3+w{C2*og57loac=lPEp{02P&H6R*+Q%t$*|_CVeU19-NW_=Bh- zGkcW0 z^i%uJbeBGZeN`Zl<7x?$Vn106_GJw@ImK{xP-aM)!YTC$!`iw|=|wd@Vp2p^(2-0x zW(M0|dxesMeFg;v_R}6gH_Iv(STfzGK^ZBBGG^e7AEZ|fP2>|`Fh<4n*#NcaE>QcH z`}di}x?++$GvPzw+R6pM`1X*DQ<~8*H#?+=9uHo*Wz4|hq{H8OpADXGSXztUf5G=al+h<3#pZrxOIIl^RQeE-v^%wE|}XxB$td0oW{D797GtFs31tpp2m>`It62)>>i64`jI>Di0ERttw9= z!i?B$R06OMkH3p1wDhdk#H(AgOXFwX#>)cG&{ z^k!X@AwamJuVf+Y8C^>&FJr|P#qyvDtR&^gr!O|}`>yWf1Xq_S8}npq)A&#cwS@{nebrh9?Qg+6V4FShhRJl*P{uJ7m&;aW}G2#anz*Pb7X_T1Q^NfeR?FLj&_X z?jaQz7wgT12~Q&uP|z}g?ZFjmd{31UW$al}QsfR*bIw8U$FQ5hM{sz6c7k3F#S*G- zp52ka{+;`W6%;#E54!gI%On$~ciW(3iX7O0UHA|8eL%4uG2f`u`GeKsa#)%%&mlZV zLrPMnDJoOq1cb(4_*R;s=^m?xBU56&?1mBtgk5V3E+!c!ay$Ge-3U>r(snk`d=^fK zD_b2Ddx8ZiW~R4EWo20i-S9orH4yRvK@{Q7SgAGfGcVGMOyIDc!nW~FZ#`ClcOofy z8{LbvtgEz&H8mrCwOUhnkFrhaSxxZ{|9wNf>`>rXbSMEkzGxUq_U!CBO9IgyLqIkd z8stmD#*ValZ^EFY_3rt}$dAZp1(?orkDkqMK92xV<97!sL@Z8CkwPTnGEz|bm9U-m zkk8XlqvrB15SlFMUiiodEYNH-kl!4WV`S2brYF_;4E3q>+#^>sU}NcM9dd8V(ul@Q z6Q#uw?Lipv#<_Tes~FRlVe?anA1?y4a_i=!`0-X`a?09r!0|n}$c&EL0qS<&O9gqt zv7DcLlQ0@0P$EtYfJQTc-C);UBjf|~;m7OqpsKJzxIYPpR%pWdK_Ot8`bERvs&5nn zT}ANh8J?E%9EM!R*YI zRxdae0f+Jv%K#HtNk2X3q4e&t5y-j4P{AO#=c>Ku=A2$6qVPGO-85kPLCOSH@G$Jz zhelfvq>zDgoOSySp`d(86$wV9zb}$e746$UH4*{nBz$uT&t?W$R#9%oKPR)xL4NgQ z)U~4z5-^)9n+xpL3s@I%7RR=vtdQ4VnE3yUh$o;ko+!vPZGDaBJkhC5DGpGyAUb4b zL&h*qh6dKt=`eUPfE5h_zDN1Df*sC#slbo(5BmqSxuWWUh;FI+J`JkJp$f_m_7=6r zZl4|^Kx}lVI4l;BpXun+cfP?<>l!&P>2n;$0No!VH$*kEPk1OcMQ2}8x6Nk!LERyU zvB@V0{y48jLq#!WNrGe-bAe%LKaOepj0ozf$J<|`+K9gWMl?BRE(knb+X@>gKn+x7E_#Q||Y=TRXB8p>-xgIEke zqapZsG$x{MQG6@Sf0Md3Ng|fP`V3S1hW?Ipz}&CgN6rO$P~SjK11`RlF;w~DJ_#=J zvd~ip_6Wg~SjE72BkWmn@w!9Vn$3nOY&@+$or3QY$`pRCORwj+q6sdj%h>daZRDNj z-?`2`RgY|WRDGlg$K-*3OI_8J@@{a)YxNQDXMDzV?^X+31VIGr!mO6HzELz%0A}F= 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Ün9`|r&;&H+ha++m@_}>9 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�>=~mFb0B$ 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

    xo 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ⅆ4_*pJ5ATG8er)B|gbXGY6$ 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%0AI8F;PWlvQN$R4T6zq(ElI@C2BFB*U>0LI;>qZm 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

    xmCAG{*B1u zPPap;9@0OIJ_dA=0*YpshtiBZVK;+#a#*TKGo1WnA^*`oxHVO9(u&nC4k0dEtZfN! zyKQgZU$tn3D6UbU%{58GJ|ZFWc2uUDBNOoRpe*}hV0X}E1;WW|zcLRE{={dXI097y)+!Z$1M?9LsKg9oj` zQla4Nqw#v=;-C+93knEc!K2kpl7T>$Z3fNLuwlBg)kK*>G6yJ%)8(_SCZCv3;GmW_ zL<&wX6c7veAY+nn!niPG7{p*J!U61pqbd7?LpI#yvT;A~=B+c>O70Ah{pY*FO)BT{qyh?_%&p24&Dn;fcOXn;Q1MxI zhvx-7M9d`6-o~tcrEsoq*s9(t=dmnRmT^Yx5S3}LFLoO zdUs&~;o3I%ZNh@=#Ugk%`s#>)LP<7qt#)E**)apVfF-v=cq{nN@BQM(XMIFf_Kd`* z`+U!aOjypKZXt3Z-NyTVbvEE~@*>@fZZ<&cyc}NmA;IRGQb}}Nz^Hx zj1VMD4!;G_jC~;^(i+(KVgV3Rkl4z*s{+A#IzvdyBlKerI&v4=5DRqWoi_0iGn17Z z7eVMLP2IB_*27jU=q7;9JO&Z=;)V3X5+#L4$tq$(-BK;>Dz70v>^gV+Di=BV6MH^B zjAXaOx_N2EPuT)s)TgnuNpaRENd7xmD>1jK&lSTwa{DUw#m#9NJWmEcw4pl-y#(En z0x+!1Gu=Ulc`Oi!Do2XqyOWv86T;D)Zp+}X*%CYU(|tK&@aFASD8!5Xxx}Kyth?58 z=03S(%BMdVL7w{SZcCmRDGrMX}l=gq_m0VcU3U z=Hj7SK{UI5(v8e|*#R#&O5LxU2sW%KGhm?1nOsyTuC@v@_<8L=tPP?m?O+xSY=skR z!c_yR3x7#8u#sl{eoAQxc??!RkMJ7YfBGtx`qP(PUPmtcAkorih`r^xiVc;NLPlZo zWTBFqb47k$n&`^&hKQ;7eGKPH9ua_lvbamiefCpDXN?w!Y%EvgO`B8AP0E)Ci;S4C znOSLAKk{YZDb3x6>VLnu0%>s$QouYcX-knUm{pHkmsi>>Q(D|Bz}BlRIu_z8|fIs6H zt$+E&?h*M;_&%%blZ9jY>*?TayfUEZpg&{WC!3Yo_J)x~NSCeB!r=61zB*u`BvUfO zG}$fV1a8RZMi#)q%nPOJts$}EZ~Y!z<(>_JmAnZ6-@#}jq=;KNSb6int)xcI;e-Vi zUQ%(18Potd<2bI#?p`ETkv(#s&)F-O&Nx;EJTV!;R$2qbW$`pQD$jaMx#SrhSXWi!yA1Gb=yl*$d-I2}C$;dsF~a*0L~Ubu8K#Z_ z?8xW^X8A#ugCP{nTtz!A6App{35h?(a$6Uu0fKoY-RjYeHZxm3C?w@q#>%4HzyjrX+CP&ok13=g%SR z2zO!R+H^DZ`^TlO8sGXS`voZDd5qf_;4TbFF;RBbly7R&yA5U!szCWP(X2G94K52#xE!iH3+p1;1<jp&9i#5PjR%vffwxV< zA#*{7acA&?2YMdqI4&!EI!WC+_&9%7yG~iKUt7<7M@RY%pCX~Z{Qf|(7mqz3?RS1=FJwJsL%0ch#J*9g>K2T8VnL;9Y0A$N6(Gox< zeEyIUS)?|xww0ZhZPdxcsKc(-%~gy!4D=zQz-iE(Wm#|CR#z4Kx(?wy4#IdH{m!{m zUp@3Fno?$g&?(wyaF5BHFCEOcDKS1btS1nYLrCVStiYrU9q6*oPlD{_qV*j(Ad&^Z zw?_O56j9fLyDUdbdCsMeQ+-;1HU%?5-N+7@0>lpIRBAL-rI%=9qy)R#QaeFm<`M3W zv$`*~QZ5_K__N2}=38KNxZVB128}W$@Lw^He`=oW3@xF! zxuNJp|3~KW?|zH_U>^TahW~x$@vly*|CxEP{ClwEzhxebENuUg*!Y*RLfkdv`4Qz2 zh?L2;6CfB&oYIM*1JKgU-K1A{^6&i@w3N*s&D*SlVYFf;&|@ml2t)ck?Jp;MStaah zKfTcTpQJ2Y>iM@Nm3W`1R8efYG+?(}%MCP(S>^43VB-LAyRt!eS=NVWYZim}c8 zsP+@au-P2`*rIc~z~AT*)_D`LQ&+vBE&1we^DFT@wd?*=@0qx2dHb{w>Or`WyF?Et z=#@)hvh9A5yLztZe#HJ`f4|gY?8nI7vfkc4{h3&UFCh>MeF{I7qx@bV{z<6^-{lwX z8+cRrfkx3n%qG8W$QF8e4hhq!`DWCWp!KYnJG9}X-v9JC-ih?5&g?3jY1)8r(~Mrh zkJ$v8hD`XT_4WJqad^AC^Yi8Ic^c86E%T_JX8c7d==Z7Z$A-jSiC@#zoSMy zTz4`WpkkXDtM3N{0r}xgF!A=#Q4yfW6YDdPHUO=%}CySpUJV#YBHoXg+P6T#cAsU5kLs@|g zp6mU~@q_{H(ceWbVbkF70$>G-+S&x!kpb^Z>ejuiZ%2u&B};z%7gBB~TXuf6%u4(Y zMCoe7VEkQHwKsTvp3KCo9mZWC%p}LM71R|gzY{?e!^*qLLA9sI{`Nu+e8$;xrvaZA zZRc@gJtIGNtV7^HlfX+r-$}ARa6qhGk=Car-F!64xHzq~S^~6w9hHOGG))#^%CU{C zo=|hVRclCiD5ImSAoIyUQSH+rde{Fb%ERa-W6EXGI3W_Vorl2axTUyG`{XgAeARXQ z3I0^dsPOR!t;7M#VXt6vI?E%9-e2cKv0r=D?#bP&TQ&UhKiQdFA>45fqsO7{5-%Ux z0hmB{Gg6&*v~c*oH}%5rJXySv(hWF#X>GIfjEQ1okE5E(&PcCa$;-Fh(KnFk$oOs} zqJcmBlYGAI%tk_|97%N)D3+r?Vmv7R9WVp9kq#SCorZO=Ds3t9+x#T)Z(ILz7(M9X z&cS=)VycIdfM99c+Niv{F9A-74suRNAy*OsOs>ui$;)wt;AkKK#3KffcqgW+vgg^( z&Q<{7D`Stm?6?I*?3D1!Y{mN4?6Zv|lg)3Y5IAE9t``3qgLfBrO&NK4@ZN&EzngTA z%s*{aYnz3^IOz)x!pWD59_0cz&Y?`}cn;u+bri1@84Tj8{1T0y%(*fONpxYBb@a8lVg=^#;Bug{n6+D?|212_p#KQlk}R4lt_Q}wB)^F*^X31BoLI$Wd^6LB8rEC zS7x+Rf*lPVo=X`@_NU>nS}4C4E-}qz3FtF;QqW;V5^Iv z05avng%IXA_sJV9>;V3NEz2=cPV04pl)+K$j`Cjh=9WjY8!#EegV|Kjg6OhGfC)F7 zOH>#8B$zojF5)l(_E0zmKm-;58x~twM^Ho-KUzNFsE)Q$MR~R#?AHOQAmnjx!T9;U zt1NA0%CQ;QwV46-mJ^YHZ2=bVFBZpxfjs%hS&APZ{_(GMR{T~Rfq|CGj$Vz|SvUi{h7Oib%HavmUxABTy+sPbka8Cp zNxC{RTnC3i>pXc>qx>@AJC&xg>+Px(0LMe4-=7T-h?41)ClRD zDPF=GkcKr!OfH0Eeg;FcN-trzCF?O96bO8-9Rp9Q`=;{n9PV#t$XQuLRJkuz zCWwg&mCwf;0B?I#KGSj92(^R|NaTb%pusQ*?5!lf$hBNq5W-Nz9v-~el#`=f6BFv9 z=J^CWtvcj$Z^ziBo;Zc2o*2Jnf9R;YbtPe^5%N2&L^|X7&)*E-pA#D`Dx}~941K$m zFTomlN&t25ALFTpaIIgrq(=bAxzeo@pSYzB74rVIM|*ZGkxk|t+NFlNFc3IFRhkbG z&tBU;9!igZ!_&~0`3zYpY0}MxMR4+16AX>cVi09kKoM`_aZs*foVaQQ2ruyPc^E;p@^Y-ZLPk5 z>0GN%Bk1M;Qbq*BSYKE$tsKZ&ejts}4jt>UbU$>-&4(MO+s*#~CT$KO~WdPF+RR{d-q7C9$*+;#>GbTlR)azK!H`0?I`g*ZTa+%~P zFDK+SS%`Cb+VKF<8Pn{SVW z0Tgwj3&dO~@=Qr45WePAql17Gx$7Uu&XN(}QA1o47&;GfG3hLs3pRPjJ>pn%X3K8Q z#a~ysyDR^T8*71Pb{|L*Ou-p?c8l!c+k_2=d~vBz)@B_wfY&6&l~3a*w1JpxSjG^x zUO0orE`Sj{w3|z1mJN%%w`<)_Uey3UZrmHwXcNp|%5s*g8QZ$i_x zjk$ImUaz}}FNS%Ajh@5c)YRzOA7G~Rwy$#Mnp_6)k~Sz z;Xt9QFz_f|gu7Vs#Q<6F4Mdx`RP7*-le9^rJxaHl4QucfOndv?t!%tCy0CQ%wq#T1OZk-P~NxpNkwOt9R% zk|3;vcotvZ&fJ6;hl@c3&nqv|0$DbFRB89gKpugs8Q&%>O?el&vMo%s0Qd~WRWD~S z*S@Sx<8cohRcx};eV)W`mppjAf_Mn2RRGxY-or*pUBe2+R`mjkvgB!LaOT&RT~$Bk zm?2{U;9V%MG@RY^&AX6|2H!6{?44jmV#|l0umybTA;$a5Hr~26#_0_SOFa%&?<>lx zLn#RTH3E|!-B~K6NS_o}%)X91V?Vs&(yx?c%iEP{EvH^FFp%`ih5||WO}C;eQX@TG? zJ73oIUxz1y1IfzPjzM5TXNi7Hsnd?N zm97*S#CiceCVKQr9j&K~RMP@|%`1Qz){Sy+4+oW&h4lt2tEqg2V#A7SK4~K7LBuGg zEO(exi%|ES=?D7ZeXCRPo5ZwG_mHS`0>#h+BZP)an;+F))9NMDJGsOTtW4n&F5p5= zjgxLS59T#QrlCD$B_*AeI7hn7Z=ly)Gxao%Wfn6Vh6i3|;MRrLCtTy2$x zWt<8yL-qKLhsb_{g@;#LZ0P%(wKUG{6jTG{wt)8ljRW<#QLgUCvk>SW(1xa{HIllc z$g+s!h49xOAW=3~BLJXXaamHFNfp9b>$=Cr*AGg}v#CdVbC^w+*6mRivgKs6O%Xb< zfTuGG(Rl%tOA`(yU7r<%E(fLa+3_gUlnC~be6SbBNU&2&l>s1%?O?{F!)qu>J~MCC zUN@`GkKk3;An-$5ZUn|kj>9}%AwG#udgt&@%J*D3upcQbJ@3YdswMN+ftpuY)QY9O zA0bKWcs$D%@L*DFpo80?@SK-CzBpS+l6!q?_1>a_)>O+pXP7|VIt5)0G(EA-8Amxnr$LPE#5sQ3#31*3%6ngrld>)R8o z5_mx52RAcLzEmyeZ3#N?kkM2U9POq{zjEKFmAca~9U)z3YtNtc^$^-q^;GRSWSNeL z7+bkPV^H}=5`qI2p0+X#cb@t&E-;KBLk?@L=GCs1Wy0L#ODlcUdV8V(ZQA)X#O@XX z>+SFtrnu_{FQ(39@VWhU$@(#15ZlffVu09a13s~FCpKFaxAgrJxN1)myHdW6dJb9C z&|CI0%JS(eMeheWBDTntcc2P6+fbw^QU2-jKwKOyJ_%hFqwHL)t*|~( zUXFj09**$fBwzzngaKiMYQ_R>VmBAQky?_3gmQp4VoI@s6Gz?|7Jt?GO~J&>tVA1R z@`N15tM+5y9)2RC3H@*cK3_GnlTE*z5p3O@f+JfU-}tL^^e~}*VX@UvZt_T&oNFV3 zAXL)Sa5KIcm^dm%mfu-XwbI#!I9~|HBE@3DtsKHC;*CcnX(psO*ny|Y(y(%6e7B=~ z5=Phh)A3b_v$CLCxt59rCiX}n_f$94V5#2iXnoJ)yf$2!R1VxWcfxMKD1vUNqM~rc z5$13bbhST@g(b(5<9luPGi&MHtEkDJX*gS!>D)yz7MyWv-O6I6UV<8oxi!=3o}dXg zj-uki?>|wx;Ce0XSf)9p0Y7%u6s%rR-syv8_Tbj%jm98T$w9qFW@DNZb3OLqz)agL z1v|Mc5Qlc;j^^nmEmaSjHSKRixMnU2=1?sgF}b#s_sXp8Mo*H1EP%>@IYv|z+s^lZ zCH6{2k$>`VeTLjdfXio}zoS6Jfx!cb)bq}MnNE#A!q(nFrUdZ%QQ>ag?t8n`vKwo? zlNvFP7%f+T4;1Xuaa}}hRf~pSV|hvAr6Q?qA$1aaRa@DBd(+HL?~Zrfv}XO%twkc|vcb$yiyD&;Lza|pa}S3> z$oZ^=yFBAA<_X+LvHyZ&*GE#d@QbX!kz0&2SbML-i2RfwEO3V_zSFsGXi%exNWQeDyA~U?>XY6 zPViQm1mc{Wct04(Nztx8Bfbx!OwMEHc8`J*2fCBgh4X`ccKES=ee3xXD5iYj1BQLx zm3VIK8G+|p!*Qr!pizR&K8)T~WCZ!?9TOqZ1()#k1QSKe5JLpG#IR1|+Rr0+{q8e5J_ACqOooF@Y z=LZNhnBgexY)hY`;7lgHo7wY!MS~alwVpE3IJLZh*$PW6%N(9aeiOKLn0W5iflGN; z>z(v*P_*-c1A+;b?BKd8*kGad)-^+tEtLX*vH}G(0w9vieDgjJ0PnMX|d%G6N`KVKHmsuq)EkaZ`^AUe)& zIEyAO>6s=*k5f*w0XoqY!Lod8+v7A-O2j7LGb|AH19)-L&w|W&&lnfHyF#Ue`Z(D^ zX)pMADOh8Y!@AUH_aA>PP+lOEYgPX~$B3IHOt_`iqZx$<-mTH|LlD~YRk#5Aqk zL|$i7Yx@;(L$ZSiMJ+1G|{O5Vtxc7E337f)G^-n60;V|B4Xj_xB@bv$$>eZ%^8$` zxTg~dbw_s9YxVgp83Ys~z+4(s7nF12CQRgZOFHcO3yOrcHJH1xq)m(p+4E6n>) zfqG^NF7BqW#YraLiC7eOs+!{hAxKLsV&Do@l@8?*9=sbE`X3k(RT;^8XLrx$b<@Z} z8Di!2Bjf-2ASRRFW4ug6RKC!jbXk%l8y>`Z-Z+3a_NYgik`*E~8Bbp-KjxZ#J@Gz= zLew0i3=~53;`--ZW$klU=gsrfuQsK#8puLd*q{j^F6J4-iU@3`ScKY*eV`ATOMKqT z@R(Sr5|wgxg=one>81O;qC0jxVI%*XnJezgbPZO#r|Bex>~+FW@-x$v71dl=>t6#* z&l^siE^?VJ3a$gu)LU1%YMZPb$tJ}HqJl5u`<~6GY=!~jeu52pNkSF>mA-@JKTH?@ z6Odu~ciG3k1DSszkpFcc^RLDJU+6nn{yi)6-vSwWCWik2GMiZ)F~nMqBA;&&U%!j* zI`06rwf&6~{{Iw;`PVkWIh4+1LqOY|qv&A3PYOliXy14s26vhXr+7+_ zKz#qYh3o&J?H$`IjoL2V*iI^TRcza?pkmv$?WAJcPFApD+ZEfkZS6eo-XGrXqmSoJ+ma{1N$^f>*R#Fm6BiiF0qb^g83C%bt02 z`6E`#ui?6kAF|5_L85(1!Y5+X&wG((uL~_WPwm6AwDarnVpwmJUSRX{l?x?h%z%EZ zE=qs|!P60J!Yo-+P_%pPVDhchX**VPTT<36mW6Z9muDRE7H z*US5=fBYUFY68TSsTpv1ab6BpmKSHJvFQ^~ zaeEJ?lkiv=m9AsqLo8U8zED9YHOgKebc|ci?1B++c!TwC-t4mepe;MU89FDb5y&+$ z7c$rJu;}HL#`Zs<^BQR}IG7xXZ__VFjGraweHGUb-ofD`W zB9kJqz>``||LN{`t%4TA8mfE9rw~J4fWhQ%9gsoU#H#D#+^pSok3uoCCL?S9w?RA&Sd7q&+Qu^ggqZK=j3=bGbPb7Wa{uX`4`o-wUJg#hw+!Xgn=`d1G|24 z?JRKl5v;1L@SBAq2=rrtmOh)H7_reeeKl$?zY$L%TOj2He{wSrlM`5II`u^%!RW>vJ{LZkNL(Fg9#;Ml;g1MoD~R+`-f_-KY@HgU>Ia@>J=wIqfgcE;9dxZ1`C0TyhI&1Q8rm|BS@t+nc@H3YR zWC+D5^~^q=Ernbe4cZTqTdNqXbq?45mwOB667s#@-ZP^S3AW8B<)%C%Lzb5k`)Ytk zf>b@I^V+DA#NG|rtG>HZ9awO;kQDuyJoy7Lc93wjFC$NK4Phlg>!Wy0`%gw$JoYQunO zW(~`~3OonORt7~o%PJu|5khK)`mQ(83G%H+G`kasFP3`tp<6bn z{cf&EQTc8;fk$78EiyXhtX2ofLwT3v7KTw{8JM33V=U)XTu1o&Ei+*I6B;jH?w`eu zM3Z_Gr2rHWRnCpSEz5$VGUkx{#WOPuO|xIANxH!7Fl`X8WlJw$N7x)+N|)}RiHp6-nB+ zJ1Cm4=vsSXzW`(DpP_jE#Y4g0K@&JBK*mWkdgM*PRBw*+R#(~{(!9heF$x2l4umLj z8;kiaU)ui1W^-*>XZ~Lux@l0`Zw+OeEL$8=U@!3GzPZrxp(y{N$2C+?DpWR>9kQ0A za8x``9Tes|iHs5u;aF~3tx>{J29cb)kem7+RR{sA0Ie;_)N}pH`<5^pL~Q|Q4PVA! z2tP;iA7Y7(zim_0ti$?IFmr4EVOhw4p3dkX!eNYcMM)<&`sm?c!u!Nd9L!kS9EJ9b z3j<4iHc(+K3F(M_wvBcTmvb)MK30?7>2MCPa zLiRoWvlLt1ggaG`QEHyplN+Liwz6#9rlh2{MQDOfl7^qmu{QWC>_lM5L93&^baQU} zK~kbHC$)%rcosoHg-7u{rD}9p&qJtvo!m`@0TQ!rO$6z>EYwZD5%s-Z z!S~6bh}5|GIYw0MT#5pRMwrro8)Kc2GihiGVim%I)$mp()v%v^YaKX)>uu<{7y}LT z4W3a_!KvVu53@xx%9Ai!t4!2KCT}>e8D|GV|rL?fC5=AVn*$o zifHzY1p(pU06ZXi67H9*6#a*@It)}1n^ixj_(B=JG_%~$8KB8%Z_FC{C#s-h=k@Q< zezKUmpMcyx;{kn6Wm9b8bP~g970m!_zw!@wohz?zWT*=lwTQ&WP#eGqf1W~BBbKRq9n4%zLO@BGEi0 zJ;b=hNO2HXC|(0d#?fJD-r|xc6&0G(mSLYzo3TO8OR*Q0$Olw?jh5w&nL@|hiiPqO z>Gn&m;r~n#$X7c-FKUS@JwFi9!wO7*`Bx~Jm)dF%NYM4#%2D+vc99cK8$PUFE@YU& zk>RzT@}&e!Q-jxi1-kDVHw<#T`M53uzB&Vz->U@rEA(NBBs`p*?Vp+H(m><#CX@x@?#k$ zxfmXvxL|6}W5h-2lvwapLt7kjVT_c8G+Nr3*`nPEM`WlhYjDDLw)#V7b#(;id!WgJ zkbu|3vL0JP72<>Zk(=EKc#w@yG3OIY%DSenFslG$sVhVkaPx3A=|ND9@%T zwU;!2iZShS4cHQyZ)D#5m&HjG;0mYPFvdR+fTaaiO^NJOykC`9^F=X*H>x{3w)V`(mSSI8gTL}xPE4Vj-^rJ%#yX808 zFC5?x+Yi8`rOZb%XbED z3%wwQB=AF8(fJV0%lUj3)gMRl-blKMTdk8JxT)*`yF@bMjMtxfF~J(yei|~QtX}wdIscrx zv{P=6FX0eAU1k-Cf>1o}w<+0>v<;mgb`FFco-sXov3IG6CqN>|k!hEb7yrSac@*9r zNE7Z-JA7X;G-wjo2#9R6qpBo7kPh|_@}|G6F)3`3G4ukJw_ykZKGwQye&=wqW+`@; z08B53J_7i3yy<7M`W8)H?%|%w0CjJC?<_Rq)V5H&Eh0WD+3RRBb@Oq&zX8z(Yc8&9 zlQ}7ABd7dR;+h)InuyyOvG8{lZkXu&jgJk=YT!3*iIrXikT|VOWF3jS1j*K&R#Tj{ zAd)GJSk=T}P=}sVr>q_$^_F2^o#hD$tqOR%v2_9$m7>=~&aB5C~|;jnDM|0%FdpgS6HG$_Y34l5g1H9H|%;zO#gz`oGXQOQsQeuu_9hL zTX8;hR$|>!w{-*}qMP_fA#SB`h>T{>TR<|65Mr2eTL2IC#L0Nj*(S+_dhM1#SCQ+0 zVD81Z+X~Gq6km1aLf_&M8^Jq<(k}qofRR*~W6=D|QVO_PU(%}G02iPSbIw{*DLu#t z*~=CcisO?XYH{OpI>(3kZj#BVo_pGcNhi;ZMPN@*fKs|QAzaAd_~I79LXHH5b~Ac7 zucajtiaAjY*4WLEtsSi|XOI?0%Wb!0E_*hszxZ-y-VNhAp*x#>7R)>;bvs2m}m0ay2#a=~2puE6dl;04h4N;6|Wz4`y(a=H%?iN`Hn^f$g`c`kycpW3x_(sHx{Y1YJob|pF`y6&FJWj5d>S23{gp!=OePsyX^rd*F%|?e5S7m!cNBb|#5L=twVI8~0 zc*#9169*v1tP62T-p@hy)v@zHeRqFFT}~^Y6tbLq0HQ!CQ!L-m61M?e>AO-bDtomE zJ*-epZDE?@M-eVcMP7AaU2BTinx#Ia78FoW1O3s3jU7dUjNrGdZw(Si~b=w6rh01Ao92(EV8JQ2V zz_a_6zuwVoG8yyq0Ohgg7LIUHMK*A%46xa^;9OxmM*wT(%5fr@vDNu^rj_ip=+Iuz zAFg(i&Q^rxaX(~M>pP_+RYa62yV$}(O#J8gPYhm3K=>%wn{N#p22}WcU6=udRt;H2 zQiM@Bl^ac-hn;GK9Byt&V(xtF=ql_=$8Wb%P-|sCT096__6*lACZ~!L9Rp7@hUF3`*uIh<+@h79p+?J>v)>wED}#C|(Sy2S zBIj+pa8j&70UWpKNBN?Jb)FT1 z#wUu9?e8w6HlG_Gw4sJZz3ND*2`@C5+I$$>?vo|N$IQb6U{NNK%BLID+l7pepCwQ) z?T^vx*SyWg7xuZEB7M&?T?gY9Wh_fX-PYq6Z>fj*@)=c#^SxVKfUQEzAy<6H3j`-O zqgX#RiS4=$4Es`8n%V|7-<7g@F7_pA_S#yQDN@+g-~taiC%Pr;BcUtI?1jS0U7ICu zJRhpTxYrY^#7+qkrfLO$1YhW+tbs-yyW)D6q>vML$M8Xk!_T83g9ItJh*CYEk^yI? z^&B*kjpL&s+Yd>|3C*VUnBN%QrN%>9M}pmuAIt4f_)@PJ>og>f;4n1e4e|Mic9sXK zxoUp&=YF7M$ zL{^VD=STB9CTp3qsDJC3m$R{uo3hb0XC7j**MFOvRy$wBs7C9KSe%b; zLx+G@)Ozp0ixc9fT}ow%gQ;43E#h%A)5gRC6dpqt6pCEZ>Z2Q%rcMP$ogR(eyfM&ioOiPelBHi*o1RqqZWE``=vCATV7ly~2Xkayb} z{y0+GB8GoCKG^#+K2X32>Abam*YIEIOa&sKY#MB=o0xa#XJvnJ?WkmQrDmPCRu458 z6rr#K&mqy zar8@E^fmQgX~A-fKJc(`Y+}E>B%}`2em@}1ue#v#!$

    aZxB*sj~sreOmm6AW-U(BHx98u%w+paaT8X7 zhrsu3X|77WjQh}kLL3E3~AUUtG`$AN$<^5mcivK~5@qfe>|J@JrKj4c00D}MfxZ=N>x&D9TNB(=v<$s4O z*tj^j{wG{97PGhRB7XFM@c~wKz3vVg1tnU}Ix;Re6&MBf>nHO06OsA@Ue%(8miBo> zyYgQvWiY9eYwfO&i#PkURr`-OX8h3nuOq7tcDk40?yrZ`)b6fs2Z3geJtJM30PqS*Qu(i@})%fSfXKL!#^Bm*+`^EpO`_L6=y1lS^ zb$EMl;__?%TAtk4Xmn9KtM%htxOBv64|8ag{rFzoJ~9#*S9;!g%VertM5cK{PVFVM z^==_D^}Vi+RwCb*W zu2vHGnd+Ms*(r+m>Qc!K4oSoEq*hy71Afv4@3hrzXv+=ma-vtUwOsyi$6`Qb|Fqsc zSin>En0jXQg<1GVsC!(!eBQ1*SdX5raw0bD>u&7H&(GuI^Y$n<0H}@hU!o9DgW}xJ z2K`!~tfhd2^z!(I*+!n)_4(oPNX_NY!WFm-aSq+bIY+LKJ_WlhX~~mY>OEo}#P-GF z3s^XG-vb`w#Lg*CjKY^ace#D<;&96>l6#B+^n?DikIZXKp;Tgm14Jgl=lqn96r91b z?L#FGj28s5$fN(S4k?*&`hCDTahKSI5F8jO;-CKH|KO4cnuAc9QhQ$$WKjOG{khnM z6E4Y2F#D|<>*A#IlJ?xGHe7~0NxGhYz5=_aDt(XWU^5F_8*=+@u8iS+>Tn3bdEYL} z-FRLjlPnb(Awn3+Vim|f%QBG^Zd_K@EJ^&&)kwnYN#eV21>9PV9r1WYR@f_cf1BFhoyebDkuR(SCETXJ(#c}~y{+^EMS43UM??QW>rL{x|26qrJkxGw0qQuLNf}VQf zFEG!{@ft!1U@W&L>{ybc{@qrF5tULSR)}5)8|G8YMcs=1KpO{%QRvkY^q!CWU|w;< z4QfaUQ%jbq(xdv_`t#3^dmg#RZv`tDq%NYQrNF<2Abd|>sSu!x1xB^Fj75h3Y(~i+ zLk5b4v1Tvj=d@c`M?JvqOO9qWQxVPvyg$)8Qlz&B^ zYL1p{8^UQm%F4^|$nn2iSQs;>dZrzn`CX7RkvG>R0W+^Sj2YPPxCB}D-8gzzVo-l+ zSWq)z^yN^JtbQX01XhcF8JRuKG>92}g#}(fZs2ZlSW8_-4<$FPp!zj&Rnw`5ON93! zBNzCSS5evGZ}ymMewvxmVr?;VM){{LKJEFmex*d&27&47fY>Ls4JD<%_YqF)z?~At z=?e%@yzVwUiY_mp${)f)uyC-EenKTPA9zjQ0!2981s(cF%y*MC=1aZXAQEeQQ3vh*np2GO3U5<)k-0Ewd-sUm5H+hb5WH{+1NoCb z;thn>fAmu(d~OWR`anY!iMPJaT=4(R#f)Yl+f{5U`b{xebl;>kY`Mv-b`LP!1n8Ic z1EHpb99?2Q;}l@=mAxIAI|cnf)l!=MbQhSvBV8!HeIDAHzDRv)3=a;ew z#D;=L4Nte$&E;Gs`G-!Iw!Bpuqxqk%)YrOK-P{P);XsrEj zbi2JrK-$@7<`BR}e>hLDmm7O4MxR^aMzkJWPM2jt){aJ@)jPU}5{F;C=a17l+WI9e zq<&|WcE8tK;emRwAW=tS(jQKuQy-(#@f7(P#D!KMj~xmIttN&PSgQ6VD zbGwCVa-c#>y@CQaQc7Nc4Fl3o7PI91UpS|CaHy7%f6q?sM+7hG4XF6sFz5kPUaZXs zmmB!X%nA_xUy!l39NDEkx6s8m{p^FCl;Mfp+REN>5dciN*DN(9uywhixEasY89a|* z5FW?S+XBjg^_CF%F@pPFQMhvkxLdwA;`PEZ5i_)=#Mylq0R{fr8T@E>WtYQj<*56H zj@6#?qEQ=1z_!L&nYzkqxgpj=$)ZcMJT4{N3wLnSXG|BxG`Y4)P7Zumdo@=zzV(Jx zPV+}!6kjH5W-?Pq#wlo9(*c7yZD0j`nG{CvXa+dG?H&O*<-buzxa;9}<Pu`N?n2NgaI&76k3MX8(M+(pM_ z4Alm4VlOJM%^rN9^Rcs{_Mo>bM{eNj#8(o^*|0@(4wBuN!pY^RF9 z_zbuff1+L+!x)XPV_Qq*DlPD$Ke1pG47kUEBkdNAm9hK<$6{s!8kRAda~Na(xC?_@h=_{YnS5!;-W%k zuF$|V$J6AKLuPJDS$d-K&gG!palTJkQV5)pZrt9&+Q^LYJnr5C@v#aizG&RVxpOtP zW)aV^mv%DyB$OZn0QhB&Q6qc&6wf?{SW4WKgX(CC%Z6JN2jgXXCSy4c_M_=)FTgW0 z^Og9RJlF(0DVWTDvU)BT5uxJfx>$Z*dXb6T1OB>XG`ZW_tG+cdu&62hQ~aQ&+|8Dv zZ+xSZO_`S!HllbNDe&)|%7+=JDBEHS>Wa@FWC83xOR!+3lw?pQw(Ib>C0?59pQa3I z;J7f`_`*pOq9BJD(YA368$i{HZm2Oa8o%kN*2IK08IUXEKGiA(xCsY_S&}mhnb$Fx z?8$%-p>$NwM7B5H79fLAGY)s?tn6h$C~U0D8jG)rSK3f-;c8uE1~Rt5RIxdAbY|wC zH`yLV^2l5NM_$auq5j*HUk@x(^<`0%nwRuEy(L&8R`iYfUPX%x#47jKxz1-S%g6X2 zNWh<`1aQeh5{OdUVj(ZM!9^osrz;Ww=@J!}*ZN5!>I6nmQ+EG;h{i&NI249*lA8tD zkshcNd-H&8gD&HRPE}RPaVMl;yXBOHdbr+#{5dkr4{|v>21K1386WdMLEmG*=D6A& z-4u)GmWq(78KDN0?D!yY6t(z)2m4FG&>7#svg|e8vX5+XPE?2kxM?)AN6!pGUsBIB zmoTL5?)qJF?UGn!?IY;?eWIlo)}DF345PiNA_jNc2Vr~$MQ*?h_BHy2@PD-Ic>dPG zu@qAy6@)y(`Q>cc8)S0mplNT`)HX3xzT5m59F7nGY84lzfdVzsa-HzT%k}i#g~5Mv z(IZj^wW%Ka{RYd^?d`EDjg#?aTSzK1ryX?SCEx@Bl?CyTv7GM&qrvzWDhRdHmy~4U zvLGdh8Z&Q(E;3WD1G94ANiP~Gi=m!ncP@eg@H+g6{91%a2UYe{bZ;dC;SMCMvLZ{7 zb~8m{zk1z{*YVD+r!n>qJT_LR*4r=}(rwcK*+qSbQvD2&{l6flJ!2Xc z8VcE!=c2_Jg#|XlNsp`{)yem2 zwoKd}z4!%i@U>Ky0!n`}sGSjNmzcK)$K;rf9=nn1vntH>L#V~n5nyWt` zTS^x$B9>d*MYj-Xf7pLRg~0fiTb5t$C=5E-#CadoN>Y@uD5g}6DP=^WiW~YGrlAui z^)wCjWVz*#Hl!WDkeck2bP;HUELU`7$nmHCpYN&}nS03H_tB|lAt|)YU*8FliEOOW zS^I`9u6my;#almGK2=p8!hpVdt*_m;l4AyK`!mzmar??kmg1;G+a(6>fi#O+;ZMTh zgxV8vzV4AON&S!*&Lbs`3;F4`7Y8m=8(B5(=b)xjk7k^s>^ryL5I5FHED z*;YWKsQwUOjqNqcn(xnP+_6#F_K*)QYHwe8EQr>Z-!`au6{~HwxW%5CPkt@*vA z&V`eXD7Xf)Zz_?}oVWA}M)c+oYx+hV({@03BJRgEo15|VT$pPKco1od>+~uXk#SY1 z3YHZLsUIi2Y9w0^aT9!+vn6nx!d;CxB5%Vz{xwPqF-SaR`JlfSV(U+!2#~q#$G*rG z1}jkIGd`Ab5)x`kkNYUpTNngCAI)XFXFK2N-H z{sSXo@uyLbuxctpzk6sN4Kjh%ao39^WK+B52ZlkUwllhYpz6=tQE;gG3?`>*Sf9aj z$E-CaK?}u69!qos%}JrT^NVQ-n@?ID(~KGUngQ-#>b!fzvV*^lo7@~J(A`xGHUq;q zhLYocziM={4gJTL{)1TH4rq8~Xe|XQnUSpeqi*77LY)HDmF|@eXdsSMKUjp?-viL4 z9usQNdQv7pfV;GUCwx|K+)zxDmy$M4)PUT+aa+{zVl7_18j`Ih8p*|dQkeJI;!>QTxv9?9s@XhNl%|MT~Y);LR+>4QVq za`*%V@CJ3eMpOkWVu|}WRtEj_nzK^&l!jl8?huouO_=DU#_w;(4T-3)h1&*}<3L{B zG-ZEZZ7L7@i9*=VRJCwc>#+(IU54@Tye5$|PaB_%^=Bnm>?;93&x(NFvu>6Z`8(}| z&ekX|@@zLpKAn94j%34a2m6+lel|`1&=})z!_m9SoP~W&egHdPEDYpz z(7BiJB1_((n+@PI+>!l$@!Z;bXf8Bbv~518=)Bc;Ys2wW0Q^>Q*{uM;AJVK2{WQx-%_#HPhbq8L#nQiVm_e?cfBf|Rj%MkDR;`4aM605Rk+ zKmQ4rZjX>qyMf3dO`lDp*3p8p?&t3xK_&E_5xk4=y}uF2d|fbZ%gU*Mv?$yG?x%VC zZlja>jvq}HZbukaH?V$E)C|jwOn`s5|Ik3VyM=AzsW!fV!=68;2x!`BaSkD}a1b^7 zVR=>*r!n1KGiM8gr_ptB+ z4~4Fl^*XFH7AaX$!t*KY5#5k8i)fVz7mrmI$U5C(OW^1IMoqs-mz?~46>H#lROI@Lcd90JPOTjkkp=J&kez8?VV z>O>~UMsvjD%oemOs((t^j3-@fp4QLS9%14NvsY)&NN~f;UF{%FXw_PX!Om7zZt)(s z&CxrPx(q{j|2S;e`|Ac?pZa7o6U`u)6;q-Hwe>s70EfNY#2z`;^H@9rom$*ct^;Xb zPABZnOZmMh+JLYOy=CoqT>my;ex&~=5oOHsvpZF-Rxqh^VgxBn#W{EH95d*l1K0jb zw54@Ud<;pY%fNc+X>?0Hlzo+&d|Wd&w`rQW-98&;MqZwlLN?Npd5vXGpQ2S_|CUn5 zZ)=Yg7tz-as>2Y$5Upj%w|8=LfhF9rP10TBVy{K9)oa9na#%|gz^P*gP>@cMZ=Q^l z{4RjB2%2QdsE(lvl>cK_qP|hul-OO)q_lvyFHXZ_T=e>y?yul-Ke+27p7CO1JFgMe)SFwPldd|^%?r&}Gea)PID`cs@{}Xy>t;QR34RzuR z(G_%Fng_Qh&f|idq|Y0-H|~kC-G2KF7&QtHd!Tz-_z!njM|yvrVmLXw zGqQya8?O204qqQPPYhp=!;DEcZx^zmCb(HaDdQtz)$8VdkiNd( z_xtve>vd~?d&$>ozFVsB|I<>{Led8}(pdD#;uUC3TmaiXM`X+QlCp4|H^HmHUP||& zaE;wno@2eG)a`;J3Lc;q3Iv;ycv~3T@6AE5HFLva_}4?Xg60p6=NgJeFG)fT6YqzE zF>k$R?|4D=OU03=D5kuih{hhPxG(U@EAm|n40YsIsGFRYz6s2F8VI2t# zz8};Er3#tJHT#OEAz);N@oP7z9WpJbB0)mI_NgJ4T+G6R-T1fpV543%;oRNft?P`JgOj+FFf;e>6E&#iv<3Z%{%1ymG{jmmYjMU z8`P(l4>YJa8zE5v7xN)%X$3K0=AMv`fQN9Q{(>85*u#)`!YBFOU^GYFP_zl|4uLAT zH%pR6O86cJBRyt7IYpShxW;hrl`urUQK`_W3L*$3M@`R5bY|8{JcVj$JU#6%^k*oU zHD0F3;d53^s{W$@#ZP4keh6Y;oK_Bo%4~Q!?GAWmgm-se;0Aj{Ox3-K-im8d6-An$C7UZV=yW9 zX!RQAKX?-{of>v}2b*H+V@&7bdNXP0chpMNQ~9>^ioe-{ui@Q#h%@n${9#Ss5sAx~ z)&|rs;}-sMWYF0pd_)$^U4JeZtiC8)zIq|hH1qO`tP)DDP9xO?z=@1EM9zRHoMcco z$a@7o3|t}o@E}70?i$ZrOa!vQ9GFdFD=O)&AnChxP6(*iPY;;H{Pf=C)LwAzMYis; z&~S1{iKiSsM>EQ^B2{#MAEypsWM*?W#AZy==e!EsVG%2i20np~^WNoJeYTC2!v4BK z(u_n+9U8>DOEVVysbk%TX)J9JV6dFfd3ZnZ(>~lE&25Mlc`Wc-gr0tbY4P@!91I!~ zAETqc*rHCAUGWQ>_{e=NQFglyIEqiEujxX`G@^*N2Gu&9u*9JoNDinXsXw1_rd}&bcWiBo>ZZb4F>T6^ojB1G=(Y9b1F;p|WfP)p#qYGU3sfOwQC9Jnh_ym(oJb`t}63Z&N30RbH-@=M`5ITK(|i3$PkgCdJSNMfSKCj}$5s`P&_NPf#VW`(d2 zZ04-QGEn5b;tC(eY)87m{v;v5tRX`wx~3zW&q314rv8L0q9;j0jX<)m&Z{AiHWP8;mRBt%)2W3!F+z+=#Bx= zn|zTyd5VoGYjKUaI?~@HBLb!ySM$GQO<(4*k$#+yQuoau6z)1$hn}r_-5F-)60t!f zK8YBb%7j^T2;9VPGoioT|6;>Qqww?wbfidbi~2!qSuGE2iROs0(I)Ph*29nF<-qp> zrz$+FCqt9c2>Y`^5htL8B1%)XcXu!G1=sPZLylQ+nn15zU#z{Q4H3}f*`N?z68EkQ zdo8%v?-If!c5D%g&4&W>T!vIF{<5QcjPLO%smwU9n+hRo&#fVMlW&kRO`5pdv-Lyg zVt3eg_F*@;^E166t`Oy@3RKt!TNQfB@!v?71VKrI&{1yUhc?zb#gm&W{5#K+f11*M zA5FA)#b|>qYcE+=JKqQFD##q%&p$S#F$7Tl@Bqz~MyLA^P-uwR8Q0ZTntn)n~t*DRudfMF*4d5 zqZ7Vyb$3pd3w6?2LTwGM$(b5=)XcJ$fe3vION(EXMy1htxoohXn~ugY?5*ZSRVK7e zxHRfm$fN5SqpQGc>cTQikGAjo1oyI8`B|RMDmHg)*pt)6v`9SB)^pv{qBgqrVxD16 zS`Z)>Y~ZHd z|5s(o;ysB{!xmp2m+9pCbUL_gxM2|!AfYp!W@?gzS;*LaSSH$AhE<6b+x%T%U0YtF z=%eZD+6;m z9Va(+q!?U(2{Ku*W>5ZT9#??H;{GCrw7<~AMkh)^3mQl7eqR&rmue#ec1D;hhz)>;U}_6ZJ|I8(g}>)f=0DRs=HT6s!$ zNYsr*hte;`+wzb!(bj8{)Rg&g9# zl`%De3LF!Dpq5vFB@f!T^I2n%h`^Cf_EEq36}A~5+(wmHY;9=b2NbPDg%zp+0&~td zMPKm9avq-I-+_piF`52`rKTek^Gd|0Sa#=6* zU<}V-O9lNQ2FaAlM0pvHEiyEezY3kCi}_C_9j4&|FH~&5)#)te$QY97-QY#m6& zBj@fDu$6Eh$7M>C!Z<7+auqrvQ)-ex9!i74>85Av@FIs0ZXC;r)GczZTYJi<6uemG zNDR&R$E}ceI`gx7$Cb#wS%W!>I1wolVd#P54sO`N4DiA zVqVOcj?@OacwGeb3%-GO!H^+$K13dzZH|2~P(+VoxlnheRtP#>p6@@^u8>vnna+RE z7D*=2YzblwQATPhL@Z>s6Qb&=(NsJ?H%L{1ECS@HzcR#e08?Lv5$`B@vrWXXKL|Dh zMy$rELO^z|R|(x@BUjp4|5Rwqp2ILzP(25ZHifuL0>;S0G)#909Mx&o5jNsrGMYN` zstJ<=BPR2<69ImM8Z)e!(7v?K^Fy5^X*?bV6ZaF5>MY1l4VwgzFS_?f-y2ob@O6ky zF~emup^Rf@Oh|~)*vcrS*&skmyGNE~3z68KEfuNm69`30yk#k#s-}bjphghI;2fZ$ zVyS@7jkQxp{>QSS1v-ax931-kL(K+XejV?*(%ZKd=08}%EzqwBBxKR9 zNdv*i3w^mnhkOOy6AtrYI^C^~tHH#35~(B1I{#vjjkUw5d)|ghhp%o}95e_Zlousr zFn}*?zOf^8vsF3L5rT&OjB9^(i5L4wc;J?t)f5th345a|YpO37SE>N~GZA0XJhL_W zPUrl}?&Kuj=kb-0Ef3nBeJq&U0nWB@C_qz-8J*J&vyfgg+?3Nd8GdYh>AMT&0?@K4 zUA;QRV=MV0xJ(U;{>x|0pim$pz8__l&URt{`x?6s!IXmTN*x%LMBeDV2!hvE-}&+b zI90 z|7AHuBuUg4KX)MBC~#^xq_>H)4tNofkyyqt%(R9imexaX!aSwp(Fu*U%mh(>hA?0c z_fP%l4&9#Uf@19iP7_W2k2+)kDDDl-kx#iwJ1o)#C_tADWE=yBGC$>KG1NMr)`rmgbg z4V1(}V=|?eGYqtRf=Ly`4CJD7>z9UZkKFrC6zJ!?59cC}=h*p}k2Nv-2Q;J?_1BZ@ zTak~?z#<-eY){XqXU0tJubg&I?0>NWCh+=p!=PTETt)A|Z7HZ$FR3Bip;K00p{&J&~w6QsM#r)}>-;)^li z&1t*I`>7`Ow!hVKUOK(E&-W+UCOj*MPGfTLcyT`u`aI^?`4kXAROtQckEHin{%3n8 zoXNNL^uh177KIX#W|Z5RFT%57rJ7txsEzCq?&b5?rj>i&Xk_<0vA^BsF(>wtH7zpq z;BK%sKlOXwn2Ed!$%Gw{%&KVgSTe5<;`=BbRc)2z!Txes$B>e?i?vl2LAg@4T z!;C*8{De;2W@}g7i-658n~mba35bUr#?=7<Y>KO0)NXNY z+$BhYySr;}cXx;2?i!o`3GUvwYjAgI+zIX;{PeTlbE?)lwQKMF<^2bNx4sF=$4H?c-H@nl z^shiq|1iHG$mqTd*Vz;3ylBdVbhFaio=?V=;_GET$^VIDd}$;7q4USw0~ zq6jNicq6l?b!jX_nC{&guEp!%7gaa5g6Nwf+%S)sTlPn|i>NyCFfjAADE07Xr8V^b zgK9)Eq;sXApTEtnkC)2*OXUauu@l4oC zLo~Oa7#`*l5Rg@Mvpa(o2|YR*&t&-vfAO~FnznI6|qpl2!0@Gp-qlN97=4*eV=qJ9Nwwk z{3mjsWNvFyX2)D;Ibz>t>PRt%${C4?I@r~MWtqCN6K_(pHV!Z4#emX`#Gp1h*xt1s zd)H5bt04?5H5jM1k;W@-c&9XWeDcziAzQe8Y2z^YDP{_>BRCJn;6xi%L(c%L!X!5T zvb73^JQ*R#i|GPN8|oQDd+1m&d29;U7m&-LC7?lJ=gqhAP2)wNJ}SM*RY4(JcIaqR zt|N*1(v5>w!p@d0Y@Z)kxBCTiY$XhnaiNGQXcsyW4}1)8(O?2YYaPFI*-*yq|c;A1dHt7ZPlxD3lA#76>i0-IYO%mrv@d>}$^;rP#J% z6e{wmCP7?qhIY5o?H^1LS)rXTv&Hd(5j-u6&3*#RS)c4^a?pK|;r@VKiHhBOt1CgT9A@T0tf4E_w1;OtSu>la?0hV^%Y zp*7?;jccNBY5ts_v#O4LTUT|!2AsV^3aOIp1rN4&;8z%ISson2x$3Gr+eq_|O&JhWH z=x#Ibrrx{x-IhUHeEQyzdKzxk_P#2HgnotZ#Dx)H%!*aS*Xe>vM}wRpwu^~b*{*jf zpED0a0cFZ!W$l*xi}Oefmnu(PYI9L)+9EqF-snbG zu3i#{kPNMx`tX=?mxOI7cXY+e{pZ?X|SJP4Y z>~(K_yx)*^qlokRcLM0%qH}(4KYK_tQBB|Ct0!8=l&VazDwc#i$uo}%U&i0P3G%|57 zx-Yo8&ipacEq(69q}J-kY>Hm+E}Dm+-SfJ*)p5j)XMbkb%?*NyC(^@B&W9pD)=Fs4 zwen94xWB2W&wj~;v0i3Cug3q71+5-qq|!@+mg?d3+`H9M zADUmZ|JJ=6Snh%{#;EKuP*y4;exvx-BSO&t@CE4OO#I0L`f%+UTN1h1qs>}vU%a^1 z6|}p#>}6-*!IKTB7M-umZ$T`!!YW7Rx|%POV+-|#1du%7w{D2fSx>Vt=n|xKQRCa} z#{A*PY%|Y(nB!^GXB1tc0z6N%@}9MN%B6K)m(vgrjV1=T&`V)6>XbmB3 z%h=7?d&T=LwCnl!zNGhuI;=rdPwNmMeqoRlEkDr|k;8nzz+GD5a-i{g?-Kp1jW7-d z8Zo(z^4wM@F##@AC=W+-@UlqE?5zw&#<+j5fH^~Vv%ufccEc(plS%Y zM!8M!g+viCu)WKDR5M4vX?8C<%=(AzPsixmNw|=Ac*T5LdJ(F9=tb8&G09>6uxshB zsMsV`C!ZWj>%Zu9{C(hbO>@d9F!JUoFI9{#YRxIon26w|5L;eE=8S39n-7cj+Y(PC z%dHB@WFQ?RFQ^3Vh3c$2Gy#nf7Or$cF=3m2!mXnprG@Z?)7?*?FBSqYUGSQcgnMUA zv}79l2?5?3{mEA5Q@oGnFCls_T*@4MzgHIm@KJUL9{DBwSH?3)dxS`-&{4kg?aCcV zDJwfNq|eU?0lXMA7mWwTxsk&10rio*q3@<^-65N9X!R9$eGvTvE~JnH8ga-xOi-%9 zgYlM7=ry041PIkrW^2i6MFj`QM?I0Cj=v1|+_c?SIqzM#TRvcsb0@{f&6E)~djUvJ z($&!r0OvO7T=9{MO!0sGLTj}!wKl;1N9>H53d}(rfTvR zyZLn@EGnIn>NFWnAu7;LBsBkvU%h9oy#>c?BsU<3lr1`b=(o(y5IPGE0(4SAd5!Jp zHZo=j@PsTE2zQO$Wgoo!nozk#dl11e)R$;2jy$uFB!P<^>*OqrP`b!iz>y;% z5=~t=yln`fZH`D27gNxBXatLgD{yZkz3rWj_JkxZ>{^omfGV5M6UCa-KY)!rp$R{e z7h0-4uRR`h{dRcOZ@e{Ii>R%-CfeY`itxQ&`?r=aa)g8&dsHOk*Bs?AkV9^&uK`ow zatyUMY!l1zO~2+-9gI3YZJx-=eMEe9O8dKt|bYn-{0Lt3INqIBhb%XTrWd!gtYjEDnf+Rpkx&bnjucd{dG$d&z za49$nfE}*AjAnIbg`lMf5k%G++wTTfG=%4=kdE)5$ER0QPUiTvgWx=>VKAXksasWF z>w;1x{X>k$wk9O$W0IV9k;)Hk$%7zJYW1m~nL1ZDvO?$X(-a5r+DFn3twqF2s*h)0 z$;F_jZ0dJpZ`#>QVuy~%e#=K;31+5C$gm?P@oZki7s_!nfhy?+`JuDo!R~d z{`#$%jA}_N(&D*{9|D=Xq-*3uk$wbT@?Mt>P5C<@XW>*U{_*!w8(zL zh}&IUsTvVvoS})~1lgTDWU=stjDhRZ?I5Xd$-ENPOieYO1>u>5v{ z<8h?@&o8|^$a_PSE=Rm2J# zIuC$~6d3@ZmxNEwQFkV~E8j?+V|y51J=Vh=4UPcn@SEAx@}w=xryo1ygS!aq`a&$2`@5ONMv;pLlYa-!BM}_Wofz zKS)Bu$lIT7-gy7KSv?Sqlvxt5OUdYaE(qqOrtxW+vaXi5pV?F8tjHl#v(0Kqdf8A(KF& z$wvw)o|TK!{I=Yv|4lXXC(LKjxN9q_&9EtH3AkmnhIDD)iJ1fh7Q@NJ@a=8FtW1;n zFt*#0>WIn|LnW5&HnFQ>Nzvry0Z3?61P^u0(~Ti?m>rdyUHb##vZomxG}b%Nscrgz zHZ&dwaRiAmY1b(EiaaU=b@!_Tg591;+oG7gdmSzRchi_b1TS`n)CigFP)XnQ4Ss@g zC019M?z`bfLFqTnJ^=BiP0~*J!o?AGl{JuB()lu0=C$y!%K5h7Fa%KFO&G=Qe^j}N zkQZ_;XcJ8ZJAD-5q2$5_H;gcbt|=1qcYZGGBn3^2+5dN{3~Q0VlgW+9l!@=KX79y)?OTN(D(Mr4K-jIlR@jzLYmJUj$NcyhBDUSi3(>L(^We{fs}ltc`>bdgtrIg z?4a=CixATT=4B(rQ4alzP(6aR>Zv}+6&1ry_W(H=B;u1F*ORUZd(_T9_2|CG=~~CpqzZ8YF7?Oy=`boq#c{XWLT+FWwt6pO=qd ztM)i`*ZiB8+S%8uQI3w10V%u( z;NoxXX4io2GSO|6Rmb$#;RQF)jGPHqDc1{6rc5YS7I*l4uQQ@6iqgY4|0nY3=9&rq?3X6%AKqRW zndt(@KS6R=&%mw$MQA0>BE{%R4ZV~4#%fmGdEqFq!5!9u?~XhgzCqgHDB^3$k;_M= z(gqd;lA!m}8arv?U00*HJIw!_r&`Obak@3)s5f*}K+Y47KSRJR#O|n_je@o7F5Tle zO?~;yF}|Rh^NFbWgJy;%o^@702VjOq9)@m0%O*0 zT9^s@luD<_20yZT0xNZPK<`PdeU$X#%qwq6t;iZZdPb{+ny`Jl=n9r_GU{^7`Dv^h zcHh1_V7Ghj_Tm`gnC#PdZ$*V!Og(+^G>sRu4d2OHm*<9DkBo}?}Cl0Uj~^df(Tim7&c<4N5rjS!}4p} zV$r((e4jVBWWFnB9zsZ`$LmmmxM?2;*?W$l3#{HW{lWEEXi8{9+b|mDstv6}V0&}e zr@9Br9Q8l9wJxOr#`f#~--`$gYGJ$h`Vc2~`>2@ZhObd=&`4rJso<>xi17I2$~-&7uW zeAf};DGIU_p7Ik`5ja_>Lu+>(NIFL$v&)jjv?o4);v!%x42GbMi1R3Mu;owZdmcJ| z)$@Uk>YF62Ua2#ixEF>cq9yz(C`sm~Gwh?&dg^VJXqJuIoj}xzV}0?LnIu(qb2RbO zEe76f1T}?bsE$m{q?}>e`0wvE3h9#)fFG=2%=YOR~DZ;MmQtEMB|B-W9ikm*cF~ zK8LjjoqO<;BAd+bTlpf4=WFULS##FpP;r%4a!)G_?u=Geie*w`_5GL3?m7Tufev&2%@-0=k3dvY3*6CXE-8yt!Sm?#bqIEWYuY~&cKUi-_#^(Q|*_s!Y7=Zp6qqy*ZT-1XK?i+??}xSfJ;2*>>r3&xneGd zb<7W3L!E99tduP0_h!-;O{U@(LrGMDMC8QGAMeO(1g{MCdeU=W$@WC?6|+?VxfocKv;97DXNyl|fK zGzy*x;3N%jYJUP>gsPoXTq&jucwl+L4PMjwG=nE!Dr*KeLVfx7t#T=0pm$EPFej?} zxJjkcw3y`{l)Mc6i6qOI(76|P_Js8`UbFpU8$zXVnmqL}TWz8-r%@eowyo_uPfyeN z_Fh@Djk=%w$yRvnI_B5GnQ+1O%NxtMQ>w3nzR1F*_jbve5obpm7wlk|I#Dx);S61<70%hyjNgVNv! zZ2M2Ku$~eWnH6bAzo>}decuyJ7b;kj>M_v_Eq}Wg{;8$;2hU4+l`w(toCjXUHP&V> zKZjYpLNZY-ZNn75mL?MT=r2phv(5(j-gw^(l%;V(<{t?OImAD3Fh^1v=pWZ7kr7nr z>(=@{2EGw4^LQ9~WY7^#u@guTaD6JS{OxuR1AuF=3g6%D1fRZol&)tVLVsWO*MG~a01n>^tA3Nrt@aj%5UFOPV&vCOS zts{BJ(2qU7Y6DO7SjZ?1XNJX=1vmh+yENT0;Ms#ORWWec6>CvL`;j_l)rz+M@nc2; zLdu1UJk=9DQZ0mag8{?pB}y zCS9@N8hgk2VJAkV)0=M~C5L0M^M};3WOdmnBO-*~HwJ^S7uphO=vtbyGYck)=sz26 zlrPi2J?nYvczd=k|-zHh%SE&^&7HIX$OLG`}esAD+?TTqXQFb_zX?N3@IYZ}O#2 zhqTD{7v$n2TUe#PV>IBUfdZgJ$fZkZ~U`Ak!y zK}qMiecoj0wzi8F+3agTLqfkqP&nm7D!&;kf8;Cr?ZT@3Px6;-i2}+qSa)CFk^%6| zwy6KHZLl=EhMo8s`t(uOVRm6wAe8 zd01r+Z24)@syqC28CNt*cC|^N7_{&`KIzPC_EpH^V(KK79R+t>>wY0)n}AxLNJjvx z30Bv$HV8Jjmg<7{^BdiHtU#oh8=D|PHg$6YHdwcw8=1AGuj`Exo7;&TO%AD;8ZbWv zvCwLELMdJdz}r%c>~!Juk;mt**eW-8-vz&~Df&;?^`x83AESwHljmmC;i3{wLF)My zhayuI#op$}OTmb>H%vKNKHQF8Gh?H>cMI4qhf;R3o_KV(D!I1({J|O)8yU^-OmQxt z<{wKb-sJ0F(UFjRBZ@K?{#1Y-It#(TLGHh42zpXx9ue63VPm?{qh+0q@S*t3+$k=> zS6`wqJ9}r63FPCJ@0+2r9=SxgpOX%CW}{_By{_iuSCA825jY1}YrE@pIjAl=w@x5^ z1yDz6;yBPwEy&{{n6lGV|b z`)59GISn&^zV2;(Jin|7Z|*9z1in8BI}Kktffu4a{9eYT|KEiuCh$U33wR-l^;b;) zxfIujjfEV51syWiLiqn30g7VS>lIA@iv zxzE%_KMSzV-VY*xR-J>(-RAl0YMQJjS@|!S^W4!)B@&BCpV{^fEN%}zUT@xNoG!Pv z-XD1B7=HEZ|Fj?oEMqx|P-#-O#ny@%)bi7Ftd>JhegRH$=$>13-=F3vwqM|D64`6J zBVo;*drT;G!!s)_3VJo8=(A2>Js30R;_US;h(p*dwh2cd{y@>!j1~$2&Z88bd*HW0 zy`;M%i=p+m{yCZFPKV7iZfTG~*MJ^)HwX{fiilUD8*|rSlu&W(op6xjii~^e$bD7P zG_l}~otF$xC8cAi>W%PlZG;IGutStz>MmeE zbFC_VeFHTc2W)DDi+(t}6h>`y!#)^mU`JRClGsag_SDKZx+JH6j$Se)YtGi_B-}Pa z{0wD5HV@C3Ew#~IWz^aTx9`n7iXDP`ch`)5Wx2cme!z8v-Gdk;EQQ#I{mpo9TwVKL zC>x?W1cgaN0dV+qyV+p2E@~H`p-V zp6tSMZ{2MyND@tPVi`7uw6_!N1#8>%)0~K3RUiSAsu4a=DaY=SCeBI0vaU&g|6e?u zABz(P)ztSXLBYYEP+RUCOPKYs!81QY)5Cs;2^d-_DHG8E4=O*UFlI?w&xd82oF3ae zEVGj$N)9qoeh2^um#+zYrl~QIKv!#TWs~cPab+H^$EnJ^e0Ku3Yhk`=wHK5-S`Sz$ ztgz-&Y}YwRz2k10BxB?TS+5rD7^!KO73{LIJ}4a@OW{N>5!*I^v;LVj*#Z$4NdCPHv*z#}--h#iQ0OeZ+?fVeOcX_*eE0}Ee`=2#B+^)ZJba;qx}*E&>}6vMMM9WL5`&CyMB~rk8NM7Lyrk9Y%P!-N+ZV&c#g)1=a4WUW5<_Vl z;RpsL3a~q$`^755<+R+v>&TQ|DjO}oAh7?mNIj0=!g{$`j$Mh92|lt%sIZ2Y%iheX45{lu>I2frG2 zm;~j-p}9tWIbFOG3b1Xv1-#)(+H~TiAe5NwXcXj>VMR$g;%{Pc^uj30D2_4yYC^_H z5CN+)H1Uzvx#h2i+^7opaO1AAT!|LtrKTU1R)%RZjRIEI|;=nJzA_G5wdQzywr+I3D#Rc4vE{1&P#5mKgEJG0!&+ebQU)L{GVcLfMEZlKKZCsN z%MeYQSAbWM`n>mXo+#teNYuk;i`)J%WQ8Y09#Lcjo!#qdXRjRY@OI7vdWLD23}t@y6kqR4w_O3N)*^Ez<>)9+25KN zQ0hO~jtUN^x^{e2E+B%L5NxPjJCyBL1wn(Tq!$SW!9MNvZa2)S5*-2?O9_2kxj#2}8@A-+!$GQjCTV_~QUm?mvEKUd~_*J=C~@)Cgv z1O14Ctc7novp7K zX~Ft+c0)g>hkmjbHPuTVe56fUs+hn;nPV>rV*jk664m581J~Jy&h(1JMuRV!H+QZ}9Lp+u&Lp7PcuH%WJrz7H(V7n|3 z`#10HlX`fRkf*uEV=JMoF$uLbYSDLAcxFSK-Uz2OTpXy2t$8Q5Xz(yq`(i_LT;mi( zr7jCbKNnr5`=7%s%%%$x9q7?=Vjgg#Md+r7E>5S|E{cBA)zaUWm?!8;{nwUsr##Hw}QN) zPHIIL?F~WDmi0uM1;hEs{+e|>>5QdqqlWRnBRs=)l4*OA#Zlz#!#dtn8>u8aLW0-7 zcM*j@_7o(O^4Q%aEAi1PdWmd|0XiK+6~SQzl*3$3F}r012&jT4mkC!qedO})QB&unXGF3jU$*JU zI>S=;!b2W@q#x*E18qRXs*gIW{KzTwo$+0J_D^2!zs!7~pbyLBVHq?WcGR<2VAnFT z(kaNxx>Pc(fVkm^JEINcB9?emoXo4@aSq{lgWqb_Bpu2k`HXVXxUBEDOKqnm4g}}y zbNX!WZsjmKjA9dWC{E>N-?2M!Mq;&>)ul7;B-G^lN{-QGj@?NpQGPg&0G&t%?8JO(R*oVnZDjC4^W##3N}8pOjpp z1GvT0w%k7dykN!GRR?gOcBx>@_dFp&PbZ)4D8mhDQj{KKR+tYSMSuWrl&q+m#6;tD zFx#?G9p*qLHPB8Q`*yCq&nnxNDGR0}L*|XPfX7syp2&6d97`nMTIx3-?~^sO3DC+J z$KA$t<2geQ;?<{5$*)i2v>WYz&1IofP%HQ&qnf>@XYEXza z505s7R#)e%r<6Of6x)fQ74f;=JRVLR;A#jC5)PwH zX#d9dQ+?FW6JX5`etfqYv1neGGrK2(4S698qrST<{0Mwt{`FyJ^*HjayogB zT16aN^DrMNe!HrJCr69_*IFP;4a;Xm#21VOy@!lweQs#kDFr%GH8EjAUe5PhL&YbB zg4!nOx_a;E&&MAiRyE_b%Y;I0(v{oJ>ev%O7cJDVC!lm>^@!h&{LBK-x4|eum7b*8 zHSfx$(eksENEkY;J`)^-=5=Q&E5|+&jEhgA`(=m2!Q1;L^QD0W)0>AC zwXAPj1Zm#OG{OKKNS~nfP)7?c=^(#NI_*8CqD}AZ5WlO- zx3uT-_0K@-?}7?%C!1LUbxCxA8GFz7$5qiQ@3~y};@c)O_F_YBT9Rb6Sv2eZZM4>V z&Nkl^AslgiF=Lv{I$S2ca>v^OM2={SVAy05bzn1P63O=CVVVe&@fAY)^sHB5<{97Y zq51-pLTkpUHebwfG)wz)OJ)C{9P(0hGo4s4A|b@It%f~M9aeAn(juI|E91D9t z4Bs5i+RjhgFBMJ;WjR$vpzU}U1!gZSAp%0ktoh#JF4$U9gGnL6Imx^mLJSd)OJh>J zh#%f21DJ-V2r89L`K{0cW_HdG651lIK+ojonjR{KvC!Lf&-@a93-J3np@~Eb@5_8s%`&#qyg8i*0=G@*3m5ORm}r) zLbA;4VY@fp7DoesRZ35Qi*Mh2=|E{_ZIg?W;D5Dj2{Up#Fydy#>kM;@4jG_6)R!IN z@QXd;<}6g^T62y1SZwtPau%GDN!FN-^C$D1ePk59$w=XjIS?bE&BC&+YQ1SGNPI4t zT3g1a0J83l#I|{Yi?jFxNOW2g5;x0)1jR$lwGkLqbxw8_2`E_JC4*>0V)~hyVPT8a~w z^BYK##QgOqsc;#KZ25j{zq|)^v3H-g6n86DDpDME%ZK3Mbtf;GD&on*VIVLhar<~_QuLu@MQp3%fhgI%LJA!TFm^DsOb2-z| z&lWZ*9WHU7x3cX?$*yfmHAeh@&w_uDysdc%sUmZNWRn3U^j{yY{t_oxN4S(SiX8+a zy%@YDA7-Iy$vU-v((Hp8Xy_y5f;NJx5Aj-?3f{G;(2=@T${;yW@QjbF|E$nPn^(R` zbHr=-*Zjfb(CzSyQs3(S`Is-_0=GogD@cKry2+ve9nJ611Zz(4*Kj{nzlMhHTwjB7 zSk3(suj-h1!YL%4jsFET4Qw%VBeWXj3)!9VxQWlDQ%>KUo6;ti6!?}MgTeVZUD3B~ zKCs9Yk*$qz(d8h9>GtUSXZWHwnU^9A%KTi6Bd;SP^vEpI1Nj`~;zvQiBE+x+_3JWj z<=-zb63d#u7%w=g@#A5y;IQ*)NNFbjLOWRL5T~)#`?#qC*{{TuXZvI%?Runo5TVRt zS|;dZVJR6!D&togU4;?x(eAVaNlFJS!&oprU;l--O*`hSFnJ0ZL$B^&G zz!3~Tg94*UZR2A}wl2(8M`2L|@B~$sG0j@Kf%|mtt5|5dKp(5qj%AWz4yoJ1hQeor zOMK}2`i`z(-h4ityF6q7)n6HY89UWFRSDt%`~6)SH`Z&qO^=@bS8`X0U`sy2p2+|& zCN#0D-*`4$U41L}ROd3#2gDxH_Z;ANDD2a~3Ua6$oILS60Ko#9!ExoviR3i)$j*^= zrazuYry2;Ag?##tXa4H`4VY_e9z@uhC7jpv@b{EMk&53&EVG>ka5f&3(%?okv%C;; zBKNDNmy@C%>NFP!4ImR zQpDeG^JLP>Y7dI&YAVk1I3>Abe*V91T~+(pg3yvKG+^Ipl<{iT5vubXVbZ!b8+ zorO@VV>sZ^kT&6bC?IW~%wre76E`dArZHWVP(u0=b!91T5^V8^zP2(0o^+EUu`Uhe zB115ZN6>}}0c4D%Y?HA6VLv)p!fH$FRFXmxv7HNU#MfBgr1ah3ua}uI?7bZ4^JH`v zT0jP526|YJ2fLq087fRJc?M2e=^>zglG8|IwlNAK}Trr#Sutp8SI={_n$+f9+`fFW||)izojbJmKVJ{ZFF;F}uDHfbQAZP}-}l%V4*Xs0 zG%f7f!6P74Z1VoJMH(3R(y|pn4%%{3Vq=(J9(ozRd3n6MoxaR1-Rejfey`CBY}!4z z_Vm;8yshhAeFk2)

    8H)e({a&t6&H|8~5o&%&3RK%R*zzD*VijeI+2T6$+(oih@Q zXgOlaeK8_w2U0$AZwYyF8$BD5fVqp@M)&EH?a7w&U-$d1?zg|EYx~1%TSC$pF1!;K zIzO*VKd)<^J&oSP{<>JAcqH1Gdefj0JO9;z@|Gbl8uJX?7;Zq6`P8<$aT)(+w*OuZ zmO6?9kLpcDaedM4eRV@RO}g4~(r8sSw8Ue`PRfn+8T@&}Tk>)Qm_^YjVA)h&;OW0u z5RI=0YIXa;Mnjkk$bEatKoq?gq|bGKlKq0+Df?yI1-~>?>Sr#Yj?ct25E%uc7VphZ z)&1bdJ@V>vP4&`yf-hLPPo)vSl~=RdDQ|JA?y*RNh~m<0XjfmrmG5ab>{R~xPr2g7 z=#7?w*SbfUnuDm{N9;N&a`e-ID4)p8aO2i7?RS4HSFX zH@UI}#jl2Efzj%{U_|Abfqe@Zl~=5+Jp;AOX^d`I5K_?Vx8A6S-MElvMn+cu@aGG) z)jjAZ+E2P2M#HjKHNKSVhwi&=`&6lgnG{^8#*n@ZX7UM7NRFPx8Y+$}Bw4n8$!75t z5(SesG7hOX&!&baE0pJ$OdHXfidTK1*BioCiYw)mTyq5OC0+)nzy@FX4UHq_!~)NY zBc+9R%dc!{77*9A=9y=(zl{v~q3#RT7#$I(vPEe9gqNp7GV8?tbZV15@5uEmn#>c8 z7LHvsI0mwXO=6J&VvDeg$$F4{P$=5adt=T~Cyd8~{e;JYn~UA=*^1w z#3+#mlw zvqp#GZ{E9^|6P3$oFr>0=^TMZ{E?Tl9cYe!Y+geA%FN@7{(1@|V?f(abaZ@X6V$Jz z57xt5PBNe2v>lwFSl{>HPzXXgNOwlV*XQiH#e-FF(M1*aM$Nclq>l52P-vrSe?7ihE+hgnTm*xAbA4WX`>_8-Sv&Zwwn6mHc$gVQ?|#q*6&gfb#fwvPy3aY z=xeh59*ASVt0reeu98G1@%HYGQF?PydUzugVq|5rIEAKJ&_C0V#KKmyRI}0p2Ul-d z(+kQTa2-^a5*0z?G|o)_DtR|WYUScfKck{t2z{3Agz2E+PWF8``YT54)Nj&0%o+Fu zn`(c;-?pHkUW|bD10a&{4AcY!B%JM7!Fo!{Hxwr6 z$2MBCUOg65jY$NSG!$%cb)lsowQ0Ga8mTLcw$KLf(WZEa=3+tx1m~n2_FpSG^b|ID zW(#BmUp;?lu%s-WF{T+sUTSkDVEr`CT>ZesXN9bOkSD7GM>?Ga8a)aNZlU|2Fw~~l z60OqO`X&KNS@M364Byhy(O_STdpODAKbw*{yQ3IZMbRIl|3&q?tz=c*CT&P$(834R zS*bgr$h-UM*{t=7<@Kn4G49v0sJ_iY^CY$Rrl3r>;ql&XNNedoBSmKXp(9hR{Z%UF zPeXwA%FYKTPI`@RynJh5J|4BO%pXc+VQ;Ry^L?OdnX&Gq^&GS{%WU!Ft5L; z5VkLe=W&G8=>LwX5#jn|wm}Vq%ZSjHqND(^hg&`02}&u*zOT2Lop^HvXlak6YamQT z$8T3ox4*TaYdQuli)*96&Q~5Mp3`U`lDWu|(a^RBiXW~c6kJC#iQurBf)I3c)cqA%W4V~L<}+tR;-?3{x2ugo<`B;!Xs^1Q4FTDThUEgR zAahlb+cxfVl%@G}T+L+kCvN@y4|u|g`!y+798!zlE&$b9mTONp)uWK2zr;lRJT4PP zj1l_TY7Oucp-NQ2ut^JCyYTx}Db0jqDo*08YA;xEUFu~w$xcJUV348lHABS^PF_b! z8D&oF08ZbAGtug*$<{y;v7{X9hf06AMvU$e@5RD)4P-NsbPk`EpE>nyc2r??IDO>VrYVzr^#4eO5;3?NI3UBLfPSItpy&YZH|NTe7#_;+0-kR)h1PSrsSxQ~cW`Bm$&efoP%&h=!s4RN z|JAkz_E1KAXTNOV9y_Xw4Ec{UHQhv~+oHeY6jq}Z&Sz|-DJ4<($SDKXYjasMWo_n@ znpz_pz@qh$zOMHKVL{IWabxW&DlQ>BMrj0JNW;Coten+x&7|6IoToPp7@veC5+}%oONp#-f<+?b> zsw&0>aV7^&i}jrz2?)G2^)LyK>>18F!;petmV99n6E@Lc&-)%xmNsY!YD$=bk7 zdYS8uh$BO6f9Pl^nFt}01%^@EDimizZoQX@`wKAqVgl97E@KqpmQ*Jgw+S%{h~p$+ zwlY8H=l9UjH^%Df{z`W~b)I-}j_yzhAUe$ludWk(Peld6952B_0SL_&j$2XMGs zI8q__x=6O3N6;|PUSkgkvm+hj<3#vn0}}B+6IHer=eAbA3>g|E>NtI<{r-P?+TSi! zHA8kWDwIj8-j*u;$M2x>rZ+$ZLMOz2Rx6K1zva^Qn)q=P$m~^Lu6lROjd*e6e&sr$ zn$1oOK5LZ}P^#x=O+s;ymOq$~C+-8irK#Q@UwBe}kxLSxjdu<3zwypP57$y{=a?q6 ztryBJN0z|H=T=Zrspj$s*0z@dBEjM(mGDm)kLH$i5>!D4b9NTC)4dTpp3FXT? zsn==L0CyKK&eh@ zPbI-cL6-qw5;rb(=T|?)Hdv~>vH5>!d&eeA+C|;EY}@Q&mu+^j%eHOXwry*cZFbqV zx@=pgp7q8XvDS$ld!H}+7i8v)yyuOP*ERBaFlCm~!LS$;E{msr^fFldt?ZPO{-=Iw z6n}o{8HN0J;|8Cs1%p6Z*rV2Oa`lMaXJWZUcmWn!-Ky?r4XytA=(%6)!gAL?EWE5`O)YP?1?IY2p_D zFj*s^RLOaz5FYDrAc+WD1{}Ep-eA6n3#-d2@Qhh@%Pf5(i*TCrr=!k-&q5cQ4K>KG z2zn}%!w=y)?WzusMR5b@7x8D3O%L-%zZ*(hYqHQ@KDtx59%gl`6_$76w4RlM64IropUd7w|Q)t6#^9SLqX{wWGHf1F*@@SAW0rQ&$L-r#Gm@tJ3;i-=Jtxx++1yz}PI8U6t&y_T1=Q<@!FL% z?K-+I%XqAAq}6>_Ov#78$b$^}BZzI9D|8n|NGvVg7nIuAfwVr7Gmd2j2J{!X)EtYE z;tOwzKWXs^S5U?+jHa30j-sp{4FU1Ej)hU|(dPr1!DY<$G|WJh$Xi}7=X|-DUe2pa z%ftRq#@a}YW+XgwdftOd7-oP+IkX&MbRnFkw&!aKc)1m6b3f)y?YgZCh>AXNGdid} zL1QRNW#vz2#jH)7jj@-|LGQ{_cqtE~%9&$wl0kEY=%+QAfqX`txu*eo#H*=Lk`65h za_9G(t2}%zyLsU_bsyjQR5XB7^=kZ`R#uQhjJTx9OSW{J>)hj{EP8vM{JrD()@FPM z-E}wdm4#99;2qg$*ST#W%be;Cjus*o*&wS~r^)Y;iFj(Ql_j$pL-Q=S?_s4ES?(rk z`v<=eOu+5Xr7X9K`$0hA1DJ>l@?mpf&@&?6^D+vi92ZFoBVB%l<7 z_IuZEfiO=Vm1FWU1>QbzMQNPsOR{U;1AKf8^hOfo)jyv98n&njo-*SNoVw&;&0a;Q@&@D8>hwM$#8$+Oxw5f z8q%NU-Ez-!XkvL(GbzK}hNbE`t*WIF{+MujVdU@)`NP-=G_~~MJkiO+Z=%ezA2ps_ zHm_|>5Y@GYa!tF%nP{UaEUXKrV#XHr_j&yl7+a5GuA(_CJQ=?ttW|{B5wA>+wdld| zL5(claN**mhL>_812ubQ@tx#u>N;< zNABESbNX)YB-Y+Qg#Aip<*AO4yx;SH2!$V}b~l5pO#a_&@oFq-nW#Gunx&JVHdlwH z*AvDlk@G)5kB3{%x);NvpXPyAeAxXs(~D7x?Gvd|9=|3aDJr5(?6=*kk77U7q^%dH z%6d5nqy!=m6(;2o5glGfG=E4NzG)5Zp2Bo;S4@T}v9!SQ1cCXX;dB3}gz! z`Ho&v{JLW9NB@Yr1Dlmy@DSdAUB6k>h#&@u?5Y-`8%0u}VEGHDpbnDCbPWG8uxmkS zeybmg1Ew0idu0LF5w%pJ=Rgl4P8nSxp~zpTfjOQQ9*{64%c}gu57LN2B@M{Bbb_NB zu03&_eNbOKia65ZulbZ26E~f>!pj?|#744V72`#VvwXb7H`wM~v9dbKRul)*JfU!( z)d_cG%w?y;12=su8@6u{8quuPDHGwuzqD^Yu`j`CC|-30--S~Tq)IBQ1N&|HY2o)f z|IezdJ)e7+PDi!SQx*Y#in9P!AIsZL`l2_r8q*)D>Aor8nLlidC?|om2CE2C)ZOiG zWeri9iW!5AkHHC2Hz<9FFlguj=frIix)l~~h(!UU$ug%L_3<~(tqSBjFtEGnfeToU zH*F>&_@psXnxMT8xSQ5fF4Bv(!W>6Kp;!(ZYsWZk8HNi^dCE7?yUL!9{X~MiASTnb zCpYC`4a&Oww*j!)4B>RO{)ALHg%<1-^v4Wi40^mv6}AB8Gd^A-*;L}hR$P{AaeleR zd*!yIwi_ggL$65FSF!c%E)h=DqKQ1ba#56TE4f1YLmfvDCvINwjW3sVY55t-kOCk~ znQ&RX6MFoC+!9qK^1+%MH9tx|uV1WnW>6#W8ro&fI>?^WJx4aOTNpR@RjFuA)j{N~ z`cXMp`X4p7*U_Nnlq9so^<`m>m0~AQ94qdQ6Z2xno8i57R?paa=D>|xuuamz4^1{1 z6q%>!La-d$95_Pr6Pac|?jwl1y2ke8!6PN`TD1#032ywrMXi%V{I^QVeh~k;i^jbm zbvF~8j48@;Vr4Qya}WWE9TlcDI~5CT*nl84`xOK>I++9vqr8i7aI9O5O7^mLFeqt( zr1`&Rkifzn&ah*VJzFFtxv=`<7vI7O&rC>OqYGh0+&CdfD6B|M8Hv~)qvAh8dhwG~ z!(D*h^h_At|$phlk|uo_sFTCKsW}< z3BTmr2JD{z5vT~2p-a5ZtYppR<6{9MGo}{*A4Z`~*3@E8aHrIVPucN40e@?LHmT2r z3D0o79k2d}D(6&}baxHYI4Wa#zdVQ>%kpX$qwj1~Pd& zD7Kw!cg6x$<)i!{gdenXlOB0uSR?BJrE~(kmZv$~4b(&SX3u5EW4&=1E0v|oOGrP+ zli=_VcIaTk^-fCIZP~L8vJJKfOLSUgZ@wcQ?E`sDR3>#dQ?>867{FzbR78Od+?)MJ zse)?%7`yN8YW;6VV|{~4!$rgc>Fj1R?3#&LUSkAU>IknIA)InQ?k5;|RGv^M-p-hC zjG@iXD9NVJm?4N6p}28iE~E+!$|e!-EHb34caI?jx@oudUU6Xx3@@E<@ki&7>{hX> zpc*uW;4%nC&{!@;zm^~WvQ_Lmg>51wdq`+_j7>TaeepefG4O<7h zR<-Nc=POv9iEi>4;qG^GalwuTdc4$k<^ubZxpZJ-{^P3DN!FJI40s z%|F=Sy9Vmv;{L4Ve!k}G{gJ-qUC}0V!Lm#D`GLRZAUB85u_uin*FnSQ{q5}gZsN?e4X>1h0U`l?#;&^B1Bn+BcfGsS{CQ2Teb7g^ZwF>35sAx6eQ$d zJXwgEcR`W?%_e);q2PrZN*u~E4CCp@yT0djZ!d>|MdMD+So#;Q)349(r+vM6J!|Rl zj)waAP`lu)T}nt&DeVsw%8NVNq%9^|-Y#anv7>TcBnatj6vf2X8W1UZXiKWR0d2$M zTFd@y(z({hu7-&T0?bZVM34=w2a;7eXJ-K>GsTO-}a$W#p|qtF*A%FL>*N2k?|93{3vI zQQhvAX*8@jj)q%*%TImty#U6w0sGxfmAyUGeY0&zieUnWuW>V`oD8P=jm!~=HRk)Nz3O}6J>OB~Iy`Q)?x#Eks@ zKK#__i~b8qzb)P(O3Ex<6aABFB8*NDm$*(dNA=q_F9BSG)8XNS_LDBJTT{s0{sVV zS}VEuj{fS6HoZ%w^FHd%D-+2R6BSxOfAF3EY5u0vd)IY>a5@%}UzkP!Jj^K?!X77G zJGfo&!7%`XYmPH!#_(1!+jMro2?8DZFgOE;84%es+N5|^&Zy-N0g<_x|p4>wm za}y45!b{s}CbC{M!n?jUMe>|7Elew>9(mK?Y8k|*Os0!x7-5wQQ;{_fcEW)-OzZwb z-02P%C?5~CT0qQ>geyFXvs<07_5W^V1+A)*9OON(xh3nMeQop7DC z$2ISD=SX=8NuYoZ@TakcVSo@h%3YezFO~4AsDf|ek-E>4&O~f#{rwb}4L>a)i^-gy z{2>;CSp-%`Lqc#{^NW#I6NoA%aBNWd%K$5t665jW?)P^&GvK0@=IQGd5gEcxMinxe zcx9MO>jNxZ%Na6oRu55Sbj&zjn3(f@LtnBxtiMDWFVl5I0GTKe+s)lo`EAbz@dvU3-!mLMH?DPX6VotcUeYXi8E+OnLhL!0j*IFVN)i z^JeLmK+r$IRncjr%5SqQvNMRYk?GC(@vveAnS~@MS(f}4yqxf6c0r;7`eMSNQg%0D z{)orKBDDz5tz0j&KOH8%X2|2MQvC>93 z5DwuT!}l9FPBG*$X0z6Hk;Cl_MG_{?h0+4&d--_R4 zB3%kl`xC$;F~M}KZ7pXTE^3jfbpll=i3l)9nvd+%_J9*VbjB2tqCBr6(RP>Rs~MnF z^R&gE)1C_`bO%ugQXvq=`zB{2W~>H8rBt?qe^|SiL8mW%|5daPzk^oZBA= z6E(Myq5iMA5%2`?2)|;fnEDB&#-o~zTT&|Xk9oGqY~3V@;aVvki^vck=n%KNAU2f% z(Q{G<%qV1dVl4WB)ckTDVRlQFv=dxY)!IaLipie}Crw#U03+?yaly2@zt9QdW__BS z^3{z#YU80rz9Y$bBU0>jVO2j{!4~D*a|7i(wh~9}fE*9wfAB*FQ%4XUXB=$=f_gl& ziTkpe$&7c;_hzrv_LyUV#>u9ltY|dvU{FLw`wI?Bv&8eM zEX8^-z~jwxvx^i~hOR{NYo3SSpVfDeE$KjqqJmdHvoaL9ayL`3bq+lgg`Qnx9x&$B zE^7+}pTM7LjNsbkOMvSvERZzusA(N-7D!B0Y=p^MN0G5oA z6N}xv7EhUND$ivA4O-Adn#-I? z;tl;N=k-)GxODolHxr=vL5|PEtP(fdONbZn3gr;BnZ838v7hK~Z{q&co3Os$t{TKz z&Ue{&1V*sIHCmQARsj^NpS74Dud*0OAdCvI7^l0u-mA}-5vp~3KKZGn(M%7AF>FICy%%C&b`M)(wfc}`Psaf@K#K4gA|`Xlus$dkje!k zx%$3AIYWSu( zLfcw)D%Ng%Wuo3NK3TA#BVEEA6F1%bRC&gCwsmJxR*;xcR#_fFyvEZ1yxWpcacb6w zAR9tH?OE~q^b?HFy_9ieojO8e98Di!Ysc&-?F)cxPm@Oy6vIJcVW=zfIQI$fMWYvd z-8kIdaRNoO2=EprX6MKknzGz9z;45>UcY-XsxJgne!Ab$C@x(`(*D&+WIdMN2t6pQ+NcQRHO)?{Xf77?&=OwD zhrbj%@zpt-oaY`5((y>l7>`s9sMiP>teb?^UeBAYV=O;4U~R{+X6TA`AkX9#0^A+v z*j&VlF#9!6&F;W&0ytf~+Ud8gP=;AW>An&W07`%NBI|GrMNd_20}$bo0}^# ze-FU4XzGMLp_~_NFmgOm5)R9S_Ku!U@1ZR%1VWj@19?5PyBpS^4y-(ryuN&%@*>6G zAU$DNrUUbdu%Yl|#3FwJR`Je?g0veQVu~djGPJH48ULznO8YP-CJ*VHh0Lz- zg<=dCEB1QVL20H8Ebx_G$FHGlAa@K&pFAax1>+PUU!aSU~OU(3H zfEbEuY~9@d>^Z-QJ=9-bu|Sec^kc9lot3zeoHZc`%AskOg;+CFbbrSy&tT24oI%!F z$^4}z5&Am&9Ut=B4wM~xgmRA=T&GjMIFFvE(*H4VZ46f0=U9)1p%QNNmdN|=&w#kZKj zxcP~NJkodZxcb(UyZ82b{t#{`_obHGl?`$)`>?8++|RdYYWtzU#+dNh&*#Z)ZRad5 zZ(qBoPVKoBQrM3T$sL*QGZB7^1YW4eu8gT|>K4bgc_!bbiz?(U<_gL_=n1Fno@nca zpN+T@&_$&+b#{p1_5A{!>YEeN)opY7F`Ox_ozAC>h~a>Qcddua`zg*-Ft}w8;!f@* z-x2Jx!Kk;bIfwJC^O2^W>IAJ+9srHGs~T+Siug@@s~i8-2Tw{Jeh|>`m-a zDzs)bPgW>{)|`Jj!OTF%_EQdh+}QIx4{3C^zgyYLq$?*Qu_V$4mav@K+wRnm$V;8#r}cJ`O=s@JhE@(4tqF zYilD<0F%+RzojBKZjSYn(f_gOY^5OX-ChC*GRPpQGNm^B+XZ6 zek3scV;h}G2)Z?~ri)OLDm5D@!o99#_U|X;UK{HMw#wFZ_RR9tjRhn6&w`S6+31pJ zByOW(>4u1gc^5A6ycmM?K?(E3CTA|D?(^?;Q-RPeXqyHzWkU01eU*FWY!Evv z8PXKxVrk{UIngB{ZD|<$S7*h$gXjz^9fp^Pu$wX!oWci*s>VYIN4E9SvwN+Oxa$Mu zUE`&IFBDCd@ai>*zuL-)_SqE7{;O&+{VJYe=sj%~$1F-=G!WD31q3v|XN`F7)n;KL zkZ&#c)(1l)ld!b)}^vGQnWsa zP(QQWhO`)R8cmj2ZBzcViuTHcoMg1YsS)Pe*ZJX8Lm28tMHIJV5LY`}vzqKGC>2>R zLlg>~O8-(Zx|T8HgW8J_Yoeh_mO0$ecM{0vb}xO4@|4n!eTYN`4x|;s{3{k1lO?}P zhtd4!)}(3i&Gk=T#6SzZMcq(@a3ApW#@n~-EqTCpQkbytQ{&k3m6>CJb*#1zAga_Z zQ+ARMVf0)UlkdW;$w)N57!&hjF<`()O&ozcjtxF$CwD6m9Aei?W+!r}$_=o4Xf%~E z({xuUg{jG1VtqA%V<)uMeCl1mp1sa7EL$wvSf-QDbg&@d!;K%4Sx%yo-aV~zmQ}Va z{DQZ4<3}$P+t*Xf3>jfEwG_u@tA}?9Mo&*1uZ3nke2UjM-1f_K7t4nT}y3+z^23P!@9XzB30&mdvrj8YY1ru8C;G-$$Np%G z42R2|?3+$6GM!n8+5K+LIn1(b);OJ65Y6+)M|e_=7nvO$9GNm%FffD3ex_50-Bc02 z67(J;2xksIcO>_W+%8KM4$`>2mgFSocS*Uc;yQoQXlIE8qip);7|Jh*x-lxr1$kU~ zuwXvy@$IG4W9X9+^8JOnYn;WPDM};F=*;MbcE$r-$j`^gBQA0slJ#|QLJjY(Z`y2` z18oO9B71Kb=8|0()y_s@4PH}P4^2aGo2r&;Bx`g<^By1|R4Xn9D-H14g=?=#7Z2=r?rn3E6`V3p7FMNDnC19xe zx?PxOe=jkkEqW;HFz_W+Wq$n`u*rd|aIG0IZkR2ceUyoV>4zbmsP-&FsW41M{b60t!}?PDb=duW6W?zA1Yh zjWv}E)xAqOrn1E)Z|BCU1AP$+PDb_G;qz#gXT}i7j*Y6d6nd$q^OB0Pm@ZAPc^_Bp z4xE&Ox2sSir(bN*mG{*N4nBrx znN=!@AXnO4V?cf%r>vV4W>2A?Cts@H1QD$fa0xsZWI$^oWxm4ehLkp!J&1;tq})a3 z_zX5rwio-?P^)`MyD)0RDgceFyhug*el>eiR9 zxdq#$Non>)BXxf?LnAIy&LRd^Plx%CA??i_Wr~r|38bsWxIlkKuWqb>z^Y+p@?xnr&Jw^roS%rd48;7^FYy|qz{VrmwAtzop_-d3k*wsyxlp(N zUcOt7=Wp5%+>Urh;w*bbXQ{U`8*7winq=qTayKEoai`xX@cN>}gU7r-tUZ)G5T3sr zZPB++W%P%LB(r-$Y%0MhKcq9%x3p_&;r6jwhscqNl9Ik(towrA0V3J{E57m{UW)&T zudx5Sn&aR3%D;%l|2|*&S9{j~9L-?=_XNp*%U2lxuV}_*_NdMNSaQgdM}&vJBr`dJ zpFJ>BXs|1U#qzN-=;lxQ^Cw*n=V%40?!?n=_-@{#&rrpmcYYzBt z|M>qG%<%m>qNn%u4rlNBxNG_HT=nUM+xB_CI6!QIYUZ{E9*xsN&>jwS^(R#JbeN+8o8?6u8zTJON z?mJ9;F6(-?RMTMJ)9$KuZ&bT#{`_#$^PS0ZADjVIzG~$5xz?lcp&f+eWbkciTyYeczKM5zC9cZ*sL@=Xi>l;5lboPEnqdd3C;? zsKgp0^|1&t)Qho$XW3I7XgK+*;69Z2miha__LAQ~?6zq;Z!+d@xR-p&Jjdos!TUa} zg2xbq&^|g!4KmTb@x^vK%|{kw9U}^9WJY_{? ztu3kglm^L=B}0508;#@7-74MUay$$_bI=)!YETohZAp^TZXU&6X9~_tQEO>sZe+;oZ6xs?PbCDQ z3e3*$2t_DcdW@AwF_N9&s0o-6gWahsB`~H{J9uyT!U1NY*^5aKZba`9h(_d-fwB7k04A_1yVFe7u7G&r+~ejFhGeD_1;I%J$aHqY@ub` zrd?ScA?Nj+T>#7ni6Sph1^6 zR5=8h4D0V%P$hO^R?vjSbd*>pd?mO_5n1aV02SCJiVP6~5nZg@23HdTZIDV(NRcaQCoi)ggd9yT$ znKQ3mA5+r7R|RpLC2@S80gu_bx&d&8rWY(X^SAMhMOIX1+??_%yUxzzwwB2Bm@ybF zLn%lQu5TM?P|Q7bQV~oW+*{~MN`-=ZcAu65sW$$x^XNW z)Dhxf0%g|u)+|J3g_K=qYRCj}#l|aUg#-p|q@>vm$Cl)gar6z{Xc<})B0XL!OAK}? zO0-IsIx`r-3_HNr*YyIqrl4`%W=!X#o@6u`qW9OoD@4<&rO>((Gt2qQw#O%IP7G-79b6_Q={6dilAn;f7?rBCn-Kwj(>G$b~MA{TvHugzgkE>>P7a*NaCFCR$uiGD>M zJ)<+NWq-kztuT?maDDIh3p^{y-sEIX1I9~uWMkHuGf=%#R+d**{&husj#z&r-E@N* zKc6LA!*+K2^PS*6+S*Qqo$^Bx>1_vYIU}r$nWG1LfT>k$!8ne^4aaNZ=R;onC#N2q zxQ4&>1&Z37xUalJ_J>KdAVCm<9?e_`KBx^A7jE-gd87?tGB7qVe zU1e>4*}arEOizd4?U=dbT1*f}B~K(a`guEjdPrTQdp%d2%r!Fr2wv;%^^c63BfZWr z^(GvPCSX(ntC}5L_;; zDN!(EMUp%+Fhx^V^HzT~2D3yATB?FYvMymUsCIu{{1QmDB3K4v73!L{`R`gfwdtEe^nh|&Ryf$#=P zvaE?gd=(WjKSCJF+ZU3d#Z3KJOqnG{8VWPY#W6v{m85@OufR22PM<;)Zw2-_EM0&O zjb8>6?!ZDG_Ld**hzCp|y$g|0+8|r>vz5%Vbi+)tpTLCv zsWicLpq=v{&;%{`HM!C^O5@4*EQDq-ZXt4k&Hsc3!!CX{z$c}d4JRtX(dqtiVR%-b zsTx?)SGeY^G{k_tthHn#Z|q4dRmPJRr)G8Yb{7LXf~Ks^Z`NB2)Axse#Fg%9AP`DgD}O z9~I3w@cK(K2(9vrTNIE;z-kZ8M+u}c+iaYW2P+WMGx|6R!$7^x#(B1C0KWxGrEuFB z8rUDvFJ2P$du#pd5z1{RV#?RNsCKZx#gztR?0EN^3*O25Q4*RKMGx9>kKZ*WtkY$< za6D-UwZ$$f27JpyxtB30R8W{Ar)o=~e{Bc3QEQU}hbq*N5_qH-GeY3OS2Hw(V8(NB zfx+z+AI_-`SkZnMxE>Ux{X%4Dp!%w}LrhvnGh_XBf2 zLf;0_Ys9hQRe0o=0L!K6w+MjxNsMREh>$dn=Ws|wBx1?*BiN16kVj*7P%a`ATOA{9 z(qpf!Azn`5S3PBv*;p@_TV{I&uPp`lLw)rQk@l_y8-~ym%Yc~9g-=D9UnV+~5iJse zHN0u!0PPTPyVxLv=s>l*Uf*UsaOOP8gm+pK06 zHgkVGM-#Z}q>0V0!CyFui6%`Dk&lb;2gtSf(qGZ-Av%SZU-+=HMpT5f9Gi1WNjav9{Hn-jD=G#JO0j0ot~X(B4I z|LDvgI4|a&CXwtu-n=&UGe;8todT$H7atY9}{9cpNS&AeOne*2X zkjw|ZFlv0ulW2xof5Lf66j|xdH|6}XkOmpBq9>ad5TaQo<59nMcuT3gC+Knd3WhD*QYz752tzK|1)ivOT{v<$ba%JBb-wmh`YKNPIz&dvew^Dwq<# zYLTz{4<8rxym?pkDMFmFGD9~x1jD0iR=frz|JXq53?39o^YQA7r%{qhnbK|U;GSgZ z=CnA3PmJ>I4SXdpx0h8HB*^JHI}5IoW2!5@Gx492DrHo5`YCTtF0z=xNKT_s zdp!7c_xBQ6-(7!qrL?)Qcihx}%-auszdGN7jhP9StEh=$C_tV2Nv$OnzS{Kp^6BPY z{|Ls-<)7KP=1QKmHva4BuwHH~f{VJ7f-wC6N!02P>CX9|Lvyr!p+{^W1kD zgB%knI|;#L?De`3NBNv$re%VBS|=9_s_DOIG_ad6h@G4`4^Y`in>PS+vsG^5IX4?Y zIl~?>Dn=eI05_XuO`M*>A38|k(4l6}RVX{7AZAF@dJOWXElIR%(5rIiivwi^TU??RbL>%?%wq70ZFj^wfVX zC*&^p3jMHBWa<*j`DQtr@AtUZG$OT!GR2 z@D8X@sa;ROR+zkUu@`ZL|G85 zaZ?U_|G^K23>6YuriDnW@t+qkxNvDMmgG7?rp0*7s5&xi4!pCrqd40+$=A#BEfv|6 zL{y~emdbfT^>zFn%l+wcn6J-*6=+7coIVRuQGQAK&`jUQ2@4bCficmSFfS30Ivh#J z;@_Q77zi(jh(iKEWbs@=xO2rM{a|oe9PS}!Z9jIyqof5UZI7Lt(Z5@psyL)a#ka9| zndzN0aSVn)nFNB3oY=G4yll~X=at3Sck+lHlHS|GGsjtvjJLeAm@bHBL^97KyhB-f z$Qgw&G=0S1Qu<<}eWYfjRpEhwoHzEzT^p_PJ6EQuCe{~WTxFRmKco9Pa#?#L!B!?8p(LNBBba%YOE$W*fw?Rm zH(@2qmLE!~&9uZV8lk6FJ+7F!W+-)^RYx7%tp!vix?Yy%E<<7;eILB20Hz5nLd-T> z!A&kb9%t^J3xZd@dv5?90?=uNNdcWdlGZS*Yd_6`RY2h@d$g3kC1oe?w<}zsQ2pY{ z@E&rJ$C3@?F^O=#)@#szdgeu`YuryP;h!~fATe^_U z7M<7?qp71OK512WVR8|NOZ3=r4tUBg?-tEcrB}R_ynQrW7u~gF+V zz9V)9ZyH}zk2$5y1Xd;Dt<}?c;$we2neJ_4bYS`mcL3I!Y6$j=teWHEVpwt9ykkpTN@<=NXYsOF~WY%MDIDNdom|V@huo53?cKUb0hWv05^!VtACn z&8$1e!nK=`uvCW6RGR+YpcS&pCJN*kE1x{)!FWBxWa_tlbwoWKeAZ(d6v+nRgmw^} z>+-gGu|=|*Pp2F@I#-0>KxU7-sa)mmL;Lc*=es*Vg8F_>a^Hnxn{I9C6-RB#4=h5e zvzWV+QW|L=B4IRyH6cd|c-Vf0$b(-*mD{}3*bmBATYrpVCvzr}cydLCN8WZ|)zRw* z8LjHUMF5k+PpQtXtKS=pxv*7pd#ScnW!hGsT8eFZH~jR8<~|}Dg*yYkLp{7mVdt3d z(&yqPJ;U%Y{rp2E3(^-+no?h%`Gtq{UBvoj2jy%E!Br4xaYpmRqt{N9TnSbF>G7%gy9e{S~wC1UdLNtpi@ zfiSVM|6gj4wiwcJ7m<(8h)@3#g9%_WEkEI8;w#__=z1{mCFc9jZ6x>LYLm(VEh>`~CX5N2vRG z!0S7C5$93049ov{_xsc1EA4FX{)Vdb;HZcH^YdW4yELhkznWCyjOXFxwJ!VfImOrK zc4YsE3c(jU z&yVo#ad*9Bx~b3>^Ye}EGGdQobMJkLZ)$~Wi(7}*GVMZNZLiD|n~+Dx`pnI72o7(c zWwMK7}bK6+7vS*H$0$Y0_O>%X7^?EzU0ZL*{f#J0u;~(G5NYTmr;>?149& zsSC;N%qw+=?s6)-vTM0ydR>p9oqgsBkIK_8Ls)Z|u4(gp8(tvU{L=+I9uyJceBTl4 z{yK(Y6N7Fg2FYsJZ*9HfDFS>?Gpg62Cse1S*n|Jx;iKkbL&2Dgm0>~hYELs(m3fQH zaF}c}mJ|e|_q7!t_Y%Km2^pB#OeEAvWoXVc*~m>~WSh;V93jJQvl{Q{L%@Ov8Dy}? zEwUS2CqcFw%r03Ul!_tS`p_%97kt^j^C0}s?$MYOaNV_GQ5_#0G02NqUQ$N@n_&6P zIv2PyJiTNu7xuwU5SUd z8tOk>zDV7q)*x)qUFnCT*g>0tR>zYwx6Op}dL&4vI^+X$Tqo7NvQNq_N}j5$=qwNC z?XEEMsSua&0Z;H@Y+8J4XijTXbr1Ax;0t}vD$y>a!scmES|ZXiJel}2=bor0$ZCXU zbsc3U@b#1WPkQ6XdBr501So5nuyST>$^QM|ChRLw`sn%6s3t9*es4xl<7dQ+p3G1S zuUr5fIaS3w&*kMJleQH&1FegqpewThYK{Ohm@5{uVF>-Wg9{@y7{Mj;MEVdREb&59 z;Gczu>3+U@CpCVx7-5M!x+-Mo4uE6m;!$3}n$qUM-jeEE&mtUV@=)LJ9eVS`?cGva zHwq+(FNh-#6=sIndaB=59$_Q++V9`=v5&H@st4lwON^%7t{q0tSWr|w)0Sc`meTi^x^0SDS@TUu^!YpAV zG~nJFw!0P4dqy-QX*|0|UaB`R9~dqY?Y)`ZO3TH5))_260h2L83;;?HEhs`ogZ{+k3C+I0L$JyKb+GY2DXnUvNT%vYeJGO1x=8R`-+qP}nPG;=9v2D)S zwr$TOJKy?G)~edI_kXfa`napQdh{55J@<9zMxt}o3raJ|8~oA$|2&zx6!vvmJ+oS` zsB~s`9f6#N7*JZOs=qCfaZm(tQMCbz&j68fn>UYnuo0&l(y{r76TluQJ)8Ydb=Kiv z8x`!VlQrY(TfETb3fVx70U)XMP2(>-b6+yqtnBrB*#+%*&FS8oO-6F;=YrC1gfaaM z$G>lbNQDzlNndCg5gG?$SySPJdxz@z6;p)eOrsm?fCWiLR=tq%QK}{#bOOrw{8?8t z0D(lvFc{}ZV%_WtrZrF}65y?z&Y2TN>3{!R_j5mKPHk&F%kcs5I4V0!VnBTPRWuip z^9)h`NTxUmQn2V|0@QDweG1q13^2S34T9!KW@4T`iVR?116V{(3CZ{=UP`f`3^7$W zkl;*3&qSGQ^I>Fa#<-{AT+}H}??|o#Kc+EnRL2~&ppcwsrMA-y6cW*wqe32F_RS@` z8iKAUS1`o&X{pn=pAuA|8+xb?HZ0OfS9$9v z>MEAyrPqndL&#+L@N4QZoIkL3SC~Q?-Cw-57cBNdYo3_&Gmr`@cqUQE#`#oh|FO0mh5_!Hbbi;~#^|@xVux$b9;5H+t+8B5c1%tF{56WKN3;2)1({t~J^qg&LyLf>de+FwLL0`b`8j=G+Csg># z?{cyh9BMnl4RxW?^iB(42`3GqSx_5Nj!@wHM;a+umvWdYmJSITQQu7XuBxe0FNI{; zyM60j=>T@M$x_zpY|xtdWNn#WQ_nHc>1qa(K>pGXDpKlWkiMmCcW_o6(kWL=i_xWH z>85In)P%=p5Lp7mF~{G9-Z_g+VZ#Fz$=R8-l|m)A7|NTIBN@SwjHPjBXs-{>Ua(q{VrSQoNnqE*QZBd&GA03p5cP|G~D zcEiNs60Q$ZL5i@LHLJ*UxqFBT7%Mzs$;gJ4)@Lc42Pb(lThL#}1PNtAJ1jMMcp=m+ zNJpTO!q&Zg=!%ADX(1k|O&M?99xAsiSa)W5$s|()KqtkF6Jh&eIAibaaAY*x>DrT( z;wp1};>&|L+ZpAV6C_(z76JqzSY^(EpJ9GKf`LRxQ+cz>C{VSSY9)E84ZwNWHV~lM z6aCrL!9cfO`%Kr`i$caOzT3?qz!Zac;US{_Ot9zfCLAX-@nI4?pb8K}8ufhOE}yVm zND=ySVmp?@HB%s!q?fG=te=|R+>t>Cn`H7>2M{|D@$yF{BM0x-pTQ-2C}%u_FdCB<7iHXTzbQ6O1HHjM_R!OaQHst42^?q-Wd_0%wpHD*1l}QWIPuno&UXD z;w*3>P4v5j)<1B0Jf<*1m((6OHDLIreBas=Z1xC~rQ|0pqWvYlEzt=-mpOh4_xB=U z)x1i~Q}}3|-j7qpz8+A3GoXxqj@9@p+ijr1v5_(0RaS-0XSGoR%tIT3N*O zU~|W7DCM0x_H1R09CB++BJg76rW%}?b4Q?FMHQ{tbJRt?=D;R@}H~a zkbvbKuZ>Td=kKpMawge>B&`fuvJk;>0p(=2C9gTs{4WAtw?<BN@2aa zOEGh!|0~_mZU+S=CTbXMDr;sGOR+MSh2a>#i%?rdj`Sc2&L;_` zF;KO8S`xF_)@(erPrODgQ3WoE<#S$wRu{K8(*^#wd-OS(xXPc+&)a6KL?jNvk{$zT zbFeJH;U#_m`xgy%5brCBh7FEKfRuR&t&7pG*X-?`p>?sM~%zzBS0o{D~> zLvHpv2UNK;Qu0Rlb9)CDi;vVUX+!JnLr-3!hVehyYB-6Ea;xAIL_&5UfCqu?GfJXv zNj&ELS|r>y^?AwDrG_Mpw=JKnuh4{#%uJ@|oncji18)uAj0R;^Uoe#2~oNezcd!g?3_oh zDc*;-g3+(+XEJOFbROXaBe+gMUjkRS{>ComHwsc2ImW=BW||#azl@#!?3ulkErB;Y zrtOgEbw`oD=n>ddRZKa+k@5SvW_*6QUIWSMoMJikxARs=R?Lg~ZB~&Dq?01i^g1fB zx6t$@aGNyId0$oa5A281UQJu-8x_Ips%c!%-6Uz?@gAMF=dECls3UnOju=YA#GqMG8fxk`kX2c_ zgK2;HH-EJ-yH7jcrMe9*A|=bpZQf(-pz-g@H7DkRFkofQnh`M1bo6bzr|q{kAk2r) zdg5K`#&j}65vRfMB;ktyFkH{2*zKLxX8B2qs5969vswyz$k{yL$QCW_NXl!*l!G=L z*MOx89_$9ppVVyrwCyH_h$$af(T+2jsDrfiH)Y~^S}pCnS6QACPqC>Q1TlCWdR?k> zPa=?w{mXGcFn2(79{QkB41yasN^nYf1D~Fp62EM?BK=@0?isb^w zshGq0^m-#yUu8x4GTEV^cx8mrdP7GCcd#B&(LouVeP{&2bvnP5`!7GcS_Zh&arj!> z?V;F+;dg3AF50>vmec}BrK_pL-m06=66H-B5i)VUVNGxC?;W-!0bI%HUZV3BD2O6YG&*i{6MpUx$haexN zg?P^SE#xcFGXmIM{Yzs6Ux0~ss_JN>D$fG0%%OxB4c4^}Ot!)6)hrS?3DPl0DiDqp z+BuX3@}!pTn|5wO{@b@SZ-S-XtOU#G_IZ9TQ3wUOdrEKPRsH@F^^8{+yI8F^5G#6K zj+nDJ&BRdV#}3b#;CA}Cf3nzsOYV!jk>RZ5G4#BsfQL#X=lh~ z7A?xY1loWb%Ybz;=LV-h-OZYIIc;WPL|9XFZe28MOyt4O$jr{>1(D59h(%v>RlEnJ znqbn&Z>9ShJpV#d9fyB=_|fGUK|eQuNeh$Uk*;Isy~3^}+qa2eGy5VD;EL#CI9cDlM5T#!wq;`VS1SLX2WDUBRz z2HKSq*TY)~Wv3>bkrkQ6nSy+Baw5Fy<4Z?GSL|Qj=*iBksk3H>a~~eCjpEY*VyO2} zz~z6}(@_9Km(M<;1BKzSZhZMM2^m}u^>y`_x(Thw4GGQb!>a~7iXauN$8a(B;LX7+ z>PXU8x4$Y3VlFq$xOD*F5wO}>*cnM@Au>~-H-ONP3jUkDpT|jVzHFC6vA|&Uu-r!R_XuqR6}F4grlb`JsD~-{(!1; z>Zc_iL%Yqx10TBrt&X^S3eeE*$tVo|?2?Ri=59o%FYJ(XeHje}008cVQd77M> z0F5G*bfg0bu5_Dw=u~EI#Rm#00|9lPqD>np!cZ=CU|zt?PB3jAC<_dn&8-lrF=h;uAQ z`8r{=gY4+DGjl<&^7|(1rUx0ygMH%g*T?ZvsyhhKP;vR~F|odL-B9o2OO^U4WJuq5 zd+CI0*i~(vWYnZKCM}i+<$IhKDZP(Gg+=xn=9k%h=v2-E-OW4=>a=V!Y~c<}A<{|? z2d9!*{9S&VV!8WM+y~+-o-zOB=+_JdQU`rb<3#NnmW^h!Z~rI)Ul_W*ibgO|Go0?C zghw!8gVXWd3`jIvyS_5Zfu^I&v`Wsas1@_)f~x0D&d9xCrp8=C(g-EyxW`1Z!VwQr zFQqN<r|Q7Ccj2R>C%n zfl91i2=+D(({0H%Hjdg{o(i3aWTLhZDc9{Txu;$;edulGdolCivs^U27%v#8g%z+Z z?Rr%$2d<@LZ^(VLVnC#ERG2@U3YmQ~mI~J`tl+89*rN0)yy_HzuK}IQu1(7Qdzdpl zw(;>Q3q~d^Sxf7$zr`@%v!$^hMrg^tPUnllo$TqR1GC6n7SXg5%SMFC9v@u1&CX>; zxeU?lqIReGckh6*sIS>2%4Y3pQL1ZEAM5Zr?$9<|HD^eK1JbUHlX7IR$=sH_UnP%_ zD%cUp{(LU5CQj1_o0@7kEB+K!zj=0ES@e=3nnFqIl&i|o8<$A8b*YOa7VR!2j+BJqX*a9zIV8g^< z-HtzU$F|VC(c-$_&v064RL3jZ^g7Oz9d7FlB)l?d499xdnH>`Ahgr}>Fs`qLh=;?!86+V~J*L)kRC zy;Cgk!n)gS^D8LHt5hD?plmeiDFcL?QwHDrL)L0>Jx!!D>Vn*sOboo5m}7etqWM}E zl&`SdQuQLIxY9%#U55x@n}ox<6YJDB@XLA4)vsfmW|`2b@sD{%xW*qWu6lZstkHcY zYWMv>{9|kK{6v*vp)$hl47uX8_Bmf; zFORv$qA+W`U%`lkh2_`e)RbT6g5~wu*9&`&63+MAe<7KlruDBMB=dn{@AdhEWIm4W zKYx(S=MR#(|I>TyCe^+C5qk6eK<>ZAf9%KH?f2L6?e6BK*Z*y%w^Ze#^+Rf&N8Y!? z|MFJOei^B&E5;ochyuM_Ea z>9}d^J<8TTw+^ldVAwr;{FU2cR(g-Ee_t`sVX-5%r#+&1^m1*?VRC)^%^7T@dp9Hm zHa9;!-Uh0%F@n+u_=9{*$@CE(vH6Y5YDP%V85Kv}tIUmq{6JA-Cay{47aiBy`1&ZR+1(iRHWCy*KAijeetr?^=l1x&ZH$hUE6GdiuDHGv7u_$JqP-fJ z6n0RdJ}JVa-T`6Suwk&^p0t|t=3iA7vg%*O2+_1c>jWm}-y?kJ+-iHGv3jQLnUeW> z&bM-DtbjZZO~*_yke;~P(5Aqa96Y?%XP;Lb$UjL^JM>G((9~_oNWFxlw}JDu=&sP8 z3MS6``i!=KA>gd}`9vqC;*t%&7W3}JbJmLWuItKxk^xn3s>q0R+T4voM%Q)ZmcB6z zoc|;U%?LVn>K;gDHXY(Jt-y=mw=2g z95ldQhO5@Pr3xR8AX6`W5kvzUbUfH#8VgWC%_HIz^2>!h`JEqq>3gFa$~w~RBCzWs z{svNp=Zv4+nhET)?9mqHvmLYg7jvzCv-#hGBw@&wGAq)uq= zH1(!Z_Tm5bR40IZl%*CT2c&aoSk^^Xiq0BspO>_vT&e92uhY&p^`W}N%h6h%R1y-xmqWD(#CmAJOsBXxsXwVyrWeys1st$w zqH(M`$n(n$Xpu8s-AX3nn1C9La~$m!o`4(#bvqJonO%nuGOzEMM#l2qj1^`Ul?||M z+=fYVquD)ly99zFvSp(5VAH$w>zBB_aM@I!?nn;;C#3(`$?l-ihNb59_meudD@7f? z{J^8^EOH7Rv&;OdDg-i+1Ilom2GOs4RZ&U?^$d%HJNWu}(RfxrK&bjq>s49uzDP~u zJgpJ$V8l(~y74{b&KT;Tz3RspP?8-uD^tVzYrqN`{ASkpWv7hB^58%VCtIkQN{4)@Zh>4@oIp)ykP0)NZp&&rsJVThWmy}a=`}{XOkpmnCs;N4TnJRb+=f^(MGIk+*_W(f7h5t00^GchZiSu+3rUN2W%;2WqbxD7i+ zU4$OUvFbCvYpc!4O&lUL3XQ#S-Ts*aqa;)6GE7!q-&o0!ZdPrm5to-P^o|O)Q|Vy4 z!Y4Y)l-&E#HM9#S8b&Z#UJh_lRH#y(4TVGY*nKy2=~oun7&E2rQ8^@HX%7g7{Vig5AL@PZgg*l3B)b15J)i{o?5bU|yn zn707nMtl#rj7-+-zi@4qOCtN&$@XAetskfRac5e2=+QMVjB&z|X6MOPhgiSEuQ>?? zz}exD%+01wE&7Y=rcV7x?nd}7i#5(=zWY>PDBN6K@VdZ*p4M{eMSU;1W@LUDIu12v zy0>SJflLc8!Ud6%y_hFk42RC+2D#_;5_kw+eD1v2iT8wg2DqJKm#KBF%el?)U(zf% z$VDA@B!!9r#gf6<(dj;_M+NQSYt3?iC}2t7mAgm2!EJ&Z@r^tRnw5`p6R7^AuYjlAvS@7XFoZfyqVB;UBan|l6hygb(o=z}2 zQwPfD^*DvmTHf5RTN;BW)Gt>92`-t68{WIu%u`EOSW1F1v&0coOY_H)7~XR4BdnLCp~P+Ev2 zwnvf5@4D`)$3IV}IajOmTiwm+Pq2tTA(5CQik`AIA`>+HJhPfZiI6w!x?$Z}74R-W zl6hZsFLals9tJeypHaFFtt}|Qz(Eh2OqVIBO0*E?0ndPk-Ow!)Oqn^1kFgwRO>ashs*khG& zB`vrxRS6hz^XFM(A=C&}Qr0VESg~0k2qA0A0M(F@1gi&X({ZKSQa&HY;06K7Og|}_ zJ|V?`Rv6R;0C$6$==_ru=kh2!$KDM3≦TI_lZHLrT4BKsK-pv4r1irw}>DBO~w) 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

    B5Lbg*gsg2Te2HWotUgTcCUb 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

    94;3z2_UNIq6bO&onOnge1V@^L#Lz~B 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

    Sq^pv2E=bmz>MA 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

    3Vr?0xI+B(?k< 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 z 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 z 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

    ^n-l)yH1M^_U9}HR>J0s>3 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 literal 0 HcmV?d00001 From 91f27ffbdcd69207cf5cb224989478b7f87c61bf Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Thu, 1 Aug 2024 09:53:16 +0530 Subject: [PATCH 50/57] MOSIP-34878 Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/e2e/methods/UploadDeviceCertificate.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java index 6ed5441f2..4c9d5aafe 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java @@ -50,9 +50,13 @@ public void run() throws RigInternalError { } } catch (IOException e) { e.printStackTrace(); + this.hasError = true; + throw new RigInternalError("Unable to upload device certificate "); } } else { logger.error("File does not exist: " + p12); + this.hasError = true; + throw new RigInternalError("File does not exists"); } } } From c827565406bd69cf5f3b753b3f0dc97d06bd5a33 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Thu, 1 Aug 2024 13:17:03 +0530 Subject: [PATCH 51/57] MOSIP-34765 Signed-off-by: Pankaj Godiyal --- .../ivv-orchestrator/src/main/resources/config/Kernel.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties index 1b71e786f..2a6212c7e 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/config/Kernel.properties @@ -241,6 +241,7 @@ mosip.test.persona.locationsdatapath=/profile_resource/location_data mosip.test.persona.namesdatapath=/profile_resource/names_data mosip.test.persona.facedatapath=/profile_resource/face_data mosip.test.persona.documentsdatapath=/profile_resource/documents_data/templates/ +mosip.test.persona.largedocumentpath=/profile_resource/documents_data/ ##neeha added below mosip.test.persona.templatesdatapath=/profile_resource/templates_data mosip.test.temp=/packets/ From 587aa3ff2564edf79e4e5ea5333cf14e0917b3db Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Fri, 2 Aug 2024 13:53:34 +0530 Subject: [PATCH 52/57] MOSIP-34878 Signed-off-by: Pankaj Godiyal --- .../dslrig/ivv/e2e/methods/UploadDeviceCertificate.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java index 4c9d5aafe..0f4301b9d 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java @@ -34,7 +34,7 @@ public void run() throws RigInternalError { Response response = null; String url = baseUrl + props.getProperty("uploadDeviceCert"); String certsDir = System.getProperty("java.io.tmpdir") + File.separator + "AUTHCERTS"; - String p12 = certsDir + File.separator + "DSL-IDA-" + propsKernel.getProperty("db-server") + File.separator + "device-partner.p12"; + String p12 = certsDir + File.separator + "DSL-IDA-" + ConfigManager.getTargetEnvName() + File.separator + "device-partner.p12"; File file = new File(p12); if (file.exists()) { @@ -56,7 +56,7 @@ public void run() throws RigInternalError { } else { logger.error("File does not exist: " + p12); this.hasError = true; - throw new RigInternalError("File does not exists"); + throw new RigInternalError("File does not exists: " + p12); } } } From 9a82263a7f9838bc8b5cb42c2c77ddad7d425030 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Fri, 2 Aug 2024 17:01:47 +0530 Subject: [PATCH 53/57] MOSIP-34878 Signed-off-by: Pankaj Godiyal --- .../e2e/methods/UploadDeviceCertificate.java | 84 ++++++++++--------- 1 file changed, 45 insertions(+), 39 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java index 0f4301b9d..bf2fef9e7 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/java/io/mosip/testrig/dslrig/ivv/e2e/methods/UploadDeviceCertificate.java @@ -20,43 +20,49 @@ @Scope("prototype") @Component public class UploadDeviceCertificate extends BaseTestCaseUtil implements StepInterface { - public static Logger logger = Logger.getLogger(UploadDeviceCertificate.class); - - static { - if (ConfigManager.IsDebugEnabled()) - logger.setLevel(Level.ALL); - else - logger.setLevel(Level.ERROR); - } - - @Override - public void run() throws RigInternalError { - Response response = null; - String url = baseUrl + props.getProperty("uploadDeviceCert"); - String certsDir = System.getProperty("java.io.tmpdir") + File.separator + "AUTHCERTS"; - String p12 = certsDir + File.separator + "DSL-IDA-" + ConfigManager.getTargetEnvName() + File.separator + "device-partner.p12"; - File file = new File(p12); - - if (file.exists()) { - try { - byte[] fileBytes = Files.readAllBytes(file.toPath()); - String encodedBytes = Base64.getEncoder().encodeToString(fileBytes); - response = postRequest(url, encodedBytes, "UPLOAD_DEVICE_CERT", step); - - // Log the response - if (response != null) { - logger.info("Response Status: " + response.getStatusCode()); - logger.info("Response Body: " + response.getBody().asString()); - } - } catch (IOException e) { - e.printStackTrace(); - this.hasError = true; - throw new RigInternalError("Unable to upload device certificate "); - } - } else { - logger.error("File does not exist: " + p12); - this.hasError = true; - throw new RigInternalError("File does not exists: " + p12); - } - } + public static Logger logger = Logger.getLogger(UploadDeviceCertificate.class); + + static { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + @Override + public void run() throws RigInternalError { + Response response = null; + String url = baseUrl + props.getProperty("uploadDeviceCert"); + + String certsDir = System.getProperty("java.io.tmpdir") + File.separator + "AUTHCERTS"; + if (System.getProperty("os.name").toLowerCase().contains("windows") == false) { + certsDir = ConfigManager.getauthCertsPath(); + } + + String p12 = certsDir + File.separator + "DSL-IDA-" + ConfigManager.getTargetEnvName() + File.separator + + "device-partner.p12"; + File file = new File(p12); + + if (file.exists()) { + try { + byte[] fileBytes = Files.readAllBytes(file.toPath()); + String encodedBytes = Base64.getEncoder().encodeToString(fileBytes); + response = postRequest(url, encodedBytes, "UPLOAD_DEVICE_CERT", step); + + // Log the response + if (response != null) { + logger.info("Response Status: " + response.getStatusCode()); + logger.info("Response Body: " + response.getBody().asString()); + } + } catch (IOException e) { + e.printStackTrace(); + this.hasError = true; + throw new RigInternalError("Unable to upload device certificate "); + } + } else { + logger.error("File does not exist: " + p12); + this.hasError = true; + throw new RigInternalError("File does not exists: " + p12); + } + } } From 6029bb4779a2c3d721c73f4e441add6d883f2a61 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Fri, 2 Aug 2024 18:58:56 +0530 Subject: [PATCH 54/57] MOSIP-34878 Signed-off-by: Pankaj Godiyal --- .../testrig/dslrig/dataprovider/BiometricDataProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java index 9f23ef729..dc7e03bc6 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java @@ -259,7 +259,7 @@ public static MDSRCaptureModel regenBiometricViaMDS(ResidentModel resident, Stri p12path = Paths.get( VariableManager.getVariableValue(VariableManager.NS_DEFAULT, "invalidCertpath").toString()); else - p12path = Paths.get(System.getProperty("java.io.tmpdir"), VariableManager.getVariableValue(contextKey, "db-server").toString()); + p12path = Paths.get(System.getProperty("java.io.tmpdir") + File.separator + VariableManager.getVariableValue(contextKey, "db-server").toString()); RestClient.logInfo(contextKey, "p12path" + p12path); From 4f30a5a245dd88d450ce041c0f759e264564e5cf Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Mon, 5 Aug 2024 16:56:05 +0530 Subject: [PATCH 55/57] MOSIP-35064 Signed-off-by: Pankaj Godiyal --- .../ivv-orchestrator/pom.xml | 40 +++++-------------- 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/pom.xml b/mosip-acceptance-tests/ivv-orchestrator/pom.xml index 78285c4a0..abbbc2c2c 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/pom.xml +++ b/mosip-acceptance-tests/ivv-orchestrator/pom.xml @@ -129,50 +129,30 @@ - - io.mosip.esignet - apitest-esignet - 1.2.1-SNAPSHOT - + io.mosip.authentication apitest-auth 1.2.1-SNAPSHOT - - - io.mosip.idrepo - apitest-idrepo - 1.2.1-SNAPSHOT - - - + io.mosip.masterdata apitest-masterdata 1.2.1-SNAPSHOT - - io.mosip.mimoto - apitest-mimoto - 1.2.1-SNAPSHOT - - - - io.mosip.partner - apitest-pms - 1.2.1-SNAPSHOT - - - io.mosip.prereg - apitest-prereg - 1.2.1-SNAPSHOT - - + + io.mosip.resident apitest-resident 1.2.1-SNAPSHOT + + + io.mosip.esignet + apitest-esignet + 1.2.1-SNAPSHOT + com.slack.api From ac849e68c6db7ddf11eda4833c266ff9d7f65f68 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Mon, 5 Aug 2024 16:59:23 +0530 Subject: [PATCH 56/57] MOSIP-35064 Signed-off-by: Pankaj Godiyal --- .../testrig/dslrig/dataprovider/BiometricDataProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java index dc7e03bc6..9f23ef729 100644 --- a/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java +++ b/mosipTestDataProvider/src/io/mosip/testrig/dslrig/dataprovider/BiometricDataProvider.java @@ -259,7 +259,7 @@ public static MDSRCaptureModel regenBiometricViaMDS(ResidentModel resident, Stri p12path = Paths.get( VariableManager.getVariableValue(VariableManager.NS_DEFAULT, "invalidCertpath").toString()); else - p12path = Paths.get(System.getProperty("java.io.tmpdir") + File.separator + VariableManager.getVariableValue(contextKey, "db-server").toString()); + p12path = Paths.get(System.getProperty("java.io.tmpdir"), VariableManager.getVariableValue(contextKey, "db-server").toString()); RestClient.logInfo(contextKey, "p12path" + p12path); From d65103da6c99855a42d8e1e751e26ad1ba2f1266 Mon Sep 17 00:00:00 2001 From: Pankaj Godiyal Date: Wed, 7 Aug 2024 12:13:32 +0530 Subject: [PATCH 57/57] MOSIP-35104 Signed-off-by: Pankaj Godiyal --- .../RegistrationCenter/CreateRegistrationCenter.yml | 2 +- .../ivv_masterdata/RegistrationCenter/registrationCenter.hbs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/ivv_masterdata/RegistrationCenter/CreateRegistrationCenter.yml b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/ivv_masterdata/RegistrationCenter/CreateRegistrationCenter.yml index b055b5b10..2774b6b04 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/ivv_masterdata/RegistrationCenter/CreateRegistrationCenter.yml +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/ivv_masterdata/RegistrationCenter/CreateRegistrationCenter.yml @@ -29,7 +29,7 @@ CreateRegistrationCenter: "zoneCode":"", "id":"", "isActive":"false", - "numberOfKiosks":0, + "numberOfKiosks":"1", "exceptionHolidayDate":"2021-11-12", "exceptionHolidayName":"", "exceptionHolidayReson":"", diff --git a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/ivv_masterdata/RegistrationCenter/registrationCenter.hbs b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/ivv_masterdata/RegistrationCenter/registrationCenter.hbs index 3a07c3ec2..51464a491 100644 --- a/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/ivv_masterdata/RegistrationCenter/registrationCenter.hbs +++ b/mosip-acceptance-tests/ivv-orchestrator/src/main/resources/ivv_masterdata/RegistrationCenter/registrationCenter.hbs @@ -10,6 +10,7 @@ "centerTypeCode":"{{centerTypeCode}}", "contactPerson":"{{contactPerson}}", "contactPhone":"{{contactPhone}}", + "numberOfKiosks": "{{numberOfKiosks}}", "holidayLocationCode":"{{holidayLocationCode}}", "isActive":{{isActive}}, "langCode":"{{langCode}}",

    >@|=a~0uwcsZuz; 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%0D5^Wr1+j`5d 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