From d70be1032d8e19a546f77bfd078c02ed03c7f598 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Tue, 11 Sep 2018 13:28:49 -0400 Subject: [PATCH 001/241] Workflow enhancements --- .../iq/dataverse/DatasetServiceBean.java | 4 +- .../impl/AbstractPublishDatasetCommand.java | 4 +- .../FinalizeDatasetPublicationCommand.java | 15 ++- .../command/impl/PublishDatasetCommand.java | 5 +- .../iq/dataverse/util/json/JsonPrinter.java | 4 +- .../workflow/PendingWorkflowInvocation.java | 13 +-- .../iq/dataverse/workflow/Workflow.java | 10 ++ .../dataverse/workflow/WorkflowContext.java | 28 ++++-- .../workflow/WorkflowServiceBean.java | 98 +++++++++++++++++-- .../workflow/step/WorkflowStepData.java | 15 ++- 10 files changed, 147 insertions(+), 49 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/DatasetServiceBean.java index 6a4bb46833e..c1cba6dec31 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetServiceBean.java @@ -725,9 +725,7 @@ public void callFinalizePublishCommandAsynchronously(Long datasetId, CommandCont } logger.fine("Running FinalizeDatasetPublicationCommand, asynchronously"); Dataset theDataset = find(datasetId); - String nonNullDefaultIfKeyNotFound = ""; - String doiProvider = ctxt.settings().getValueForKey(SettingsServiceBean.Key.DoiProvider, nonNullDefaultIfKeyNotFound); - commandEngine.submit(new FinalizeDatasetPublicationCommand(theDataset, doiProvider, request, isPidPrePublished)); + commandEngine.submit(new FinalizeDatasetPublicationCommand(theDataset, request, isPidPrePublished)); } /* diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractPublishDatasetCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractPublishDatasetCommand.java index 0e9712777a9..2a753c17c23 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractPublishDatasetCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractPublishDatasetCommand.java @@ -17,8 +17,8 @@ public AbstractPublishDatasetCommand(Dataset datasetIn, DataverseRequest aReques super(aRequest, datasetIn); } - protected WorkflowContext buildContext( String doiProvider, WorkflowContext.TriggerType triggerType) { - return new WorkflowContext(getRequest(), getDataset(), doiProvider, triggerType); + protected WorkflowContext buildContext( Dataset theDataset, WorkflowContext.TriggerType triggerType) { + return new WorkflowContext(getRequest(), theDataset, triggerType); } } diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/FinalizeDatasetPublicationCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/FinalizeDatasetPublicationCommand.java index fd998b47e70..35651a8f832 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/FinalizeDatasetPublicationCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/FinalizeDatasetPublicationCommand.java @@ -41,19 +41,16 @@ public class FinalizeDatasetPublicationCommand extends AbstractPublishDatasetCom private static final Logger logger = Logger.getLogger(FinalizeDatasetPublicationCommand.class.getName()); - String doiProvider; - /** * mirror field from {@link PublishDatasetCommand} of same name */ final boolean datasetExternallyReleased; - public FinalizeDatasetPublicationCommand(Dataset aDataset, String aDoiProvider, DataverseRequest aRequest) { - this( aDataset, aDoiProvider, aRequest, false ); + public FinalizeDatasetPublicationCommand(Dataset aDataset, DataverseRequest aRequest) { + this( aDataset, aRequest, false ); } - public FinalizeDatasetPublicationCommand(Dataset aDataset, String aDoiProvider, DataverseRequest aRequest, boolean isPidPrePublished) { + public FinalizeDatasetPublicationCommand(Dataset aDataset, DataverseRequest aRequest, boolean isPidPrePublished) { super(aDataset, aRequest); - doiProvider = aDoiProvider; datasetExternallyReleased = isPidPrePublished; } @@ -87,7 +84,7 @@ public Dataset execute(CommandContext ctxt) throws CommandException { // comes from there. There's a chance that the final merge, at the end of this // command, would be sufficient. -- L.A. Sep. 6 2017 theDataset = ctxt.em().merge(theDataset); - + setDataset(theDataset); updateDatasetUser(ctxt); //if the publisher hasn't contributed to this version @@ -135,9 +132,11 @@ public Dataset execute(CommandContext ctxt) throws CommandException { new RemoveLockCommand(getRequest(), theDataset, DatasetLock.Reason.InReview) ); } + final Dataset ds = ctxt.em().merge(theDataset); + ctxt.workflows().getDefaultWorkflow(TriggerType.PostPublishDataset).ifPresent(wf -> { try { - ctxt.workflows().start(wf, buildContext(doiProvider, TriggerType.PostPublishDataset)); + ctxt.workflows().start(wf, buildContext(ds, TriggerType.PostPublishDataset)); } catch (CommandException ex) { logger.log(Level.SEVERE, "Error invoking post-publish workflow: " + ex.getMessage(), ex); } diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/PublishDatasetCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/PublishDatasetCommand.java index 4433b23cefb..6e6d03f99ca 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/PublishDatasetCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/PublishDatasetCommand.java @@ -81,11 +81,10 @@ public PublishDatasetResult execute(CommandContext ctxt) throws CommandException } Optional prePubWf = ctxt.workflows().getDefaultWorkflow(TriggerType.PrePublishDataset); - String doiProvider = ctxt.settings().getValueForKey(SettingsServiceBean.Key.DoiProvider, ""); if ( prePubWf.isPresent() ) { // We start a workflow theDataset = ctxt.em().merge(theDataset); - ctxt.workflows().start(prePubWf.get(), buildContext(doiProvider, TriggerType.PrePublishDataset) ); + ctxt.workflows().start(prePubWf.get(), buildContext(theDataset, TriggerType.PrePublishDataset) ); return new PublishDatasetResult(theDataset, false); } else{ @@ -125,7 +124,7 @@ public PublishDatasetResult execute(CommandContext ctxt) throws CommandException } else { // Synchronous publishing (no workflow involved) - theDataset = ctxt.engine().submit(new FinalizeDatasetPublicationCommand(ctxt.em().merge(theDataset), doiProvider, getRequest(),datasetExternallyReleased)); + theDataset = ctxt.engine().submit(new FinalizeDatasetPublicationCommand(theDataset, getRequest(),datasetExternallyReleased)); return new PublishDatasetResult(theDataset, true); } } diff --git a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java index a9bc14d7ca7..08a6b299601 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java @@ -41,7 +41,6 @@ import static edu.harvard.iq.dataverse.util.json.NullSafeJsonBuilder.jsonObjectBuilder; import edu.harvard.iq.dataverse.workflow.Workflow; import edu.harvard.iq.dataverse.workflow.step.WorkflowStepData; -import java.math.BigDecimal; import java.util.ArrayList; import java.util.Set; import javax.json.Json; @@ -230,7 +229,8 @@ public static JsonObjectBuilder json(Workflow wf){ for ( WorkflowStepData stp : wf.getSteps() ) { arr.add( jsonObjectBuilder().add("stepType", stp.getStepType()) .add("provider", stp.getProviderId()) - .add("parameters", mapToObject(stp.getStepParameters())) ); + .add("parameters", mapToObject(stp.getStepParameters())) + .add("requiredSettings", mapToObject(stp.getStepParameters())) ); } bld.add("steps", arr ); } diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/PendingWorkflowInvocation.java b/src/main/java/edu/harvard/iq/dataverse/workflow/PendingWorkflowInvocation.java index b2f4171a190..121eaa2f1de 100644 --- a/src/main/java/edu/harvard/iq/dataverse/workflow/PendingWorkflowInvocation.java +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/PendingWorkflowInvocation.java @@ -47,7 +47,6 @@ public class PendingWorkflowInvocation implements Serializable { int pendingStepIdx; - String doiProvider; String userId; String ipAddress; int typeOrdinal; @@ -66,15 +65,13 @@ public PendingWorkflowInvocation(Workflow wf, WorkflowContext ctxt, Pending resu userId = ctxt.getRequest().getUser().getIdentifier(); ipAddress = ctxt.getRequest().getSourceAddress().toString(); localData = new HashMap<>(result.getData()); - doiProvider = ctxt.getDoiProvider(); typeOrdinal = ctxt.getType().ordinal(); } public WorkflowContext reCreateContext(RoleAssigneeServiceBean roleAssignees) { DataverseRequest aRequest = new DataverseRequest((User)roleAssignees.getRoleAssignee(userId), IpAddress.valueOf(ipAddress)); final WorkflowContext workflowContext = new WorkflowContext(aRequest, dataset, nextVersionNumber, - nextMinorVersionNumber, WorkflowContext.TriggerType.values()[typeOrdinal], - doiProvider); + nextMinorVersionNumber, WorkflowContext.TriggerType.values()[typeOrdinal], null, null); workflowContext.setInvocationId(invocationId); return workflowContext; } @@ -151,14 +148,6 @@ public void setPendingStepIdx(int pendingStepIdx) { this.pendingStepIdx = pendingStepIdx; } - public String getDoiProvider() { - return doiProvider; - } - - public void setDoiProvider(String doiProvider) { - this.doiProvider = doiProvider; - } - public int getTypeOrdinal() { return typeOrdinal; } diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/Workflow.java b/src/main/java/edu/harvard/iq/dataverse/workflow/Workflow.java index c72d5a67724..6c73ed0e64b 100644 --- a/src/main/java/edu/harvard/iq/dataverse/workflow/Workflow.java +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/Workflow.java @@ -2,7 +2,9 @@ import edu.harvard.iq.dataverse.workflow.step.WorkflowStepData; import java.io.Serializable; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import javax.persistence.CascadeType; import javax.persistence.Entity; @@ -63,6 +65,14 @@ public void setSteps(List steps) { } } + Map getRequiredSettings() { + Map settings = new HashMap(); + for(WorkflowStepData step: steps) { + settings.putAll(step.getStepSettings()); + } + return settings; + } + @Override public int hashCode() { int hash = 7; diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/WorkflowContext.java b/src/main/java/edu/harvard/iq/dataverse/workflow/WorkflowContext.java index 0cca2bd64a9..3edee57b17b 100644 --- a/src/main/java/edu/harvard/iq/dataverse/workflow/WorkflowContext.java +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/WorkflowContext.java @@ -1,8 +1,11 @@ package edu.harvard.iq.dataverse.workflow; import edu.harvard.iq.dataverse.Dataset; +import edu.harvard.iq.dataverse.authorization.users.ApiToken; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; import edu.harvard.iq.dataverse.workflow.step.WorkflowStep; + +import java.util.Map; import java.util.UUID; /** @@ -25,26 +28,27 @@ public enum TriggerType { private final long nextVersionNumber; private final long nextMinorVersionNumber; private final TriggerType type; - private final String doiProvider; + private final ApiToken apiToken; + private Map settings; private String invocationId = UUID.randomUUID().toString(); - public WorkflowContext( DataverseRequest aRequest, Dataset aDataset, String doiProvider, TriggerType aTriggerType ) { + public WorkflowContext( DataverseRequest aRequest, Dataset aDataset, TriggerType aTriggerType ) { this( aRequest, aDataset, aDataset.getLatestVersion().getVersionNumber(), aDataset.getLatestVersion().getMinorVersionNumber(), - aTriggerType, - doiProvider); + aTriggerType, null, null); } public WorkflowContext(DataverseRequest request, Dataset dataset, long nextVersionNumber, - long nextMinorVersionNumber, TriggerType type, String doiProvider) { + long nextMinorVersionNumber, TriggerType type, Map settings, ApiToken apiToken) { this.request = request; this.dataset = dataset; this.nextVersionNumber = nextVersionNumber; this.nextMinorVersionNumber = nextMinorVersionNumber; this.type = type; - this.doiProvider = doiProvider; + this.settings = settings; + this.apiToken = apiToken; } public Dataset getDataset() { @@ -75,12 +79,16 @@ public String getInvocationId() { return invocationId; } - public String getDoiProvider() { - return doiProvider; - } - public TriggerType getType() { return type; } + + public Map getSettings() { + return settings; + } + + public ApiToken getApiToken() { + return apiToken; + } } diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/WorkflowServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/workflow/WorkflowServiceBean.java index 4fc7eb63bd1..e215d2b54b3 100644 --- a/src/main/java/edu/harvard/iq/dataverse/workflow/WorkflowServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/WorkflowServiceBean.java @@ -2,8 +2,12 @@ import edu.harvard.iq.dataverse.DatasetLock; import edu.harvard.iq.dataverse.DatasetServiceBean; +import edu.harvard.iq.dataverse.DataverseRequestServiceBean; import edu.harvard.iq.dataverse.EjbDataverseEngine; import edu.harvard.iq.dataverse.RoleAssigneeServiceBean; +import edu.harvard.iq.dataverse.authorization.users.ApiToken; +import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; +import edu.harvard.iq.dataverse.engine.command.CommandContext; import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import edu.harvard.iq.dataverse.engine.command.impl.FinalizeDatasetPublicationCommand; import edu.harvard.iq.dataverse.engine.command.impl.RemoveLockCommand; @@ -15,6 +19,8 @@ import edu.harvard.iq.dataverse.workflow.step.WorkflowStep; import edu.harvard.iq.dataverse.workflow.step.WorkflowStepData; import edu.harvard.iq.dataverse.workflow.step.WorkflowStepResult; + +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -26,9 +32,11 @@ import javax.ejb.Stateless; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; +import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; +import javax.persistence.TypedQuery; /** * Service bean for managing and executing {@link Workflow}s @@ -56,6 +64,9 @@ public class WorkflowServiceBean { @EJB EjbDataverseEngine engine; + @Inject + DataverseRequestServiceBean dvRequestService; + final Map providers = new HashMap<>(); public WorkflowServiceBean() { @@ -86,13 +97,46 @@ public WorkflowServiceBean() { */ @Asynchronous public void start(Workflow wf, WorkflowContext ctxt) throws CommandException { - ctxt = refresh(ctxt); + ctxt = refresh(ctxt, retrieveRequestedSettings( wf.getRequiredSettings()), getCurrentApiToken(ctxt.getRequest().getAuthenticatedUser())); lockDataset(ctxt); forward(wf, ctxt); } + private ApiToken getCurrentApiToken(AuthenticatedUser au) { + if (au != null) { + CommandContext ctxt = engine.getContext(); + ApiToken token = ctxt.authentication().findApiTokenByUser(au); + if ((token == null) || (token.getExpireTime().before(new Date()))) { + token = ctxt.authentication().generateApiTokenForUser(au); + } + return token; + } + return null; + } + private Map retrieveRequestedSettings(Map requiredSettings) { + Map retrievedSettings = new HashMap(); + for (String setting : requiredSettings.keySet()) { + String settingType = requiredSettings.get(setting); + switch (settingType) { + case "string": { + retrievedSettings.put(setting, settings.get(setting)); + break; + } + case "boolean": { + retrievedSettings.put(setting, settings.isTrue(settingType, false)); + break; + } + case "long": { + retrievedSettings.put(setting, + settings.getValueForKeyAsLong(SettingsServiceBean.Key.valueOf(setting))); + break; + } + } + } + return retrievedSettings; + } /** * Starting the resume process for a pending workflow. We first delete the @@ -122,8 +166,8 @@ private void doResume(PendingWorkflowInvocation pending, String body) { List stepsLeft = wf.getSteps().subList(pending.getPendingStepIdx(), wf.getSteps().size()); WorkflowStep pendingStep = createStep(stepsLeft.get(0)); - final WorkflowContext ctxt = pending.reCreateContext(roleAssignees); - + WorkflowContext newCtxt = pending.reCreateContext(roleAssignees); + final WorkflowContext ctxt = refresh(newCtxt,retrieveRequestedSettings( wf.getRequiredSettings()), getCurrentApiToken(newCtxt.getRequest().getAuthenticatedUser())); WorkflowStepResult res = pendingStep.resume(ctxt, pending.getLocalData(), body); if (res instanceof Failure) { rollback(wf, ctxt, (Failure) res, pending.getPendingStepIdx() - 1); @@ -186,7 +230,8 @@ private void executeSteps(Workflow wf, WorkflowContext ctxt, int initialStepIdx try { if (res == WorkflowStepResult.OK) { logger.log(Level.INFO, "Workflow {0} step {1}: OK", new Object[]{ctxt.getInvocationId(), stepIdx}); - + em.merge(ctxt.getDataset()); + ctxt = refresh(ctxt); } else if (res instanceof Failure) { logger.log(Level.WARNING, "Workflow {0} failed: {1}", new Object[]{ctxt.getInvocationId(), ((Failure) res).getReason()}); rollback(wf, ctxt, (Failure) res, stepIdx-1 ); @@ -231,12 +276,36 @@ void rollbackStep( WorkflowStep step, WorkflowContext ctxt, Failure reason ) { @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) void lockDataset( WorkflowContext ctxt ) throws CommandException { final DatasetLock datasetLock = new DatasetLock(DatasetLock.Reason.Workflow, ctxt.getRequest().getAuthenticatedUser()); -// engine.submit(new AddLockCommand(ctxt.getRequest(), ctxt.getDataset(), datasetLock)); + /* Note that this method directly adds a lock to the database rather than adding it via + * engine.submit(new AddLockCommand(ctxt.getRequest(), ctxt.getDataset(), datasetLock)); + * which would update the dataset's list of locks, etc. + * An em.find() for the dataset would get a Dataset that has an updated list of locks, but this copy would not have any changes + * made in a calling command (e.g. for a PostPublication workflow, the fact that the latest version is 'released' is not yet in the + * database. + */ datasetLock.setDataset(ctxt.getDataset()); em.persist(datasetLock); em.flush(); } + @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) + void unlockDataset( WorkflowContext ctxt ) { + /* Since the lockDataset command above directly persists a lock to the database, + * the ctxt.getDataset() is not updated and its list of locks can't be used. Using the named query below will find the workflow + * lock and remove it (actually all workflow locks for this Dataset but only one workflow should be active). + */ + TypedQuery lockCounter = em.createNamedQuery("DatasetLock.getLocksByDatasetId", DatasetLock.class); + lockCounter.setParameter("datasetId", ctxt.getDataset().getId()); + List locks = lockCounter.getResultList(); + for(DatasetLock lock: locks) { + if(lock.getReason() == DatasetLock.Reason.Workflow) { + logger.info("Removing lock"); + em.remove(lock); + } + } + em.flush(); + } + // // ////////////////////////////////////////////////////////////// @@ -251,13 +320,15 @@ private void workflowCompleted(Workflow wf, WorkflowContext ctxt) { logger.log(Level.INFO, "Workflow {0} completed.", ctxt.getInvocationId()); if ( ctxt.getType() == TriggerType.PrePublishDataset ) { try { - engine.submit( new FinalizeDatasetPublicationCommand(ctxt.getDataset(), ctxt.getDoiProvider(), ctxt.getRequest()) ); + engine.submit( new FinalizeDatasetPublicationCommand(ctxt.getDataset(), ctxt.getRequest()) ); } catch (CommandException ex) { logger.log(Level.SEVERE, "Exception finalizing workflow " + ctxt.getInvocationId() +": " + ex.getMessage(), ex); rollback(wf, ctxt, new Failure("Exception while finalizing the publication: " + ex.getMessage()), wf.steps.size()-1); } } + unlockDataset(ctxt); + } public List listWorkflows() { @@ -350,9 +421,20 @@ private WorkflowStep createStep(WorkflowStepData wsd) { } private WorkflowContext refresh( WorkflowContext ctxt ) { + return refresh(ctxt, ctxt.getSettings(), ctxt.getApiToken()); + } + + private WorkflowContext refresh( WorkflowContext ctxt, Map settings, ApiToken apiToken ) { + /* An earlier version of this class used em.find() to 'refresh' the Dataset in the context. + * For a PostPublication workflow, this had the consequence of hiding/removing changes to the Dataset + * made in the FinalizeDatasetPublicationCommand (i.e. the fact that the draft version is now released and + * has a version number). It is not clear to me if the em.merge below is needed or if it handles the case of + * resumed workflows. (The overall method is needed to allow the context to be updated in the start() method with the + * settings and APItoken retrieved by the WorkflowServiceBean) - JM - 9/18. + */ return new WorkflowContext( ctxt.getRequest(), - datasets.find( ctxt.getDataset().getId() ), ctxt.getNextVersionNumber(), - ctxt.getNextMinorVersionNumber(), ctxt.getType(), ctxt.getDoiProvider() ); + em.merge(ctxt.getDataset()), ctxt.getNextVersionNumber(), + ctxt.getNextMinorVersionNumber(), ctxt.getType(), settings, apiToken); } } diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/step/WorkflowStepData.java b/src/main/java/edu/harvard/iq/dataverse/workflow/step/WorkflowStepData.java index 1e10d0ecb7b..a06531a2666 100644 --- a/src/main/java/edu/harvard/iq/dataverse/workflow/step/WorkflowStepData.java +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/step/WorkflowStepData.java @@ -38,6 +38,11 @@ public class WorkflowStepData implements Serializable { @Column(length = 2048) private Map stepParameters; + @ElementCollection( fetch=FetchType.EAGER ) + @Column(length = 2048) + private Map stepSettings; + + public Workflow getParent() { return parent; } @@ -80,7 +85,15 @@ public void setId(long id) { @Override public String toString() { - return "WorkflowStepData{" + "parent=" + parent + ", providerId=" + providerId + ", stepType=" + stepType + ", parameters=" + stepParameters + '}'; + return "WorkflowStepData{" + "parent=" + parent + ", providerId=" + providerId + ", stepType=" + stepType + ", parameters=" + stepParameters + ", settings=" + stepSettings + '}'; + } + + public void setStepSettings(Map settingsMap) { + this.stepSettings=settingsMap; + } + + public Map getStepSettings() { + return stepSettings; } From 4aa88523755fb5f30533cddce6fb975cea85e7d3 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Tue, 11 Sep 2018 15:25:13 -0400 Subject: [PATCH 002/241] update to schema v4 --- .../edu/harvard/iq/dataverse/datacite_metadata_template.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/edu/harvard/iq/dataverse/datacite_metadata_template.xml b/src/main/resources/edu/harvard/iq/dataverse/datacite_metadata_template.xml index ef26fe09bac..abe7ce79972 100644 --- a/src/main/resources/edu/harvard/iq/dataverse/datacite_metadata_template.xml +++ b/src/main/resources/edu/harvard/iq/dataverse/datacite_metadata_template.xml @@ -1,6 +1,6 @@ - ${identifier} ${creators} From 5277bd051156674651dabf20669cedc6f71c7f94 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Tue, 11 Sep 2018 17:19:19 -0400 Subject: [PATCH 003/241] DPN submission - api, gui, and workflow --- pom.xml | 22 + .../data/workflows/internal-dpn-workflow.json | 17 + scripts/database/4706-udate.sql | 1 + scripts/database/5043-update.sql | 2 + src/main/java/Bundle.properties | 2 + .../edu/harvard/iq/dataverse/DatasetPage.java | 33 +- .../harvard/iq/dataverse/DatasetVersion.java | 306 ++--- .../dataverse/authorization/Permission.java | 3 +- .../command/impl/SubmitToArchiveCommand.java | 249 ++++ .../settings/SettingsServiceBean.java | 18 +- .../iq/dataverse/util/bagit/BagGenerator.java | 1093 +++++++++++++++++ .../util/bagit/BagValidationJob.java | 123 ++ .../iq/dataverse/util/bagit/OREMap.java | 45 +- .../DPNSubmissionWorkflowStep.java | 54 + .../internalspi/InternalWorkflowStepSP.java | 2 + src/main/webapp/dataset-versions.xhtml | 13 +- 16 files changed, 1813 insertions(+), 170 deletions(-) create mode 100644 scripts/api/data/workflows/internal-dpn-workflow.json create mode 100644 scripts/database/4706-udate.sql create mode 100644 scripts/database/5043-update.sql create mode 100644 src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java create mode 100644 src/main/java/edu/harvard/iq/dataverse/util/bagit/BagGenerator.java create mode 100644 src/main/java/edu/harvard/iq/dataverse/util/bagit/BagValidationJob.java create mode 100644 src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/DPNSubmissionWorkflowStep.java diff --git a/pom.xml b/pom.xml index 690f2d11828..564b565378f 100644 --- a/pom.xml +++ b/pom.xml @@ -456,6 +456,28 @@ unirest-java 1.4.9 + + + org.apache.commons + commons-compress + 1.11 + + + org.duracloud + common + 4.4.6 + + + org.duracloud + storeclient + 4.4.6 + + + commons-cli + commons-cli + 1.2 + + diff --git a/scripts/api/data/workflows/internal-dpn-workflow.json b/scripts/api/data/workflows/internal-dpn-workflow.json new file mode 100644 index 00000000000..b03c8d4290c --- /dev/null +++ b/scripts/api/data/workflows/internal-dpn-workflow.json @@ -0,0 +1,17 @@ +{ + "name": "DPN submission workflow", + "steps": [ + { + "provider":":internal", + "stepType":"dpn", + "parameters": { + "stepName":"dpn submission" + }, + "requiredSettings": { + "DuraCloudHost":"string", + "DuraCloudPort":"string", + "DuraCloudContext":"string" + } + } + ] +} diff --git a/scripts/database/4706-udate.sql b/scripts/database/4706-udate.sql new file mode 100644 index 00000000000..089076c4822 --- /dev/null +++ b/scripts/database/4706-udate.sql @@ -0,0 +1 @@ +ALTER TABLE datasetversion ADD COLUMN archivalcopylocation text; diff --git a/scripts/database/5043-update.sql b/scripts/database/5043-update.sql new file mode 100644 index 00000000000..b9393f6c90f --- /dev/null +++ b/scripts/database/5043-update.sql @@ -0,0 +1,2 @@ +ALTER TABLE datasetfieldtype ADD COLUMN uri text; +ALTER TABLE metadatablock ADD COLUMN namespaceuri text; \ No newline at end of file diff --git a/src/main/java/Bundle.properties b/src/main/java/Bundle.properties index 9f13bf4fdb7..30ae996a0ed 100755 --- a/src/main/java/Bundle.properties +++ b/src/main/java/Bundle.properties @@ -1959,6 +1959,8 @@ dataset.registered=DatasetRegistered dataset.registered.msg=Your dataset is now registered. dataset.notlinked=DatasetNotLinked dataset.notlinked.msg=There was a problem linking this dataset to yours: +datasetversion.archive.success=Archival copy of Version successfully submitted +datasetversion.archive.failure=Error in submitting an archival copy #ThemeWidgetFragment.java theme.validateTagline=Tagline must be at most 140 characters. diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index ed9ae54eb26..68ea5ca4609 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -88,6 +88,7 @@ import edu.harvard.iq.dataverse.engine.command.impl.PublishDatasetResult; import edu.harvard.iq.dataverse.engine.command.impl.RestrictFileCommand; import edu.harvard.iq.dataverse.engine.command.impl.ReturnDatasetToAuthorCommand; +import edu.harvard.iq.dataverse.engine.command.impl.SubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.impl.SubmitDatasetForReviewCommand; import edu.harvard.iq.dataverse.externaltools.ExternalTool; import edu.harvard.iq.dataverse.externaltools.ExternalToolServiceBean; @@ -4308,7 +4309,7 @@ public void selectAllFiles() { public void clearSelection() { logger.info("clearSelection called"); - selectedFiles = Collections.EMPTY_LIST; + selectedFiles = Collections.emptyList(); } public void fileListingPaginatorListener(PageEvent event) { @@ -4321,4 +4322,34 @@ public void refreshPaginator() { setFilePaginatorPage(dt.getPage()); setRowsPerPage(dt.getRowsToRender()); } + + public void archiveVersion(Long id) { + if (session.getUser() instanceof AuthenticatedUser) { + AuthenticatedUser au = ((AuthenticatedUser) session.getUser()); + if (au.isSuperuser()) { + DatasetVersion dv = datasetVersionService.retrieveDatasetVersionByVersionId(id).getDatasetVersion(); + SubmitToArchiveCommand cmd = new SubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); + try { + DatasetVersion version = commandEngine.submit(cmd); + logger.info("Archived to " + version.getArchivalCopyLocation()); + if(version.getArchivalCopyLocation()!=null) { + resetVersionTabList(); + this.setVersionTabListForPostLoad(getVersionTabList()); + JsfHelper.addSuccessMessage(BundleUtil.getStringFromBundle("datasetversion.archive.success")); + } else { + JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("datasetversion.archive.failure")); + } + } catch (CommandException ex) { + logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); + JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("datasetversion.archive.failure")); + } + } + } else { + logger.warning("Non-superuser calling archiveVersion()"); + // Shouldn't happen since button only shows for superuser + FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Authentication error", + "Contact an administrator"); + FacesContext.getCurrentInstance().addMessage(null, message); + } + } } diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java index 7e4f4ecde39..48dbd78eec5 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java @@ -120,14 +120,14 @@ public enum License { @OneToMany(mappedBy = "datasetVersion", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) @OrderBy("label") // this is not our preferred ordering, which is with the AlphaNumericComparator, but does allow the files to be grouped by category - private List fileMetadatas = new ArrayList(); + private List fileMetadatas = new ArrayList(); @OneToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REMOVE}, orphanRemoval=true) @JoinColumn(name = "termsOfUseAndAccess_id") private TermsOfUseAndAccess termsOfUseAndAccess; @OneToMany(mappedBy = "datasetVersion", orphanRemoval = true, cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) - private List datasetFields = new ArrayList(); + private List datasetFields = new ArrayList(); @Temporal(value = TemporalType.TIMESTAMP) @Column( nullable=false ) @@ -146,6 +146,10 @@ public enum License { @Column(length = ARCHIVE_NOTE_MAX_LENGTH) private String archiveNote; + @Column(nullable=true, columnDefinition = "TEXT") + private String archivalCopyLocation; + + private String deaccessionLink; @Transient @@ -258,6 +262,14 @@ public void setArchiveNote(String note) { } this.archiveNote = note; } + + public String getArchivalCopyLocation() { + return archivalCopyLocation; + } + + public void setArchivalCopyLocation(String location) { + this.archivalCopyLocation = location; + } public String getDeaccessionLink() { return deaccessionLink; @@ -729,46 +741,46 @@ public List getTimePeriodsCovered() { String start = ""; String end = ""; for (DatasetField subField : timePeriodValue.getChildDatasetFields()) { - if (subField.getDatasetFieldType().getName() - .equals(DatasetFieldConstant.timePeriodCoveredStart)) { - if (subField.isEmptyForDisplay()) { - start = null; - } else { - // we want to use "getValue()", as opposed to "getDisplayValue()" here - - // as the latter method prepends the value with the word "Start:"! - start = subField.getValue(); - } - } - if (subField.getDatasetFieldType().getName() - .equals(DatasetFieldConstant.timePeriodCoveredEnd)) { - if (subField.isEmptyForDisplay()) { - end = null; - } else { - // see the comment above - end = subField.getValue(); - } - } - - } - if (start != null && end != null) { - retList.add(start + "/" + end); - } - } - } - } - return retList; - } - - public List getDatesOfCollection() { - List retList = new ArrayList<>(); - for (DatasetField dsf : this.getDatasetFields()) { - if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.dateOfCollection)) { - for (DatasetFieldCompoundValue timePeriodValue : dsf.getDatasetFieldCompoundValues()) { - String start = ""; - String end = ""; - for (DatasetField subField : timePeriodValue.getChildDatasetFields()) { - if (subField.getDatasetFieldType().getName() - .equals(DatasetFieldConstant.dateOfCollectionStart)) { + if (subField.getDatasetFieldType().getName() + .equals(DatasetFieldConstant.timePeriodCoveredStart)) { + if (subField.isEmptyForDisplay()) { + start = null; + } else { + // we want to use "getValue()", as opposed to "getDisplayValue()" here - + // as the latter method prepends the value with the word "Start:"! + start = subField.getValue(); + } + } + if (subField.getDatasetFieldType().getName() + .equals(DatasetFieldConstant.timePeriodCoveredEnd)) { + if (subField.isEmptyForDisplay()) { + end = null; + } else { + // see the comment above + end = subField.getValue(); + } + } + + } + if (start != null && end != null) { + retList.add(start + "/" + end); + } + } + } + } + return retList; + } + + public List getDatesOfCollection() { + List retList = new ArrayList<>(); + for (DatasetField dsf : this.getDatasetFields()) { + if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.dateOfCollection)) { + for (DatasetFieldCompoundValue timePeriodValue : dsf.getDatasetFieldCompoundValues()) { + String start = ""; + String end = ""; + for (DatasetField subField : timePeriodValue.getChildDatasetFields()) { + if (subField.getDatasetFieldType().getName() + .equals(DatasetFieldConstant.dateOfCollectionStart)) { if (subField.isEmptyForDisplay()) { start = null; } else { @@ -777,8 +789,8 @@ public List getDatesOfCollection() { start = subField.getValue(); } } - if (subField.getDatasetFieldType().getName() - .equals(DatasetFieldConstant.dateOfCollectionEnd)) { + if (subField.getDatasetFieldType().getName() + .equals(DatasetFieldConstant.dateOfCollectionEnd)) { if (subField.isEmptyForDisplay()) { end = null; } else { @@ -825,76 +837,76 @@ public List getDatasetSubjects() { * @return List of Strings containing the version's Topic Classifications */ public List getTopicClassifications() { - return getCompoundChildFieldValues(DatasetFieldConstant.topicClassification, - DatasetFieldConstant.topicClassValue); - } - - /** - * @return List of Strings containing the version's Kind Of Data entries - */ - public List getKindOfData() { - List kod = new ArrayList<>(); - for (DatasetField dsf : this.getDatasetFields()) { - if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.kindOfData)) { - kod.addAll(dsf.getValues()); - } - } - return kod; - } - - /** - * @return List of Strings containing the version's language entries - */ - public List getLanguages() { - List languages = new ArrayList<>(); - for (DatasetField dsf : this.getDatasetFields()) { - if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.language)) { - languages.addAll(dsf.getValues()); - } - } - return languages; - } - - public List getSpatialCoverages() { - List retList = new ArrayList<>(); - for (DatasetField dsf : this.getDatasetFields()) { - if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.geographicCoverage)) { - for (DatasetFieldCompoundValue geoValue : dsf.getDatasetFieldCompoundValues()) { - List coverage = new ArrayList(); - for (DatasetField subField : geoValue.getChildDatasetFields()) { - if (subField.getDatasetFieldType().getName() - .equals(DatasetFieldConstant.country)) { - if (!subField.isEmptyForDisplay()) { - } else { - coverage.add(subField.getValue()); - } - } - if (subField.getDatasetFieldType().getName() - .equals(DatasetFieldConstant.state)) { - if (!subField.isEmptyForDisplay()) { - coverage.add(subField.getValue()); - } - } - if (subField.getDatasetFieldType().getName() - .equals(DatasetFieldConstant.city)) { - if (!subField.isEmptyForDisplay()) { - coverage.add(subField.getValue()); - } - } - if (subField.getDatasetFieldType().getName() - .equals(DatasetFieldConstant.otherGeographicCoverage)) { - if (!subField.isEmptyForDisplay()) { - coverage.add(subField.getValue()); - } - } - } - if (!coverage.isEmpty()) { - retList.add(String.join(",", coverage)); - } - } - } - } - return retList; + return getCompoundChildFieldValues(DatasetFieldConstant.topicClassification, + DatasetFieldConstant.topicClassValue); + } + + /** + * @return List of Strings containing the version's Kind Of Data entries + */ + public List getKindOfData() { + List kod = new ArrayList<>(); + for (DatasetField dsf : this.getDatasetFields()) { + if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.kindOfData)) { + kod.addAll(dsf.getValues()); + } + } + return kod; + } + + /** + * @return List of Strings containing the version's language entries + */ + public List getLanguages() { + List languages = new ArrayList<>(); + for (DatasetField dsf : this.getDatasetFields()) { + if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.language)) { + languages.addAll(dsf.getValues()); + } + } + return languages; + } + + public List getSpatialCoverages() { + List retList = new ArrayList<>(); + for (DatasetField dsf : this.getDatasetFields()) { + if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.geographicCoverage)) { + for (DatasetFieldCompoundValue geoValue : dsf.getDatasetFieldCompoundValues()) { + List coverage = new ArrayList(); + for (DatasetField subField : geoValue.getChildDatasetFields()) { + if (subField.getDatasetFieldType().getName() + .equals(DatasetFieldConstant.country)) { + if (!subField.isEmptyForDisplay()) { + } else { + coverage.add(subField.getValue()); + } + } + if (subField.getDatasetFieldType().getName() + .equals(DatasetFieldConstant.state)) { + if (!subField.isEmptyForDisplay()) { + coverage.add(subField.getValue()); + } + } + if (subField.getDatasetFieldType().getName() + .equals(DatasetFieldConstant.city)) { + if (!subField.isEmptyForDisplay()) { + coverage.add(subField.getValue()); + } + } + if (subField.getDatasetFieldType().getName() + .equals(DatasetFieldConstant.otherGeographicCoverage)) { + if (!subField.isEmptyForDisplay()) { + coverage.add(subField.getValue()); + } + } + } + if (!coverage.isEmpty()) { + retList.add(String.join(",", coverage)); + } + } + } + } + return retList; } /** @@ -912,38 +924,38 @@ public List getPublicationCitationValues() { } /** - * @return List of Strings containing the version's Grant Agency(ies) - */ - public List getUniqueGrantAgencyValues() { - - // Since only grant agency names are returned, use distinct() to avoid repeats - // (e.g. if there are two grants from the same agency) - return getCompoundChildFieldValues(DatasetFieldConstant.grantNumber, DatasetFieldConstant.grantNumberAgency) - .stream().distinct().collect(Collectors.toList()); - } - - /** - * @return String containing the version's series title - */ - public String getSeriesTitle() { - - List seriesNames = getCompoundChildFieldValues(DatasetFieldConstant.series, - DatasetFieldConstant.seriesName); - if (seriesNames.size() > 1) { - logger.warning("More than one series title found for datasetVersion: " + this.id); - } - if (!seriesNames.isEmpty()) { - return seriesNames.get(0); - } else { - return null; - } - } - - /** - * @param parentFieldName - * compound dataset field A (from DatasetFieldConstant.*) - * @param childFieldName - * dataset field B, child field of A (from DatasetFieldConstant.*) + * @return List of Strings containing the version's Grant Agency(ies) + */ + public List getUniqueGrantAgencyValues() { + + // Since only grant agency names are returned, use distinct() to avoid repeats + // (e.g. if there are two grants from the same agency) + return getCompoundChildFieldValues(DatasetFieldConstant.grantNumber, DatasetFieldConstant.grantNumberAgency) + .stream().distinct().collect(Collectors.toList()); + } + + /** + * @return String containing the version's series title + */ + public String getSeriesTitle() { + + List seriesNames = getCompoundChildFieldValues(DatasetFieldConstant.series, + DatasetFieldConstant.seriesName); + if (seriesNames.size() > 1) { + logger.warning("More than one series title found for datasetVersion: " + this.id); + } + if (!seriesNames.isEmpty()) { + return seriesNames.get(0); + } else { + return null; + } + } + + /** + * @param parentFieldName + * compound dataset field A (from DatasetFieldConstant.*) + * @param childFieldName + * dataset field B, child field of A (from DatasetFieldConstant.*) * @return List of values of the child field */ public List getCompoundChildFieldValues(String parentFieldName, String childFieldName) { @@ -975,7 +987,7 @@ public List getDatasetProducerNames(){ for (DatasetFieldCompoundValue authorValue : dsf.getDatasetFieldCompoundValues()) { for (DatasetField subField : authorValue.getChildDatasetFields()) { if (subField.getDatasetFieldType().getName().equals(DatasetFieldConstant.producerName)) { - producerNames.add(subField.getDisplayValue().trim()); + producerNames.add(subField.getDisplayValue().trim()); } } } diff --git a/src/main/java/edu/harvard/iq/dataverse/authorization/Permission.java b/src/main/java/edu/harvard/iq/dataverse/authorization/Permission.java index c7651681e19..7f0c0c45ef3 100644 --- a/src/main/java/edu/harvard/iq/dataverse/authorization/Permission.java +++ b/src/main/java/edu/harvard/iq/dataverse/authorization/Permission.java @@ -50,7 +50,8 @@ public enum Permission implements java.io.Serializable { PublishDataset(BundleUtil.getStringFromBundle("permission.publishDataset"), true, Dataset.class), // Delete DeleteDataverse(BundleUtil.getStringFromBundle("permission.deleteDataverse"), true, Dataverse.class), - DeleteDatasetDraft(BundleUtil.getStringFromBundle("permission.deleteDataset"), true, Dataset.class); + DeleteDatasetDraft(BundleUtil.getStringFromBundle("permission.deleteDataset"), true, Dataset.class), + ArchiveDatasetVersion(BundleUtil.getStringFromBundle("permission.archiveDatasetVersion"), true, Dataset.class); // FUTURE: //RestrictMetadata("Mark metadata as restricted", DvObject.class), diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java new file mode 100644 index 00000000000..a000568a730 --- /dev/null +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java @@ -0,0 +1,249 @@ +package edu.harvard.iq.dataverse.engine.command.impl; + +import edu.harvard.iq.dataverse.DOIDataCiteRegisterService; +import edu.harvard.iq.dataverse.DataCitation; +import edu.harvard.iq.dataverse.Dataset; +import edu.harvard.iq.dataverse.DatasetVersion; +import edu.harvard.iq.dataverse.DvObject; +import edu.harvard.iq.dataverse.DatasetLock.Reason; +import edu.harvard.iq.dataverse.authorization.Permission; +import edu.harvard.iq.dataverse.authorization.users.ApiToken; +import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; +import edu.harvard.iq.dataverse.engine.command.Command; +import edu.harvard.iq.dataverse.engine.command.CommandContext; +import edu.harvard.iq.dataverse.engine.command.DataverseRequest; +import edu.harvard.iq.dataverse.engine.command.RequiredPermissions; +import edu.harvard.iq.dataverse.engine.command.exception.CommandException; +import edu.harvard.iq.dataverse.settings.SettingsServiceBean; +import edu.harvard.iq.dataverse.util.bagit.BagGenerator; +import edu.harvard.iq.dataverse.util.bagit.OREMap; +import edu.harvard.iq.dataverse.workflow.step.Failure; +import edu.harvard.iq.dataverse.workflow.step.WorkflowStepResult; + +import static edu.harvard.iq.dataverse.engine.command.CommandHelper.CH; + +import java.io.IOException; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.nio.charset.Charset; +import java.security.DigestInputStream; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.logging.Logger; + +import org.apache.commons.codec.binary.Hex; +import org.apache.commons.io.IOUtils; +import org.duracloud.client.ContentStore; +import org.duracloud.client.ContentStoreManager; +import org.duracloud.client.ContentStoreManagerImpl; +import org.duracloud.common.model.Credential; +import org.duracloud.error.ContentStoreException; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +@RequiredPermissions(Permission.ArchiveDatasetVersion) +public class SubmitToArchiveCommand implements Command { + + private final DatasetVersion version; + private final DataverseRequest request; + private final Map affectedDvObjects; + private static final Logger logger = Logger.getLogger(SubmitToArchiveCommand.class.getName()); + private static final String DEFAULT_PORT = "443"; + private static final String DEFAULT_CONTEXT = "durastore"; + + public SubmitToArchiveCommand(DataverseRequest aRequest, DatasetVersion version) { + this.request = aRequest; + this.version = version; + affectedDvObjects = new HashMap<>(); + affectedDvObjects.put("", version.getDataset()); + } + + @Override + public DatasetVersion execute(CommandContext ctxt) throws CommandException { + String host = ctxt.settings().getValueForKey(SettingsServiceBean.Key.DuraCloudHost); + String port = ctxt.settings().getValueForKey(SettingsServiceBean.Key.DuraCloudPort); + String dpnContext = ctxt.settings().getValueForKey(SettingsServiceBean.Key.DuraCloudContext); + AuthenticatedUser user = request.getAuthenticatedUser(); + ApiToken token = ctxt.authentication().findApiTokenByUser(user); + if ((token == null) || (token.getExpireTime().before(new Date()))) { + token = ctxt.authentication().generateApiTokenForUser(user); + } + performDPNSubmission(version, user, host, port, dpnContext, token); + return ctxt.em().merge(version); + } + + @Override + public Map getAffectedDvObjects() { + + return affectedDvObjects; + } + + @Override + public DataverseRequest getRequest() { + return request; + } + + @Override + public Map> getRequiredPermissions() { + return CH.permissionsRequired(getClass()); + } + + @Override + public String describe() { + // Is this ever used? + return "DatasetVersion: " + version.getId() + " " + version.getDataset().getDisplayName() + ".v" + + version.getFriendlyVersionNumber(); + } + + public static WorkflowStepResult performDPNSubmission(DatasetVersion dv, AuthenticatedUser user, String host, + String aPort, String aDpnContext, ApiToken token) { + + String port = aPort != null ? aPort : DEFAULT_PORT; + String dpnContext = aDpnContext != null ? aDpnContext : DEFAULT_CONTEXT; + if (host != null) { + Dataset dataset = dv.getDataset(); + if (dataset.getLockFor(Reason.pidRegister) == null) { + //Use Duracloud client classes to login + ContentStoreManager storeManager = new ContentStoreManagerImpl(host, port, dpnContext); + Credential credential = new Credential(System.getProperty("duracloud.username"), + System.getProperty("duracloud.password")); + storeManager.login(credential); + + String spaceName = dataset.getGlobalId().asString().replace(':', '-').replace('/', '-') + .replace('.', '-').toLowerCase(); + + ContentStore store; + try { + /* If there is a failure in creating a space, it is likely that a prior version has not been fully processed + * (snapshot created, archiving completed and files and space deleted - currently manual operations + * done at the project's duracloud website) + */ + store = storeManager.getPrimaryContentStore(); + //Create space to copy archival files to + store.createSpace(spaceName); + DataCitation dc = new DataCitation(dv); + Map metadata = dc.getDataCiteMetadata(); + String dataciteXml = DOIDataCiteRegisterService.getMetadataFromDvObject( + dv.getDataset().getGlobalId().asString(), metadata, dv.getDataset()); + + try { + // Add datacite.xml file + MessageDigest messageDigest = MessageDigest.getInstance("MD5"); + + PipedInputStream dataciteIn = new PipedInputStream(); + PipedOutputStream dataciteOut = new PipedOutputStream(dataciteIn); + new Thread(new Runnable() { + public void run() { + try { + + dataciteOut.write(dataciteXml.getBytes(Charset.forName("utf-8"))); + dataciteOut.close(); + } catch (Exception e) { + logger.severe("Error creating datacite.xml: " + e.getMessage()); + // TODO Auto-generated catch block + e.printStackTrace(); + IOUtils.closeQuietly(dataciteIn); + IOUtils.closeQuietly(dataciteOut); + } + } + }).start(); + + DigestInputStream digestInputStream = new DigestInputStream(dataciteIn, messageDigest); + String checksum = store.addContent(spaceName, "datacite.xml", digestInputStream, -1l, null, null, + null); + logger.fine("Content: datacite.xml added with checksum: " + checksum); + String localchecksum = Hex.encodeHexString(digestInputStream.getMessageDigest().digest()); + if (!checksum.equals(localchecksum)) { + logger.severe(checksum + " not equal to " + localchecksum); + return new Failure("Error in transferring DataCite.xml file to DPN", + "DPN Submission Failure: incomplete metadata transfer"); + } + IOUtils.closeQuietly(digestInputStream); + + + // Store BagIt file + String fileName = spaceName + "v" + dv.getFriendlyVersionNumber() + ".zip"; + + // Add BagIt ZIP file + //Although DPN uses SHA-256 internally, it's API uses MD5 to verify the transfer + messageDigest = MessageDigest.getInstance("MD5"); + PipedInputStream in = new PipedInputStream(); + PipedOutputStream out = new PipedOutputStream(in); + new Thread(new Runnable() { + public void run() { + try { + //Get OREmap, convert from javax.json.JsonObject to com.google.gson.JsonObject + JsonObject oremap = (JsonObject) new JsonParser().parse(new OREMap(dv).getOREMap().toString()); + //Generate bag + BagGenerator bagger = new BagGenerator(oremap, dataciteXml); + bagger.setAuthenticationKey(token.getTokenString()); + bagger.generateBag(out); + } catch (Exception e) { + logger.severe("Error creating bag: " + e.getMessage()); + // TODO Auto-generated catch block + e.printStackTrace(); + IOUtils.closeQuietly(in); + IOUtils.closeQuietly(out); + } + } + }).start(); + digestInputStream = new DigestInputStream(in, messageDigest); + checksum = store.addContent(spaceName, fileName, digestInputStream, -1l, null, null, + null); + logger.fine("Content: " + fileName + " added with checksum: " + checksum); + localchecksum = Hex.encodeHexString(digestInputStream.getMessageDigest().digest()); + if (!checksum.equals(localchecksum)) { + logger.severe(checksum + " not equal to " + localchecksum); + return new Failure("Error in transferring Zip file to DPN", + "DPN Submission Failure: incomplete archive transfer"); + } + IOUtils.closeQuietly(digestInputStream); + + + logger.fine("DPN Submission step: Content Transferred"); + + // Document the location of dataset archival copy location (actually the URL where you can + // view it as an admin) + StringBuffer sb = new StringBuffer("https://"); + sb.append(host); + if (!port.equals("443")) { + sb.append(":" + port); + } + sb.append("/duradmin/spaces/sm/"); + sb.append(store.getStoreId()); + sb.append("/" + spaceName + "/" + fileName); + dv.setArchivalCopyLocation(sb.toString()); + logger.fine("DPN Submission step complete: " + sb.toString()); + } catch (ContentStoreException | IOException e) { + // TODO Auto-generated catch block + logger.warning(e.getMessage()); + e.printStackTrace(); + return new Failure("Error in transferring file to DPN", + "DPN Submission Failure: archive file not transferred"); + } catch (NoSuchAlgorithmException e) { + logger.severe("MD5 MessageDigest not available!"); + } + } catch (ContentStoreException e) { + logger.warning(e.getMessage()); + e.printStackTrace(); + String mesg = "DPN Submission Failure"; + if (!(1 == dv.getVersion()) || !(0 == dv.getMinorVersionNumber())) { + mesg = mesg + ": Prior Version archiving not yet complete?"; + } + return new Failure("Unable to create DPN space with name: " + spaceName, mesg); + } + } else { + logger.warning("DPN Submision Workflow aborted: Dataset locked for pidRegister"); + return new Failure("Dataset locked"); + } + return WorkflowStepResult.OK; + } else { + return new Failure("DPN Submission not configured."); + } + } +} diff --git a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java index b8bc893fccb..3090c798489 100644 --- a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java @@ -365,7 +365,23 @@ Whether Harvesting (OAI) service is enabled /** * */ - FilePIDsEnabled + FilePIDsEnabled, + + /** + * Providing a Duracloud host (and optional port) enables manual submission of archival copies of published dataset versions + * to that host, e.g. as the first step in archiving through the Digital Preservation Network (DPN.org). + * Note: + * Configuration also requires adding the username and password as jvm-options in glassfish. + * To automate this step as part of publication, a post-publication workflow must also be configured. + * + * DuraCloudHost , eg. "qdr.duracloud.org", a non-null value enables submission + * DuraCloudPort, default is 443 + * DuraCloudContext, default is "durastore" + */ + + DuraCloudHost, + DuraCloudPort, + DuraCloudContext ; @Override diff --git a/src/main/java/edu/harvard/iq/dataverse/util/bagit/BagGenerator.java b/src/main/java/edu/harvard/iq/dataverse/util/bagit/BagGenerator.java new file mode 100644 index 00000000000..5f557437e49 --- /dev/null +++ b/src/main/java/edu/harvard/iq/dataverse/util/bagit/BagGenerator.java @@ -0,0 +1,1093 @@ +package edu.harvard.iq.dataverse.util.bagit; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.file.Paths; +import java.security.KeyManagementException; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.ResourceBundle; +import java.util.Set; +import java.util.TreeSet; +import java.util.Map.Entry; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.zip.ZipEntry; + +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator; +import org.apache.commons.compress.archivers.zip.ScatterZipOutputStream; +import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; +import org.apache.commons.compress.archivers.zip.ZipArchiveEntryRequest; +import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; +import org.apache.commons.compress.archivers.zip.ZipFile; +import org.apache.commons.compress.parallel.InputStreamSupplier; +import org.apache.commons.compress.utils.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.text.WordUtils; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.protocol.HttpClientContext; +import org.apache.http.config.Registry; +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.conn.ssl.NoopHostnameVerifier; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.conn.ssl.TrustSelfSignedStrategy; +import org.apache.http.ssl.SSLContextBuilder; + +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.log4j.Logger; +import org.json.JSONArray; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.google.gson.JsonPrimitive; + +import edu.harvard.iq.dataverse.DataFile; +import edu.harvard.iq.dataverse.DataFile.ChecksumType; +import edu.harvard.iq.dataverse.util.json.JsonLDTerm; + +public class BagGenerator { + + private static final Logger log = Logger.getLogger(BagGenerator.class); + + private ParallelScatterZipCreator scatterZipCreator = null; + private ScatterZipOutputStream dirs = null; + + private JsonArray aggregates = null; + private ArrayList resourceIndex = null; + private Boolean[] resourceUsed = null; + private HashMap pidMap = new LinkedHashMap(); + private HashMap checksumMap = new LinkedHashMap(); + + private int timeout = 300; + private RequestConfig config = RequestConfig.custom().setConnectTimeout(timeout * 1000) + .setConnectionRequestTimeout(timeout * 1000).setSocketTimeout(timeout * 1000).build(); + private static HttpClientContext localContext = HttpClientContext.create(); + protected CloseableHttpClient client; + private PoolingHttpClientConnectionManager cm = null; + + private ChecksumType hashtype = null; + private boolean ignorehashes = false; + + private long dataCount = 0l; + private long totalDataSize = 0l; + private long maxFileSize = 0l; + private Set mimetypes = new TreeSet(); + + private String bagID = null; + private String bagPath = "/tmp"; + String bagName = null; + + private String apiKey = null; + + private JsonObject oremap; + private JsonObject aggregation; + + private String dataciteXml; + + private boolean usetemp = false; + + private int numConnections = 4; + + static PrintWriter pw = null; + + /** + * This BagGenerator creates a BagIt version 1.0 + * (https://tools.ietf.org/html/draft-kunze-bagit-16) compliant bag that is also + * minimally compatible with the Research Data Repository Interoperability WG + * Final Recommendations (DOI: 10.15497/RDA00025). It works by parsing the + * submitted OAI-ORE Map file, using the metadata therein to create required + * BagIt metadata, and using the schema.org/sameAs entries for + * AggregatedResources as a way to retrieve these files and store them in the + * /data directory within the BagIt structure. The Bag is zipped. File retrieval + * and zipping are done in parallel, using a connection pool. The required space + * on disk is ~ n+1/n of the final bag size, e.g. 125% of the bag size for a + * 4-way parallel zip operation. + */ + + public BagGenerator(JsonObject oremap, String dataciteXml) { + this.oremap = oremap; + this.dataciteXml = dataciteXml; + try { + // SSLContext sslContext; + + // sslContext = SSLContext.getInstance("TLSv1.2"); + + // sslContext.init(null, null, null); + SSLContextBuilder builder = new SSLContextBuilder(); + try { + builder.loadTrustMaterial(null, new TrustSelfSignedStrategy()); + } catch (KeyStoreException e) { + e.printStackTrace(); + } + + SSLConnectionSocketFactory sslConnectionFactory = new SSLConnectionSocketFactory(builder.build(), + NoopHostnameVerifier.INSTANCE); + + Registry registry = RegistryBuilder.create() + .register("https", sslConnectionFactory).build(); + cm = new PoolingHttpClientConnectionManager(registry); + + cm.setDefaultMaxPerRoute(numConnections); + cm.setMaxTotal(numConnections > 20 ? numConnections : 20); + + client = HttpClients.custom().setConnectionManager(cm).setDefaultRequestConfig(config).build(); + + scatterZipCreator = new ParallelScatterZipCreator(Executors.newFixedThreadPool(numConnections)); + } catch (NoSuchAlgorithmException | KeyManagementException e) { + log.warn("Aint gonna work"); + e.printStackTrace(); + } + } + + public void setIgnoreHashes(boolean val) { + ignorehashes = val; + } + + public static void println(String s) { + System.out.println(s); + System.out.flush(); + if (pw != null) { + pw.println(s); + pw.flush(); + } + return; + } + + public static void main(String args[]) throws Exception { + try { + File outputFile = new File("QDRBagItLog_" + System.currentTimeMillis() + ".txt"); + try { + pw = new PrintWriter(new FileWriter(outputFile)); + } catch (Exception e) { + println(e.getMessage()); + } + String mapFileName = null; + String apiKey = null; + // go through arguments + for (String arg : args) { + // First non-flag arg is the server URL + if (mapFileName == null) { + println("MapFile: " + arg); + mapFileName = arg; + } + if (apiKey == null) { + println("APIKey: " + arg); + apiKey = arg; + } + } + // Read from File to String + JsonObject oremap = new JsonObject(); + + try { + JsonParser parser = new JsonParser(); + JsonElement jsonElement = parser.parse(new FileReader(mapFileName)); + oremap = jsonElement.getAsJsonObject(); + } catch (FileNotFoundException e) { + log.warn("Couldn't find " + mapFileName); + } + + BagGenerator bg = new BagGenerator(oremap, "No DataCite metadata available"); + bg.setBagPath("."); + bg.generateBag("testBag", false); + if (pw != null) { + pw.flush(); + pw.close(); + } + } catch (Exception e) { + println(e.getLocalizedMessage()); + e.printStackTrace(pw); + pw.flush(); + System.exit(1); + } + + } + + /* + * Full workflow to generate new BagIt bag from ORE Map Url and to write the bag + * to the provided output stream (Ex: File OS, FTP OS etc.). + * + * @return success true/false + */ + public boolean generateBag(OutputStream outputStream) throws Exception { + log.info("Generating: Bag to the Future!"); + + File tmp = File.createTempFile("qdr-scatter-dirs", "tmp"); + dirs = ScatterZipOutputStream.fileBased(tmp); + + aggregation = oremap.getAsJsonObject(JsonLDTerm.ore("describes").getLabel()); + + bagID = aggregation.get("@id").getAsString() + "v." + + aggregation.get(JsonLDTerm.schemaOrg("version").getLabel()).getAsString(); + try { + // Create valid filename from identifier and extend path with + // two levels of hash-based subdirs to help distribute files + bagName = getValidName(bagID); + } catch (Exception e) { + log.error("Couldn't create valid filename: " + e.getLocalizedMessage()); + return false; + } + // Create data dir in bag, also creates parent bagName dir + String currentPath = "data/"; + createDir(currentPath); + + aggregates = aggregation.getAsJsonArray(JsonLDTerm.ore("aggregates").getLabel()); + + if (aggregates != null) { + // Add container and data entries + // Setup global index of the aggregation and all aggregated + // resources by Identifier + resourceIndex = indexResources(aggregation.get("@id").getAsString(), aggregates); + // Setup global list of succeed(true), fail(false), notused + // (null) flags + resourceUsed = new Boolean[aggregates.size() + 1]; + // Process current container (the aggregation itself) and its + // children + processContainer(aggregation, currentPath); + } + // Create mainifest files + // pid-mapping.txt - a DataOne recommendation to connect ids and + // in-bag path/names + StringBuffer pidStringBuffer = new StringBuffer(); + boolean first = true; + for (Entry pidEntry : pidMap.entrySet()) { + if (!first) { + pidStringBuffer.append("\r\n"); + } else { + first = false; + } + String path = pidEntry.getValue(); + pidStringBuffer.append(pidEntry.getKey() + " " + path); + } + createDir("metadata/"); + createFileFromString("metadata/pid-mapping.txt", pidStringBuffer.toString()); + // Hash manifest - a hash manifest is required + // by Bagit spec + StringBuffer sha1StringBuffer = new StringBuffer(); + first = true; + for (Entry sha1Entry : checksumMap.entrySet()) { + if (!first) { + sha1StringBuffer.append("\r\n"); + } else { + first = false; + } + String path = sha1Entry.getKey(); + sha1StringBuffer.append(sha1Entry.getValue() + " " + path); + } + if (!(hashtype == null)) { + String manifestName = "manifest-"; + if (hashtype.equals(DataFile.ChecksumType.SHA1)) { + manifestName = manifestName + "sha1.txt"; + } else if (hashtype.equals(DataFile.ChecksumType.SHA256)) { + manifestName = manifestName + "sha256.txt"; + } else if (hashtype.equals(DataFile.ChecksumType.SHA512)) { + manifestName = manifestName + "sha512.txt"; + } else if (hashtype.equals(DataFile.ChecksumType.MD5)) { + manifestName = manifestName + "md5.txt"; + } else { + log.warn("Unsupported Hash type: " + hashtype); + } + createFileFromString(manifestName, sha1StringBuffer.toString()); + } else { + log.warn("No Hash values sent - Bag File does not meet BagIT specification requirement"); + } + // bagit.txt - Required by spec + createFileFromString("bagit.txt", "BagIt-Version: 1.0\r\nTag-File-Character-Encoding: UTF-8"); + + aggregation.addProperty(JsonLDTerm.totalSize.getLabel(), totalDataSize); + aggregation.addProperty(JsonLDTerm.fileCount.getLabel(), dataCount); + JsonArray mTypes = new JsonArray(); + for (String mt : mimetypes) { + mTypes.add(new JsonPrimitive(mt)); + } + aggregation.add(JsonLDTerm.dcTerms("format").getLabel(), mTypes); + aggregation.addProperty(JsonLDTerm.maxFileSize.getLabel(), maxFileSize); + // Serialize oremap itself + // FixMe - add missing hash values if needed and update context + // (read and cache files or read twice?) + createFileFromString("metadata/ore-ore.jsonld", oremap.toString()); + + createFileFromString("metadata/datacite.xml", dataciteXml); + + // Add a bag-info file + createFileFromString("bag-info.txt", generateInfoFile(oremap)); + + log.debug("Creating bag: " + bagName); + + ZipArchiveOutputStream zipArchiveOutputStream = new ZipArchiveOutputStream(outputStream); + + /* + * Add all the waiting contents - dirs created first, then data files are + * retrieved via URLs in parallel (defaults to one thread per processor) + * directly to the zip file + */ + log.debug("Starting write"); + writeTo(zipArchiveOutputStream); + log.debug("Zipfile Written"); + // Finish + zipArchiveOutputStream.close(); + log.debug("Closed"); + + // Validate oremap - all entries are part of the collection + for (int i = 0; i < resourceUsed.length; i++) { + Boolean b = resourceUsed[i]; + if (b == null) { + log.warn("Problem: " + pidMap.get(resourceIndex.get(i)) + " was not used"); + } else if (!b) { + log.warn("Problem: " + pidMap.get(resourceIndex.get(i)) + " was not included successfully"); + } else { + // Successfully included - now check for hash value and + // generate if needed + if (i > 0) { // Not root container + if (!checksumMap.containsKey(pidMap.get(resourceIndex.get(i)))) { + + if (!childIsContainer(aggregates.get(i - 1).getAsJsonObject())) + log.warn("Missing sha1 hash for: " + resourceIndex.get(i)); + // FixMe - actually generate it before adding the + // oremap + // to the zip + } + } + } + + } + + log.info("Created bag: " + bagName); + client.close(); + return true; + + } + + public boolean generateBag(String bagName, boolean temp) { + usetemp = temp; + FileOutputStream bagFileOS = null; + try { + File origBagFile = getBagFile(bagName); + File bagFile = origBagFile; + if (usetemp) { + bagFile = new File(bagFile.getAbsolutePath() + ".tmp"); + log.debug("Writing to: " + bagFile.getAbsolutePath()); + } + // Create an output stream backed by the file + bagFileOS = new FileOutputStream(bagFile); + if (generateBag(bagFileOS)) { + validateBagFile(bagFile); + if (usetemp) { + log.debug("Moving tmp zip"); + origBagFile.delete(); + bagFile.renameTo(origBagFile); + } + return true; + } else { + return false; + } + } catch (Exception e) { + log.error("Bag Exception: ", e); + e.printStackTrace(); + log.warn("Failure: Processing failure during Bagit file creation"); + return false; + } finally { + IOUtils.closeQuietly(bagFileOS); + } + } + + public void validateBag(String bagId) { + log.info("Validating Bag"); + ZipFile zf = null; + InputStream is = null; + try { + zf = new ZipFile(getBagFile(bagId)); + ZipArchiveEntry entry = zf.getEntry(getValidName(bagId) + "/manifest-sha1.txt"); + if (entry != null) { + log.info("SHA1 hashes used"); + hashtype = DataFile.ChecksumType.SHA1; + } else { + entry = zf.getEntry(getValidName(bagId) + "/manifest-sha512.txt"); + if (entry != null) { + log.info("SHA512 hashes used"); + hashtype = DataFile.ChecksumType.SHA512; + } else { + entry = zf.getEntry(getValidName(bagId) + "/manifest-sha256.txt"); + if (entry != null) { + log.info("SHA256 hashes used"); + hashtype = DataFile.ChecksumType.SHA256; + } else { + entry = zf.getEntry(getValidName(bagId) + "/manifest-md5.txt"); + if (entry != null) { + log.info("MD5 hashes used"); + hashtype = DataFile.ChecksumType.MD5; + } + } + } + } + if (entry == null) + throw new IOException("No manifest file found"); + is = zf.getInputStream(entry); + BufferedReader br = new BufferedReader(new InputStreamReader(is)); + String line = br.readLine(); + while (line != null) { + log.debug("Hash entry: " + line); + int breakIndex = line.indexOf(' '); + String hash = line.substring(0, breakIndex); + String path = line.substring(breakIndex + 1); + log.debug("Adding: " + path + " with hash: " + hash); + checksumMap.put(path, hash); + line = br.readLine(); + } + IOUtils.closeQuietly(is); + log.info("HashMap Map contains: " + checksumMap.size() + " entries"); + checkFiles(checksumMap, zf); + } catch (IOException io) { + log.error("Could not validate Hashes", io); + } catch (Exception e) { + log.error("Could not validate Hashes", e); + } finally { + IOUtils.closeQuietly(zf); + } + return; + } + + public File getBagFile(String bagID) throws Exception { + + String bagPath = Paths.get(getBagPath()).toString(); + // Create the bag file on disk + File parent = new File(bagPath); + if (!parent.exists()) { + parent.mkdirs(); + } + // Create known-good filename + bagName = getValidName(bagID); + File bagFile = new File(bagPath, bagName + ".zip"); + log.debug("BagPath: " + bagFile.getAbsolutePath()); + // Create an output stream backed by the file + return bagFile; + } + + private void validateBagFile(File bagFile) throws IOException { + // Run a confirmation test - should verify all files and hashes + ZipFile zf = new ZipFile(bagFile); + // Check files calculates the hashes and file sizes and reports on + // whether hashes are correct + checkFiles(checksumMap, zf); + + log.info("Data Count: " + dataCount); + log.info("Data Size: " + totalDataSize); + zf.close(); + } + + public static String getValidName(String bagName) { + // Create known-good filename - no spaces, no file-system separators. + return bagName.replaceAll("\\W", "-"); + } + + private void processContainer(JsonObject item, String currentPath) throws IOException { + JsonArray children = getChildren(item); + HashSet titles = new HashSet(); + String title = null; + if (item.has(JsonLDTerm.dcTerms("Title").getLabel())) { + title = item.get("Title").getAsString(); + } else if (item.has(JsonLDTerm.schemaOrg("name").getLabel())) { + title = item.get(JsonLDTerm.schemaOrg("name").getLabel()).getAsString(); + } + + currentPath = currentPath + title + "/"; + int containerIndex = -1; + try { + createDir(currentPath); + // Add containers to pid map and mark as 'used', but no sha1 hash + // value + containerIndex = getUnusedIndexOf(item.get("@id").getAsString()); + resourceUsed[containerIndex] = true; + pidMap.put(item.get("@id").getAsString(), currentPath); + + } catch (InterruptedException | IOException | ExecutionException e) { + e.printStackTrace(); + log.error(e.getMessage()); + if (containerIndex != -1) { + resourceUsed[containerIndex] = false; + } + throw new IOException("Unable to create bag"); + + } + for (int i = 0; i < children.size(); i++) { + + // Find the ith child in the overall array of aggregated + // resources + String childId = children.get(i).getAsString(); + log.debug("Processing: " + childId); + int index = getUnusedIndexOf(childId); + if (resourceUsed[index] != null) { + System.out.println("Warning: reusing resource " + index); + } + + // Aggregation is at index 0, so need to shift by 1 for aggregates + // entries + JsonObject child = aggregates.get(index - 1).getAsJsonObject(); + if (childIsContainer(child)) { + // create dir and process children + // processContainer will mark this item as used + processContainer(child, currentPath); + } else { + resourceUsed[index] = true; + // add item + // ToDo + String dataUrl = child.get(JsonLDTerm.schemaOrg("sameAs").getLabel()).getAsString(); + log.debug("File url: " + dataUrl); + String childTitle = child.get(JsonLDTerm.schemaOrg("name").getLabel()).getAsString(); + if (titles.contains(childTitle)) { + log.warn("**** Multiple items with the same title in: " + currentPath); + log.warn("**** Will cause failure in hash and size validation."); + } else { + titles.add(childTitle); + } + String childPath = currentPath + childTitle; + + String childHash = null; + if (child.has(JsonLDTerm.checksum.getLabel())) { + ChecksumType childHashType = ChecksumType.fromString( + child.getAsJsonObject(JsonLDTerm.checksum.getLabel()).get("@type").getAsString()); + if (hashtype != null && !hashtype.equals(childHashType)) { + log.warn("Multiple hash values in use - not supported"); + } + if (hashtype == null) + hashtype = childHashType; + childHash = child.getAsJsonObject(JsonLDTerm.checksum.getLabel()).get("@value").getAsString(); + if (checksumMap.containsValue(childHash)) { + // Something else has this hash + log.warn("Duplicate/Collision: " + child.get("@id").getAsString() + " has SHA1 Hash: " + + childHash); + } + checksumMap.put(childPath, childHash); + } + if ((hashtype == null) | ignorehashes) { + // Pick sha512 when ignoring hashes or none exist + hashtype = DataFile.ChecksumType.SHA512; + } + try { + if ((childHash == null) | ignorehashes) { + // Generate missing hashInputStream inputStream = null; + InputStream inputStream = null; + try { + inputStream = getInputStreamSupplier(dataUrl).get(); + + if (hashtype != null) { + if (hashtype.equals(DataFile.ChecksumType.SHA1)) { + childHash = DigestUtils.sha1Hex(inputStream); + } else if (hashtype.equals(DataFile.ChecksumType.SHA256)) { + childHash = DigestUtils.sha256Hex(inputStream); + } else if (hashtype.equals(DataFile.ChecksumType.SHA512)) { + childHash = DigestUtils.sha512Hex(inputStream); + } else if (hashtype.equals(DataFile.ChecksumType.MD5)) { + childHash = DigestUtils.md5Hex(inputStream); + } + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + IOUtils.closeQuietly(inputStream); + } + if (childHash != null) { + JsonObject childHashObject = new JsonObject(); + childHashObject.addProperty("@type", hashtype.toString()); + childHashObject.addProperty("@value", childHash); + child.add(JsonLDTerm.checksum.getLabel(), (JsonElement) childHashObject); + + checksumMap.put(childPath, childHash); + } else { + log.warn("Unable to calculate a " + hashtype + " for " + dataUrl); + } + } + log.debug("Requesting: " + childPath + " from " + dataUrl); + createFileFromURL(childPath, dataUrl); + dataCount++; + if (dataCount % 1000 == 0) { + log.info("Retrieval in progress: " + dataCount + " files retrieved"); + } + if (child.has(JsonLDTerm.filesize.getLabel())) { + Long size = child.get(JsonLDTerm.filesize.getLabel()).getAsLong(); + totalDataSize += size; + if (size > maxFileSize) { + maxFileSize = size; + } + } + if (child.has(JsonLDTerm.schemaOrg("fileFormat").getLabel())) { + mimetypes.add(child.get(JsonLDTerm.schemaOrg("fileFormat").getLabel()).getAsString()); + } + + } catch (Exception e) { + resourceUsed[index] = false; + e.printStackTrace(); + throw new IOException("Unable to create bag"); + } + + // Check for nulls! + pidMap.put(child.get("@id").getAsString(), childPath); + + } + } + } + + private int getUnusedIndexOf(String childId) { + int index = resourceIndex.indexOf(childId); + if (resourceUsed[index] != null) { + System.out.println("Warning: reusing resource " + index); + } + + while (resourceUsed[index] != null) { + int offset = index; + index = offset + 1 + resourceIndex.subList(offset + 1, resourceIndex.size()).indexOf(childId); + } + System.out.println("Using index: " + index); + if (index == -1) { + log.error("Reused ID: " + childId + " not found enough times in resource list"); + } + return index; + } + + private ArrayList indexResources(String aggId, JsonArray aggregates) { + + ArrayList l = new ArrayList(aggregates.size() + 1); + l.add(aggId); + for (int i = 0; i < aggregates.size(); i++) { + log.debug("Indexing : " + i + " " + aggregates.get(i).getAsJsonObject().get("@id").getAsString()); + l.add(aggregates.get(i).getAsJsonObject().get("@id").getAsString()); + } + log.debug("Index created for " + aggregates.size() + " entries"); + return l; + } + + private void createDir(final String name) throws IOException, ExecutionException, InterruptedException { + + ZipArchiveEntry archiveEntry = new ZipArchiveEntry(bagName + "/" + name); + archiveEntry.setMethod(ZipEntry.DEFLATED); + InputStreamSupplier supp = new InputStreamSupplier() { + public InputStream get() { + return new ByteArrayInputStream(("").getBytes()); + } + }; + + addEntry(archiveEntry, supp); + } + + private void createFileFromString(final String relPath, final String content) + throws IOException, ExecutionException, InterruptedException { + + ZipArchiveEntry archiveEntry = new ZipArchiveEntry(bagName + "/" + relPath); + archiveEntry.setMethod(ZipEntry.DEFLATED); + InputStreamSupplier supp = new InputStreamSupplier() { + public InputStream get() { + try { + return new ByteArrayInputStream(content.getBytes("UTF-8")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return null; + } + }; + + addEntry(archiveEntry, supp); + } + + private void createFileFromURL(final String relPath, final String uri) + throws IOException, ExecutionException, InterruptedException { + + ZipArchiveEntry archiveEntry = new ZipArchiveEntry(bagName + "/" + relPath); + archiveEntry.setMethod(ZipEntry.DEFLATED); + InputStreamSupplier supp = getInputStreamSupplier(uri); + addEntry(archiveEntry, supp); + } + + private void checkFiles(HashMap shaMap, ZipFile zf) { + ExecutorService executor = Executors.newFixedThreadPool(numConnections); + BagValidationJob.setZipFile(zf); + BagValidationJob.setBagGenerator(this); + log.debug("Validating hashes for zipped data files"); + int i = 0; + for (Entry entry : shaMap.entrySet()) { + BagValidationJob vj = new BagValidationJob(entry.getValue(), entry.getKey()); + executor.execute(vj); + i++; + if (i % 1000 == 0) { + log.info("Queuing Hash Validations: " + i); + } + } + log.debug("All Hash Validations Queued: " + i); + + executor.shutdown(); + try { + while (!executor.awaitTermination(10, TimeUnit.MINUTES)) { + log.debug("Awaiting completion of hash calculations."); + } + } catch (InterruptedException e) { + log.error("Hash Calculations interrupted", e); + } + log.debug("Hash Validations Completed"); + + } + + public void addEntry(ZipArchiveEntry zipArchiveEntry, InputStreamSupplier streamSupplier) throws IOException { + if (zipArchiveEntry.isDirectory() && !zipArchiveEntry.isUnixSymlink()) + dirs.addArchiveEntry(ZipArchiveEntryRequest.createZipArchiveEntryRequest(zipArchiveEntry, streamSupplier)); + else + scatterZipCreator.addArchiveEntry(zipArchiveEntry, streamSupplier); + } + + public void writeTo(ZipArchiveOutputStream zipArchiveOutputStream) + throws IOException, ExecutionException, InterruptedException { + log.debug("Writing dirs"); + dirs.writeTo(zipArchiveOutputStream); + dirs.close(); + log.debug("Dirs written"); + scatterZipCreator.writeTo(zipArchiveOutputStream); + log.debug("Files written"); + } + + static final String CRLF = "\r\n"; + + private String generateInfoFile(JsonObject map) { + log.debug("Generating info file"); + StringBuffer info = new StringBuffer(); + + JsonArray contactsArray = new JsonArray(); + if (aggregation.has(JsonLDTerm.contact.getLabel())) { + + JsonElement contacts = aggregation.get(JsonLDTerm.contact.getLabel()); + + if (contacts.isJsonArray()) { + for (int i = 0; i < contactsArray.size(); i++) { + info.append("Contact-Name: "); + JsonElement person = contactsArray.get(i); + if (person.isJsonPrimitive()) { + info.append(person.getAsString()); + info.append(CRLF); + + } else { + info.append(((JsonObject) person).get(JsonLDTerm.schemaOrg("name").getLabel()).getAsString()); + info.append(CRLF); + if (((JsonObject) person).has(JsonLDTerm.email.getLabel())) { + info.append("Contact-Email: "); + info.append(((JsonObject) person).get(JsonLDTerm.email.getLabel()).getAsString()); + info.append(CRLF); + } + } + } + } else { + info.append("Contact-Name: "); + + if (contacts.isJsonPrimitive()) { + info.append((String) contacts.getAsString()); + info.append(CRLF); + + } else { + JsonObject person = contacts.getAsJsonObject(); + + info.append(person.get(JsonLDTerm.schemaOrg("name").getLabel()).getAsString()); + info.append(CRLF); + if (person.has(JsonLDTerm.email.getLabel())) { + info.append("Contact-Email: "); + info.append(person.get(JsonLDTerm.email.getLabel()).getAsString()); + info.append(CRLF); + } + } + + } + } + + info.append("Source-Organization: " + ResourceBundle.getBundle("Bundle").getString("bagit.sourceOrganization")); + // ToDo - make configurable + info.append(CRLF); + + info.append("Organization-Address: " + WordUtils.wrap( + ResourceBundle.getBundle("Bundle").getString("bagit.sourceOrganizationAddress"), 78, CRLF + " ", true)); + info.append(CRLF); + + // Not a BagIt standard name + info.append( + "Organization-Email: " + ResourceBundle.getBundle("Bundle").getString("bagit.sourceOrganizationEmail")); + info.append(CRLF); + + info.append("External-Description: "); + + info.append( + // FixMe - handle description having subfields better + WordUtils.wrap(getSingleValue(aggregation.getAsJsonObject(JsonLDTerm.description.getLabel()), + JsonLDTerm.text.getLabel()), 78, CRLF + " ", true)); + + info.append(CRLF); + + info.append("Bagging-Date: "); + info.append((new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()))); + info.append(CRLF); + + info.append("External-Identifier: "); + info.append(aggregation.get("@id").getAsString()); + info.append(CRLF); + + info.append("Bag-Size: "); + info.append(byteCountToDisplaySize(totalDataSize)); + info.append(CRLF); + + info.append("Payload-Oxum: "); + info.append(Long.toString(totalDataSize)); + info.append("."); + info.append(Long.toString(dataCount)); + info.append(CRLF); + + info.append("Internal-Sender-Identifier: "); + String catalog = ResourceBundle.getBundle("Bundle").getString("bagit.sourceOrganization") + " Catalog"; + if (aggregation.has(JsonLDTerm.schemaOrg("includedInDataCatalog").getLabel())) { + catalog = aggregation.get(JsonLDTerm.schemaOrg("includedInDataCatalog").getLabel()).getAsString(); + } + info.append(catalog + ":" + aggregation.get(JsonLDTerm.schemaOrg("name").getLabel()).getAsString()); + info.append(CRLF); + + return info.toString(); + + } + + /** + * Kludge - handle when a single string is sent as an array of 1 string and, for + * cases where multiple values are sent when only one is expected, create a + * concatenated string so that information is not lost. + * + * @param jsonObject + * - the root json object + * @param key + * - the key to find a value(s) for + * @return - a single string + */ + String getSingleValue(JsonObject jsonObject, String key) { + String val = ""; + if (jsonObject.get(key).isJsonPrimitive()) { + val = jsonObject.get(key).getAsString(); + } else if (jsonObject.get(key).isJsonArray()) { + Iterator iter = jsonObject.getAsJsonArray(key).iterator(); + ArrayList stringArray = new ArrayList(); + while (iter.hasNext()) { + stringArray.add(iter.next().getAsString()); + } + if (stringArray.size() > 1) { + val = StringUtils.join((String[]) stringArray.toArray(), ","); + } else { + val = stringArray.get(0); + } + log.warn("Multiple values found for: " + key + ": " + val); + } + return val; + } + + // Used in validation + + public void incrementTotalDataSize(long inc) { + totalDataSize += inc; + } + + public String getHashtype() { + return hashtype.toString(); + } + + // Get's all "Has Part" children, standardized to send an array with 0,1, or + // more elements + private static JsonArray getChildren(JsonObject parent) { + JsonElement o = null; + o = parent.get(JsonLDTerm.schemaOrg("hasPart").getLabel()); + if (o == null) { + return new JsonArray(); + } else { + if (o.isJsonArray()) { + return (JsonArray) o; + } else if (o.isJsonPrimitive()) { + JsonArray children = new JsonArray(); + children.add(o); + return (children); + } + log.error("Error finding children: " + o.toString()); + return new JsonArray(); + } + } + + // Logic to decide if this is a container - + // first check for children, then check for source-specific type indicators + private static boolean childIsContainer(JsonObject item) { + if (getChildren(item).size() != 0) { + return true; + } + // Also check for any indicative type + Object o = item.get("@type"); + if (o != null) { + if (o instanceof JSONArray) { + // As part of an array + for (int i = 0; i < ((JSONArray) o).length(); i++) { + String type = ((JSONArray) o).getString(i).trim(); + if ("http://cet.ncsa.uiuc.edu/2016/Folder".equals(type)) { + return true; + } + } + } else if (o instanceof String) { + // Or as the only type + String type = ((String) o).trim(); + if ("http://cet.ncsa.uiuc.edu/2016/Folder".equals(type)) { + return true; + } + } + } + return false; + } + + public String getBagPath() { + return bagPath; + } + + public void setBagPath(String bagPath) { + this.bagPath = bagPath; + } + + private HttpGet createNewGetRequest(URI url, String returnType) { + + HttpGet request = null; + + if (apiKey != null) { + try { + String urlString = url.toURL().toString(); + // Add key as param - check whether it is the only param or not + urlString = urlString + ((urlString.indexOf('?') != -1) ? "&key=" : "?key=") + apiKey; + request = new HttpGet(new URI(urlString)); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else { + request = new HttpGet(url); + } + if (returnType != null) { + request.addHeader("accept", returnType); + } + return request; + } + + InputStreamSupplier getInputStreamSupplier(final String uri) { + + return new InputStreamSupplier() { + public InputStream get() { + int tries = 0; + while (tries < 5) { + try { + log.debug("Get # " + tries + " for " + uri); + HttpGet getMap = createNewGetRequest(new URI(uri), null); + log.trace("Retrieving " + tries + ": " + uri); + CloseableHttpResponse response; + response = client.execute(getMap, localContext); + if (response.getStatusLine().getStatusCode() == 200) { + log.trace("Retrieved: " + uri); + return response.getEntity().getContent(); + } + log.debug("Status: " + response.getStatusLine().getStatusCode()); + tries++; + + } catch (ClientProtocolException e) { + tries += 5; + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // Retry if this is a potentially temporary error such + // as a timeout + tries++; + log.warn("Attempt# " + tries + " : Unable to retrieve file: " + uri, e); + if (tries == 5) { + log.error("Final attempt failed for " + uri); + } + e.printStackTrace(); + } catch (URISyntaxException e) { + tries += 5; + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + log.error("Could not read: " + uri); + return null; + } + }; + } + + /** + * Adapted from org/apache/commons/io/FileUtils.java change to SI - add 2 digits + * of precision + */ + /** + * The number of bytes in a kilobyte. + */ + public static final long ONE_KB = 1000; + + /** + * The number of bytes in a megabyte. + */ + public static final long ONE_MB = ONE_KB * ONE_KB; + + /** + * The number of bytes in a gigabyte. + */ + public static final long ONE_GB = ONE_KB * ONE_MB; + + /** + * Returns a human-readable version of the file size, where the input represents + * a specific number of bytes. + * + * @param size + * the number of bytes + * @return a human-readable display value (includes units) + */ + public static String byteCountToDisplaySize(long size) { + String displaySize; + + if (size / ONE_GB > 0) { + displaySize = String.valueOf(Math.round(size / (ONE_GB / 100.0d)) / 100.0) + " GB"; + } else if (size / ONE_MB > 0) { + displaySize = String.valueOf(Math.round(size / (ONE_MB / 100.0d)) / 100.0) + " MB"; + } else if (size / ONE_KB > 0) { + displaySize = String.valueOf(Math.round(size / (ONE_KB / 100.0d)) / 100.0) + " KB"; + } else { + displaySize = String.valueOf(size) + " bytes"; + } + return displaySize; + } + + public void setAuthenticationKey(String tokenString) { + apiKey = tokenString; + } + +} \ No newline at end of file diff --git a/src/main/java/edu/harvard/iq/dataverse/util/bagit/BagValidationJob.java b/src/main/java/edu/harvard/iq/dataverse/util/bagit/BagValidationJob.java new file mode 100644 index 00000000000..cb53390250c --- /dev/null +++ b/src/main/java/edu/harvard/iq/dataverse/util/bagit/BagValidationJob.java @@ -0,0 +1,123 @@ +package edu.harvard.iq.dataverse.util.bagit; +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @author qqmyers@hotmail.com + */ + +import java.io.IOException; +import java.io.InputStream; +import java.util.zip.ZipException; + +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; +import org.apache.commons.compress.archivers.zip.ZipFile; +import org.apache.log4j.Logger; + +import edu.harvard.iq.dataverse.DataFile; + +import org.apache.commons.compress.utils.IOUtils; + +/** + * @author Jim + * + */ +public class BagValidationJob implements Runnable { + + private static final Logger log = Logger.getLogger(BagValidationJob.class); + + private static ZipFile zf = null; + private static BagGenerator bagGenerator = null; + + private String hash; + private String name; + private static String hashtype; + + public BagValidationJob(String value, String key) throws IllegalStateException { + if (zf == null || bagGenerator == null) { + throw new IllegalStateException( + "Static Zipfile and BagGenerator must be set before creating ValidationJobs"); + } + hash = value; + name = key; + + } + + /* + * (non-Javadoc) + * + * @see java.lang.Runnable#run() + */ + public void run() { + + String realHash = generateFileHash(name, zf); + if (hash.equals(realHash)) { + log.debug("Valid hash for " + name); + } else { + log.error("Invalid " + bagGenerator.getHashtype() + " for " + name); + log.debug("As sent: " + hash); + log.debug("As calculated: " + realHash); + } + } + + private String generateFileHash(String name, ZipFile zf) { + + ZipArchiveEntry archiveEntry1 = zf.getEntry(name); + // Error check - add file sizes to compare against supplied stats + + long start = System.currentTimeMillis(); + InputStream inputStream = null; + String realHash = null; + try { + inputStream = zf.getInputStream(archiveEntry1); + if (hashtype.equals(DataFile.ChecksumType.SHA1)) { + realHash = DigestUtils.sha1Hex(inputStream); + } else if (hashtype.equals(DataFile.ChecksumType.SHA256)) { + realHash = DigestUtils.sha256Hex(inputStream); + } else if (hashtype.equals(DataFile.ChecksumType.SHA512)) { + realHash = DigestUtils.sha512Hex(inputStream); + } else if (hashtype.equals(DataFile.ChecksumType.MD5)) { + realHash = DigestUtils.md5Hex(inputStream); + } else { + log.warn("Unknown hash type: " + hashtype); + } + + } catch (ZipException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + IOUtils.closeQuietly(inputStream); + } + log.debug("Retrieve/compute time = " + (System.currentTimeMillis() - start) + " ms"); + // Error check - add file sizes to compare against supplied stats + bagGenerator.incrementTotalDataSize(archiveEntry1.getSize()); + return realHash; + } + + public static void setZipFile(ZipFile zf) { + BagValidationJob.zf = zf; + } + + public static void setBagGenerator(BagGenerator bg) { + bagGenerator = bg; + hashtype = bagGenerator.getHashtype(); + if (hashtype == null) { + log.warn("Null hashtype. Validation will not occur"); + } + + } + +} diff --git a/src/main/java/edu/harvard/iq/dataverse/util/bagit/OREMap.java b/src/main/java/edu/harvard/iq/dataverse/util/bagit/OREMap.java index 4708719567d..56be3cc128a 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/bagit/OREMap.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/bagit/OREMap.java @@ -40,6 +40,11 @@ public OREMap(DatasetVersion version) { } public void writeOREMap(OutputStream outputStream) throws Exception { + outputStream.write(getOREMap().toString().getBytes("UTF8")); + outputStream.flush(); + } + + public JsonObject getOREMap() throws Exception { // Add namespaces we'll definitely use to Context // Additional namespaces are added as needed below @@ -51,10 +56,10 @@ public void writeOREMap(OutputStream outputStream) throws Exception { Dataset dataset = version.getDataset(); String id = dataset.getGlobalId().asString(); JsonArrayBuilder fileArray = Json.createArrayBuilder(); - //The map describes an aggregation + // The map describes an aggregation JsonObjectBuilder aggBuilder = Json.createObjectBuilder(); List fields = version.getDatasetFields(); - //That has it's own metadata + // That has it's own metadata for (DatasetField field : fields) { if (!field.isEmpty()) { DatasetFieldType dfType = field.getDatasetFieldType(); @@ -79,7 +84,7 @@ public void writeOREMap(OutputStream outputStream) throws Exception { } } else { // ToDo: Needs to be recursive (as in JsonPrinter?) - //Use metadatablock URI or define a URI for this filed based on the path + // Use metadatablock URI or define a URI for this filed based on the path String subFieldNamespaceUri = dfType.getMetadataBlock().getNamespaceUri(); if (subFieldNamespaceUri == null) { subFieldNamespaceUri = SystemConfig.getDataverseSiteUrlStatic() + "/schema/" @@ -97,8 +102,8 @@ public void writeOREMap(OutputStream outputStream) throws Exception { DatasetFieldType dsft = dsf.getDatasetFieldType(); // which may have multiple values if (!dsf.isEmpty()) { - // Add context entry - //ToDo - also needs to recurse here? + // Add context entry + // ToDo - also needs to recurse here? JsonLDTerm subFieldName = null; if (dsft.getUri() != null) { subFieldName = new JsonLDTerm(dsft.getTitle(), dsft.getUri()); @@ -127,7 +132,7 @@ public void writeOREMap(OutputStream outputStream) throws Exception { aggBuilder.add(fieldName.getLabel(), (valArray.size() != 1) ? valArray : valArray.get(0)); } } - //Add metadata related to the Dataset/DatasetVersion + // Add metadata related to the Dataset/DatasetVersion aggBuilder.add("@id", id) .add("@type", Json.createArrayBuilder().add(JsonLDTerm.ore("Aggregation").getLabel()) @@ -152,7 +157,7 @@ public void writeOREMap(OutputStream outputStream) throws Exception { addIfNotNull(aggBuilder, JsonLDTerm.conditions, terms.getConditions()); addIfNotNull(aggBuilder, JsonLDTerm.disclaimer, terms.getDisclaimer()); - //Add fileTermsofAccess as an object since it is compound + // Add fileTermsofAccess as an object since it is compound JsonObjectBuilder fAccess = Json.createObjectBuilder(); addIfNotNull(fAccess, JsonLDTerm.termsOfAccess, terms.getTermsOfAccess()); addIfNotNull(fAccess, JsonLDTerm.fileRequestAccess, terms.isFileAccessRequest()); @@ -170,7 +175,8 @@ public void writeOREMap(OutputStream outputStream) throws Exception { aggBuilder.add(JsonLDTerm.schemaOrg("includedInDataCatalog").getLabel(), dataset.getDataverseContext().getDisplayName()); - //The aggregation aggregates aggregatedresources (Datafiles) which each have their own entry and metadata + // The aggregation aggregates aggregatedresources (Datafiles) which each have + // their own entry and metadata JsonArrayBuilder aggResArrayBuilder = Json.createArrayBuilder(); for (FileMetadata fmd : version.getFileMetadatas()) { @@ -224,7 +230,7 @@ public void writeOREMap(OutputStream outputStream) throws Exception { addIfNotNull(aggRes, JsonLDTerm.rootDataFileId, df.getRootDataFileId()); addIfNotNull(aggRes, JsonLDTerm.previousDataFileId, df.getPreviousDataFileId()); JsonObject checksum = null; - //Add checksum. RDA recommends SHA-512 + // Add checksum. RDA recommends SHA-512 if (df.getChecksumType() != null && df.getChecksumValue() != null) { checksum = Json.createObjectBuilder().add("@type", df.getChecksumType().toString()) .add("@value", df.getChecksumValue()).build(); @@ -236,21 +242,22 @@ public void writeOREMap(OutputStream outputStream) throws Exception { tabTags = jab.build(); } addIfNotNull(aggRes, JsonLDTerm.tabularTags, tabTags); - //Add lates resource to the array + //Add latest resource to the array aggResArrayBuilder.add(aggRes.build()); } - //Build the '@context' object for json-ld based on the localContext entries + // Build the '@context' object for json-ld based on the localContext entries JsonObjectBuilder contextBuilder = Json.createObjectBuilder(); for (Entry e : localContext.entrySet()) { contextBuilder.add(e.getKey(), e.getValue()); } - //Now create the overall map object with it's metadata + // Now create the overall map object with it's metadata JsonObject oremap = Json.createObjectBuilder() .add(JsonLDTerm.dcTerms("modified").getLabel(), LocalDate.now().toString()) .add(JsonLDTerm.dcTerms("creator").getLabel(), ResourceBundle.getBundle("Bundle").getString("institution.name")) .add("@type", JsonLDTerm.ore("ResourceMap").getLabel()) - //Define an id for the map itself (separate from the @id of the dataset being described + // Define an id for the map itself (separate from the @id of the dataset being + // described .add("@id", SystemConfig.getDataverseSiteUrlStatic() + "/api/datasets/export?exporter=" + OAI_OREExporter.NAME + "&persistentId=" + id) @@ -260,14 +267,14 @@ public void writeOREMap(OutputStream outputStream) throws Exception { .add(JsonLDTerm.schemaOrg("hasPart").getLabel(), fileArray.build()).build()) // and finally add the context .add("@context", contextBuilder.build()).build(); - - outputStream.write(oremap.toString().getBytes("UTF8")); - outputStream.flush(); + return oremap; } - /* Simple methods to only add an entry to JSON if the value of the term is non-null. - * Methods created for string, JsonValue, boolean, and long */ - + /* + * Simple methods to only add an entry to JSON if the value of the term is + * non-null. Methods created for string, JsonValue, boolean, and long + */ + private void addIfNotNull(JsonObjectBuilder builder, JsonLDTerm key, String value) { if (value != null) { builder.add(key.getLabel(), value); diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/DPNSubmissionWorkflowStep.java b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/DPNSubmissionWorkflowStep.java new file mode 100644 index 00000000000..43ba2152e71 --- /dev/null +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/DPNSubmissionWorkflowStep.java @@ -0,0 +1,54 @@ +package edu.harvard.iq.dataverse.workflow.internalspi; + +import edu.harvard.iq.dataverse.engine.command.impl.SubmitToArchiveCommand; +import edu.harvard.iq.dataverse.workflow.WorkflowContext; +import edu.harvard.iq.dataverse.workflow.step.Failure; +import edu.harvard.iq.dataverse.workflow.step.WorkflowStep; +import edu.harvard.iq.dataverse.workflow.step.WorkflowStepResult; + +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * A step that submits a BagIT bag of the newly published dataset version to DPN + * via he Duracloud Vault API. + * + * @author jimmyers + */ + +public class DPNSubmissionWorkflowStep implements WorkflowStep { + + private static final Logger logger = Logger.getLogger(DPNSubmissionWorkflowStep.class.getName()); + + public DPNSubmissionWorkflowStep(Map paramSet) { + } + + @Override + public WorkflowStepResult run(WorkflowContext context) { + String host=(String) context.getSettings().get(":DuraCloudHost"); + String port = (String) context.getSettings().get(":DuraCloudPort"); + String dpnContext = (String) context.getSettings().get(":DuraCloudContext"); + if(host==null) { + logger.severe("No DuraCloudHost - DPN Submission not attempted"); + return new Failure("No DuraCloudHost", "DuraCloudHost not found in Settings"); + } else { + return SubmitToArchiveCommand.performDPNSubmission( + context.getDataset().getReleasedVersion(), + context.getRequest().getAuthenticatedUser(), host, port, dpnContext, context.getApiToken()); + } + } + + + @Override + public WorkflowStepResult resume(WorkflowContext context, Map internalData, String externalData) { + throw new UnsupportedOperationException("Not supported yet."); // This class does not need to resume. + } + + @Override + public void rollback(WorkflowContext context, Failure reason) { + logger.log(Level.INFO, "rolling back workflow invocation {0}", context.getInvocationId()); + logger.warning("Manual cleanup of DPN Space: " + context.getDataset().getGlobalId().asString().replace(':', '-') + .replace('/', '-').replace('.', '-').toLowerCase() + " may be required"); + } +} diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java index 30ca94f8833..5d4975417a5 100644 --- a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java @@ -19,6 +19,8 @@ public WorkflowStep getStep(String stepType, Map stepParameters) return new PauseStep(stepParameters); case "http/sr": return new HttpSendReceiveClientStep(stepParameters); + case "dpn": + return new DPNSubmissionWorkflowStep(stepParameters); default: throw new IllegalArgumentException("Unsupported step type: '" + stepType + "'."); } diff --git a/src/main/webapp/dataset-versions.xhtml b/src/main/webapp/dataset-versions.xhtml index 1708372bde2..a516829216e 100644 --- a/src/main/webapp/dataset-versions.xhtml +++ b/src/main/webapp/dataset-versions.xhtml @@ -129,7 +129,7 @@ - + @@ -141,6 +141,17 @@ + + + + + + + + + + From 72e08a9083b031c6f78a5da6f3b71e29d35848d9 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Fri, 14 Sep 2018 15:06:26 -0400 Subject: [PATCH 004/241] submission api --- .../edu/harvard/iq/dataverse/api/Admin.java | 38 ++++++++++++++++++- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java index 7b65b8c92a3..000f7795220 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java @@ -4,13 +4,16 @@ import edu.harvard.iq.dataverse.DataFileServiceBean; import edu.harvard.iq.dataverse.Dataset; import edu.harvard.iq.dataverse.DatasetServiceBean; +import edu.harvard.iq.dataverse.DatasetVersion; +import edu.harvard.iq.dataverse.DatasetVersionServiceBean; import edu.harvard.iq.dataverse.Dataverse; +import edu.harvard.iq.dataverse.DataverseRequestServiceBean; import edu.harvard.iq.dataverse.DataverseSession; import edu.harvard.iq.dataverse.DvObject; import edu.harvard.iq.dataverse.EMailValidator; +import edu.harvard.iq.dataverse.EjbDataverseEngine; import edu.harvard.iq.dataverse.UserServiceBean; import edu.harvard.iq.dataverse.actionlogging.ActionLogRecord; -import static edu.harvard.iq.dataverse.api.AbstractApiBean.error; import edu.harvard.iq.dataverse.api.dto.RoleDTO; import edu.harvard.iq.dataverse.authorization.AuthenticatedUserDisplayInfo; import edu.harvard.iq.dataverse.authorization.AuthenticationProvider; @@ -68,7 +71,9 @@ import edu.harvard.iq.dataverse.dataset.DatasetThumbnail; import edu.harvard.iq.dataverse.dataset.DatasetUtil; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; +import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import edu.harvard.iq.dataverse.engine.command.impl.RegisterDvObjectCommand; +import edu.harvard.iq.dataverse.engine.command.impl.SubmitToArchiveCommand; import edu.harvard.iq.dataverse.ingest.IngestServiceBean; import edu.harvard.iq.dataverse.userdata.UserListMaker; import edu.harvard.iq.dataverse.userdata.UserListResult; @@ -104,6 +109,12 @@ public class Admin extends AbstractApiBean { DataFileServiceBean fileService; @EJB DatasetServiceBean datasetService; + @EJB + DatasetVersionServiceBean datasetversionService; + @Inject + DataverseRequestServiceBean dvRequestService; + @EJB + EjbDataverseEngine commandEngine; // Make the session available @Inject @@ -1198,7 +1209,30 @@ public Response updateHashValues(@PathParam("alg") String alg, @QueryParam("num" return ok("Datafile rehashing complete." + successes + " of " + rehashed + " files successfully rehashed."); } - + @GET + @Path("/submitDataVersionToDPN/{dvid}") + public Response submitDatasetVersionToDPN(@PathParam("dvid") long dvid) { + + try { + AuthenticatedUser au = findAuthenticatedUserOrDie(); + if (au.isSuperuser()) { + DatasetVersion dv = datasetversionService.retrieveDatasetVersionByVersionId(dvid).getDatasetVersion(); + SubmitToArchiveCommand cmd = new SubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); + try { + commandEngine.submit(cmd); + return ok("DatasetVersion id=" + dvid + " submitted to DPN/Duracloud"); + } catch (CommandException ex) { + logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); + return error(Response.Status.INTERNAL_SERVER_ERROR, ex.getMessage()); + } + } else { + return error(Status.UNAUTHORIZED, "must be superuser"); + } + } catch (WrappedResponse e1) { + return error(Status.UNAUTHORIZED, "api key required"); + } + } + @DELETE @Path("/clearMetricsCache") public Response clearMetricsCache() { From 6e2e9d9c2fde0c2f04682ba7a3e6085294e8b4c6 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Sat, 15 Sep 2018 17:58:16 -0400 Subject: [PATCH 005/241] removing GUI and adding info to API return to provide URL --- .../edu/harvard/iq/dataverse/api/Admin.java | 23 +++++++++++++------ src/main/webapp/dataset-versions.xhtml | 13 +---------- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java index 000f7795220..f02eb09d76a 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java @@ -1217,13 +1217,22 @@ public Response submitDatasetVersionToDPN(@PathParam("dvid") long dvid) { AuthenticatedUser au = findAuthenticatedUserOrDie(); if (au.isSuperuser()) { DatasetVersion dv = datasetversionService.retrieveDatasetVersionByVersionId(dvid).getDatasetVersion(); - SubmitToArchiveCommand cmd = new SubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); - try { - commandEngine.submit(cmd); - return ok("DatasetVersion id=" + dvid + " submitted to DPN/Duracloud"); - } catch (CommandException ex) { - logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); - return error(Response.Status.INTERNAL_SERVER_ERROR, ex.getMessage()); + if (dv.getArchivalCopyLocation() == null) { + SubmitToArchiveCommand cmd = new SubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); + try { + dv = commandEngine.submit(cmd); + if (dv.getArchivalCopyLocation() != null) { + return ok("DatasetVersion id=" + dvid + " submitted to DPN/Duracloud at: " + + dv.getArchivalCopyLocation()); + } else { + return error(Status.CONFLICT, "Error submitting version due to conflict/error at DPN"); + } + } catch (CommandException ex) { + logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); + return error(Response.Status.INTERNAL_SERVER_ERROR, ex.getMessage()); + } + } else { + return error(Status.BAD_REQUEST, "Version already archived at: " + dv.getArchivalCopyLocation()); } } else { return error(Status.UNAUTHORIZED, "must be superuser"); diff --git a/src/main/webapp/dataset-versions.xhtml b/src/main/webapp/dataset-versions.xhtml index a516829216e..1708372bde2 100644 --- a/src/main/webapp/dataset-versions.xhtml +++ b/src/main/webapp/dataset-versions.xhtml @@ -129,7 +129,7 @@ - + @@ -141,17 +141,6 @@ - - - - - - - - - - From 31bf8f7a1b8d00ca78a826cfe539142df41140b5 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Thu, 20 Sep 2018 15:03:03 -0400 Subject: [PATCH 006/241] Simplifying core terms/ using static namespace --- .../dataverse/util/json/JsonLDNamespace.java | 5 +- .../iq/dataverse/util/json/JsonLDTerm.java | 213 ++++++++---------- 2 files changed, 90 insertions(+), 128 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDNamespace.java b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDNamespace.java index e357f6bd6a1..bda4a55d623 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDNamespace.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDNamespace.java @@ -1,7 +1,5 @@ package edu.harvard.iq.dataverse.util.json; -import edu.harvard.iq.dataverse.util.SystemConfig; - public class JsonLDNamespace { String prefix; @@ -9,8 +7,7 @@ public class JsonLDNamespace { String url; - //FixMe - use a universal Dataverse URL rather than an instance one for Core terms - public static JsonLDNamespace dvcore = new JsonLDNamespace("dvcore", SystemConfig.getDataverseSiteUrlStatic() + "/schema/core#"); + public static JsonLDNamespace dvcore = new JsonLDNamespace("dvcore", "https://dataverse.org/schema/core#"); public static JsonLDNamespace dcterms = new JsonLDNamespace("dcterms","http://purl.org/dc/terms/"); public static JsonLDNamespace ore = new JsonLDNamespace("ore","http://www.openarchives.org/ore/terms/"); public static JsonLDNamespace schema = new JsonLDNamespace("schema","http://schema.org/"); diff --git a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java index 642404fb545..c6fb475314e 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java @@ -3,136 +3,101 @@ import java.util.HashMap; import java.util.Map; -import javax.json.JsonObject; -import javax.json.JsonValue; +public class JsonLDTerm { -import edu.harvard.iq.dataverse.util.SystemConfig; + JsonLDNamespace namespace = null; + + String term = null; + + String url = null; + + public static JsonLDTerm termsOfUse = JsonLDTerm.DVCore("termsOfUse"); + public static JsonLDTerm confidentialityDeclaration = JsonLDTerm.DVCore("confidentialityDeclaration"); + public static JsonLDTerm specialPermissions = JsonLDTerm.DVCore("specialPermissions"); + public static JsonLDTerm restrictions = JsonLDTerm.DVCore("restrictions"); + public static JsonLDTerm citationRequirements = JsonLDTerm.DVCore("citationRequirements"); + public static JsonLDTerm depositorRequirements = JsonLDTerm.DVCore("depositorRequirements"); + public static JsonLDTerm conditions = JsonLDTerm.DVCore("conditions"); + public static JsonLDTerm disclaimer = JsonLDTerm.DVCore("disclaimer"); + + public static JsonLDTerm fileTermsOfAccess = JsonLDTerm.DVCore("fileTermsOfAccess"); + + public static JsonLDTerm termsOfAccess = JsonLDTerm.DVCore("termsOfAccess"); + public static JsonLDTerm fileRequestAccess = JsonLDTerm.DVCore("fileRequestAccess"); + public static JsonLDTerm dataAccessPlace = JsonLDTerm.DVCore("dataAccessPlace"); + public static JsonLDTerm originalArchive = JsonLDTerm.DVCore("originalArchive"); + public static JsonLDTerm availabilityStatus = JsonLDTerm.DVCore("availabilityStatus"); + public static JsonLDTerm contactForAccess = JsonLDTerm.DVCore("contactForAccess"); + public static JsonLDTerm sizeOfCollection = JsonLDTerm.DVCore("sizeOfCollection"); + public static JsonLDTerm studyCompletion = JsonLDTerm.DVCore("studyCompletion"); + + public static JsonLDTerm restricted = JsonLDTerm.DVCore("restricted"); + public static JsonLDTerm directoryLabel = JsonLDTerm.DVCore("directoryLabel"); + public static JsonLDTerm datasetVersionId = JsonLDTerm.DVCore("datasetVersionId"); + public static JsonLDTerm categories = JsonLDTerm.DVCore("categories"); + public static JsonLDTerm filesize = JsonLDTerm.DVCore("filesize"); + public static JsonLDTerm storageIdentifier = JsonLDTerm.DVCore("storageIdentifier"); + public static JsonLDTerm originalFileFormat = JsonLDTerm.DVCore("originalFileFormat"); + public static JsonLDTerm originalFormatLabel = JsonLDTerm.DVCore("originalFormatLabel"); + public static JsonLDTerm UNF = JsonLDTerm.DVCore("UNF"); + public static JsonLDTerm rootDataFileId = JsonLDTerm.DVCore("rootDataFileId"); + public static JsonLDTerm previousDataFileId = JsonLDTerm.DVCore("previousDataFileId"); + public static JsonLDTerm checksum = JsonLDTerm.DVCore("checksum"); + public static JsonLDTerm tabularTags = JsonLDTerm.DVCore("tabularTags"); + + public static JsonLDTerm contact = JsonLDTerm.DVCore("contact"); + public static JsonLDTerm affiliation = JsonLDTerm.DVCore("affiliation"); + public static JsonLDTerm email = JsonLDTerm.DVCore("email"); + public static JsonLDTerm description = JsonLDTerm.DVCore("description"); + public static JsonLDTerm text = JsonLDTerm.DVCore("text"); + public static JsonLDTerm totalSize = JsonLDTerm.DVCore("totalSize"); + public static JsonLDTerm fileCount = JsonLDTerm.DVCore("fileCount"); + public static JsonLDTerm maxFileSize = JsonLDTerm.DVCore("maxFileSize"); + + public JsonLDTerm(JsonLDNamespace namespace, String term) { + this.namespace = namespace; + this.term = term; + } -public class JsonLDTerm { + public JsonLDTerm(String term, String url) { + this.term = term; + this.url = url; + } - JsonLDNamespace namespace = null; - - String term = null; - - String url = null; - private static Map translations = new HashMap(); - - public static JsonLDTerm termsOfUse = JsonLDTerm.DVCore("termsOfUse"); - public static JsonLDTerm confidentialityDeclaration = JsonLDTerm.DVCore("confidentialityDeclaration"); - public static JsonLDTerm specialPermissions = JsonLDTerm.DVCore("specialPermissions"); - public static JsonLDTerm restrictions = JsonLDTerm.DVCore("restrictions"); - public static JsonLDTerm citationRequirements = JsonLDTerm.DVCore("citationRequirements"); - public static JsonLDTerm depositorRequirements = JsonLDTerm.DVCore("depositorRequirements"); - public static JsonLDTerm conditions = JsonLDTerm.DVCore("conditions"); - public static JsonLDTerm disclaimer = JsonLDTerm.DVCore("disclaimer"); - - public static JsonLDTerm fileTermsOfAccess = JsonLDTerm.DVCore("fileTermsOfAccess"); - - public static JsonLDTerm termsOfAccess = JsonLDTerm.DVCore("termsOfAccess"); - public static JsonLDTerm fileRequestAccess = JsonLDTerm.DVCore("fileRequestAccess"); - public static JsonLDTerm dataAccessPlace = JsonLDTerm.DVCore("dataAccessPlace"); - public static JsonLDTerm originalArchive = JsonLDTerm.DVCore("originalArchive"); - public static JsonLDTerm availabilityStatus = JsonLDTerm.DVCore("availabilityStatus"); - public static JsonLDTerm contactForAccess = JsonLDTerm.DVCore("contactForAccess"); - public static JsonLDTerm sizeOfCollection = JsonLDTerm.DVCore("sizeOfCollection"); - public static JsonLDTerm studyCompletion = JsonLDTerm.DVCore("studyCompletion"); - - public static JsonLDTerm restricted = JsonLDTerm.DVCore("restricted"); - public static JsonLDTerm directoryLabel = JsonLDTerm.DVCore("directoryLabel"); - public static JsonLDTerm datasetVersionId = JsonLDTerm.DVCore("datasetVersionId"); - public static JsonLDTerm categories = JsonLDTerm.DVCore("categories"); - public static JsonLDTerm filesize = JsonLDTerm.DVCore("filesize"); - public static JsonLDTerm storageIdentifier = JsonLDTerm.DVCore("storageIdentifier"); - public static JsonLDTerm originalFileFormat = JsonLDTerm.DVCore("originalFileFormat"); - public static JsonLDTerm originalFormatLabel = JsonLDTerm.DVCore("originalFormatLabel"); - public static JsonLDTerm UNF = JsonLDTerm.DVCore("UNF"); - public static JsonLDTerm rootDataFileId = JsonLDTerm.DVCore("rootDataFileId"); - public static JsonLDTerm previousDataFileId = JsonLDTerm.DVCore("previousDataFileId"); - public static JsonLDTerm checksum = JsonLDTerm.DVCore("checksum"); - public static JsonLDTerm tabularTags = JsonLDTerm.DVCore("tabularTags"); - - public static JsonLDTerm contact = JsonLDTerm.DVCore("contact"); - public static JsonLDTerm affiliation = JsonLDTerm.DVCore("affiliation"); - public static JsonLDTerm email = JsonLDTerm.DVCore("email"); - public static JsonLDTerm description = JsonLDTerm.DVCore("description"); - public static JsonLDTerm text = JsonLDTerm.DVCore("text"); - public static JsonLDTerm totalSize = JsonLDTerm.DVCore("totalSize"); - public static JsonLDTerm fileCount = JsonLDTerm.DVCore("fileCount"); - public static JsonLDTerm maxFileSize = JsonLDTerm.DVCore("maxFileSize"); - - static{ - /* Translations are intended to project-specific translations for the following use cases: - * * A project simply wishes to use a different vocabulary for export, e.g. mapping schema.org entries to Dublin core - * * Basic information, such as a contact is coming from a metadata block which may be custom to the project - * In both cases, the translations map requires the url of the original term and a JSONLDTerm that should be used as a replacement. - */ - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation#Contact", JsonLDTerm.contact); - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation/datasetContact#Name", JsonLDTerm.schemaOrg("name")); - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation/datasetContact#E-mail", JsonLDTerm.email); - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation/datasetContact#Affiliation", JsonLDTerm.affiliation); - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation#Description", JsonLDTerm.description); - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation/dsDescription#Text", JsonLDTerm.text); + public static JsonLDTerm DVCore(String term) { + return new JsonLDTerm(JsonLDNamespace.dvcore, term); + } + public static JsonLDTerm ore(String term) { + return new JsonLDTerm(JsonLDNamespace.ore, term); } + public static JsonLDTerm schemaOrg(String term) { + return new JsonLDTerm(JsonLDNamespace.schema, term); + } - public JsonLDTerm(JsonLDNamespace namespace, String term) { - JsonLDTerm translated = translations.get(namespace.getUrl() + term); - if (translated != null) { - this.namespace = translated.namespace; - this.term = translated.term; - this.url = translated.url; - } else { - this.namespace = namespace; - this.term = term; - } - } - - public JsonLDTerm(String term, String url) { - JsonLDTerm translated = translations.get(url); - if (translated != null) { - this.namespace = translated.namespace; - this.term = translated.term; - this.url = translated.url; - } - this.term = term; - this.url = url; - } - - public static JsonLDTerm DVCore(String term) { - return new JsonLDTerm(JsonLDNamespace.dvcore, term); - } - - public static JsonLDTerm ore(String term) { - return new JsonLDTerm(JsonLDNamespace.ore, term); - } - - public static JsonLDTerm schemaOrg(String term) { - return new JsonLDTerm(JsonLDNamespace.schema, term); - } - - public static JsonLDTerm dcTerms(String term) { - return new JsonLDTerm(JsonLDNamespace.dcterms, term); - } - - public String getLabel() { - if (namespace == null) { - return term; - } else { - return namespace.getPrefix() + ":" + term; - } - } - - public String getUrl() { - if (namespace == null) { - return url; - } else { - return namespace.getUrl() + term; - } - } - - public boolean inNamespace() { - return (namespace != null); - } + public static JsonLDTerm dcTerms(String term) { + return new JsonLDTerm(JsonLDNamespace.dcterms, term); + } + + public String getLabel() { + if (namespace == null) { + return term; + } else { + return namespace.getPrefix() + ":" + term; + } + } + + public String getUrl() { + if (namespace == null) { + return url; + } else { + return namespace.getUrl() + term; + } + } + + public boolean inNamespace() { + return (namespace != null); + } } From 0c3d346f271efe75e0df37c9ae45d62814e65fe4 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Thu, 20 Sep 2018 16:14:21 -0400 Subject: [PATCH 007/241] draft tsv mapping --- scripts/api/data/metadatablocks/citation.tsv | 46 +++++++++---------- .../iq/dataverse/util/json/JsonLDTerm.java | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/scripts/api/data/metadatablocks/citation.tsv b/scripts/api/data/metadatablocks/citation.tsv index e45122ef614..7e6c53ab98b 100644 --- a/scripts/api/data/metadatablocks/citation.tsv +++ b/scripts/api/data/metadatablocks/citation.tsv @@ -1,15 +1,15 @@ #metadataBlock name dataverseAlias displayName - citation Citation Metadata + citation Citation Metadata https://dataverse.org/schema/ #datasetField name title description watermark fieldType displayOrder displayFormat advancedSearchField allowControlledVocabulary allowmultiples facetable displayoncreate required parent metadatablock_id - title Title Full title by which the Dataset is known. Enter title... text 0 TRUE FALSE FALSE FALSE TRUE TRUE citation + title Title Full title by which the Dataset is known. Enter title... text 0 TRUE FALSE FALSE FALSE TRUE TRUE citation http://purl.org/dc/terms/title subtitle Subtitle A secondary title used to amplify or state certain limitations on the main title. text 1 FALSE FALSE FALSE FALSE FALSE FALSE citation - alternativeTitle Alternative Title A title by which the work is commonly referred, or an abbreviation of the title. text 2 FALSE FALSE FALSE FALSE FALSE FALSE citation - alternativeURL Alternative URL A URL where the dataset can be viewed, such as a personal or project website. Enter full URL, starting with http:// url 3 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE citation + alternativeTitle Alternative Title A title by which the work is commonly referred, or an abbreviation of the title. text 2 FALSE FALSE FALSE FALSE FALSE FALSE citation http://purl.org/dc/terms/alternative + alternativeURL Alternative URL A URL where the dataset can be viewed, such as a personal or project website. Enter full URL, starting with http:// url 3 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE citation https://schema.org/distribution otherId Other ID Another unique identifier that identifies this Dataset (e.g., producer's or another repository's number). none 4 : FALSE FALSE TRUE FALSE FALSE FALSE citation otherIdAgency Agency Name of agency which generated this identifier. text 5 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE otherId citation otherIdValue Identifier Other identifier that corresponds to this Dataset. text 6 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE otherId citation - author Author The person(s), corporate body(ies), or agency(ies) responsible for creating the work. none 7 FALSE FALSE TRUE FALSE TRUE FALSE citation - authorName Name The author's Family Name, Given Name or the name of the organization responsible for this Dataset. FamilyName, GivenName or Organization text 8 #VALUE TRUE FALSE FALSE TRUE TRUE TRUE author citation + author Author The person(s), corporate body(ies), or agency(ies) responsible for creating the work. none 7 FALSE FALSE TRUE FALSE TRUE FALSE citation http://purl.org/dc/terms/creator + authorName Name The author's Family Name, Given Name or the name of the organization responsible for this Dataset. FamilyName, GivenName or Organization text 8 #VALUE TRUE FALSE FALSE TRUE TRUE TRUE author citation http://purl.org/dc/terms/creator authorAffiliation Affiliation The organization with which the author is affiliated. text 9 (#VALUE) TRUE FALSE FALSE TRUE TRUE FALSE author citation authorIdentifierScheme Identifier Scheme Name of the identifier scheme (ORCID, ISNI). text 10 - #VALUE: FALSE TRUE FALSE FALSE TRUE FALSE author citation authorIdentifier Identifier Uniquely identifies an individual author or organization, according to various schemes. text 11 #VALUE FALSE FALSE FALSE FALSE TRUE FALSE author citation @@ -17,10 +17,10 @@ datasetContactName Name The contact's Family Name, Given Name or the name of the organization. FamilyName, GivenName or Organization text 13 #VALUE FALSE FALSE FALSE FALSE TRUE FALSE datasetContact citation datasetContactAffiliation Affiliation The organization with which the contact is affiliated. text 14 (#VALUE) FALSE FALSE FALSE FALSE TRUE FALSE datasetContact citation datasetContactEmail E-mail The e-mail address(es) of the contact(s) for the Dataset. This will not be displayed. email 15 #EMAIL FALSE FALSE FALSE FALSE TRUE TRUE datasetContact citation - dsDescription Description A summary describing the purpose, nature, and scope of the Dataset. none 16 FALSE FALSE TRUE FALSE TRUE FALSE citation + dsDescription Description A summary describing the purpose, nature, and scope of the Dataset. none 16 FALSE FALSE TRUE FALSE TRUE FALSE citation dsDescriptionValue Text A summary describing the purpose, nature, and scope of the Dataset. textbox 17 #VALUE TRUE FALSE FALSE FALSE TRUE TRUE dsDescription citation - dsDescriptionDate Date In cases where a Dataset contains more than one description (for example, one might be supplied by the data producer and another prepared by the data repository where the data are deposited), the date attribute is used to distinguish between the two descriptions. The date attribute follows the ISO convention of YYYY-MM-DD. YYYY-MM-DD date 18 (#VALUE) FALSE FALSE FALSE FALSE TRUE FALSE dsDescription citation - subject Subject Domain-specific Subject Categories that are topically relevant to the Dataset. text 19 TRUE TRUE TRUE TRUE TRUE TRUE citation + dsDescriptionDate Date In cases where a Dataset contains more than one description (for example, one might be supplied by the data producer and another prepared by the data repository where the data are deposited), the date attribute is used to distinguish between the two descriptions. The date attribute follows the ISO convention of YYYY-MM-DD. YYYY-MM-DD date 18 (#VALUE) FALSE FALSE FALSE FALSE TRUE FALSE dsDescription citation http://purl.org/dc/terms/identifier + subject Subject Domain-specific Subject Categories that are topically relevant to the Dataset. text 19 TRUE TRUE TRUE TRUE TRUE TRUE citation http://purl.org/dc/terms/subject keyword Keyword Key terms that describe important aspects of the Dataset. none 20 FALSE FALSE TRUE FALSE TRUE FALSE citation keywordValue Term Key terms that describe important aspects of the Dataset. Can be used for building keyword indexes and for classification and retrieval purposes. A controlled vocabulary can be employed. The vocab attribute is provided for specification of the controlled vocabulary in use, such as LCSH, MeSH, or others. The vocabURI attribute specifies the location for the full controlled vocabulary. text 21 #VALUE TRUE FALSE FALSE TRUE TRUE FALSE keyword citation keywordVocabulary Vocabulary For the specification of the keyword controlled vocabulary in use, such as LCSH, MeSH, or others. text 22 (#VALUE) FALSE FALSE FALSE FALSE TRUE FALSE keyword citation @@ -29,13 +29,13 @@ topicClassValue Term Topic or Subject term that is relevant to this Dataset. text 25 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE topicClassification citation topicClassVocab Vocabulary Provided for specification of the controlled vocabulary in use, e.g., LCSH, MeSH, etc. text 26 (#VALUE) FALSE FALSE FALSE FALSE FALSE FALSE topicClassification citation topicClassVocabURI Vocabulary URL Specifies the URL location for the full controlled vocabulary. Enter full URL, starting with http:// url 27 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE topicClassification citation - publication Related Publication Publications that use the data from this Dataset. none 28 FALSE FALSE TRUE FALSE TRUE FALSE citation - publicationCitation Citation The full bibliographic citation for this related publication. textbox 29 #VALUE TRUE FALSE FALSE FALSE TRUE FALSE publication citation + publication Related Publication Publications that use the data from this Dataset. none 28 FALSE FALSE TRUE FALSE TRUE FALSE citation http://purl.org/dc/terms/isReferencedBy + publicationCitation Citation The full bibliographic citation for this related publication. textbox 29 #VALUE TRUE FALSE FALSE FALSE TRUE FALSE publication citation http://purl.org/dc/terms/bibliographicCitation publicationIDType ID Type The type of digital identifier used for this publication (e.g., Digital Object Identifier (DOI)). text 30 #VALUE: TRUE TRUE FALSE FALSE TRUE FALSE publication citation - publicationIDNumber ID Number The identifier for the selected ID type. text 31 #VALUE TRUE FALSE FALSE FALSE TRUE FALSE publication citation - publicationURL URL Link to the publication web page (e.g., journal article page, archive record page, or other). Enter full URL, starting with http:// url 32 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE publication citation + publicationIDNumber ID Number The identifier for the selected ID type. text 31 #VALUE TRUE FALSE FALSE FALSE TRUE FALSE publication citation http://purl.org/dc/terms/identifier + publicationURL URL Link to the publication web page (e.g., journal article page, archive record page, or other). Enter full URL, starting with http:// url 32 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE publication citation https://schema.org/distribution notesText Notes Additional important information about the Dataset. textbox 33 FALSE FALSE FALSE FALSE TRUE FALSE citation - language Language Language of the Dataset text 34 TRUE TRUE TRUE TRUE FALSE FALSE citation + language Language Language of the Dataset text 34 TRUE TRUE TRUE TRUE FALSE FALSE citation http://purl.org/dc/terms/language producer Producer Person or organization with the financial or administrative responsibility over this Dataset none 35 FALSE FALSE TRUE FALSE FALSE FALSE citation producerName Name Producer name FamilyName, GivenName or Organization text 36 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE producer citation producerAffiliation Affiliation The organization with which the producer is affiliated. text 37 (#VALUE) FALSE FALSE FALSE FALSE FALSE FALSE producer citation @@ -44,10 +44,10 @@ producerLogoURL Logo URL URL for the producer's logo, which points to this producer's web-accessible logo image. Enter an absolute URL where the producer's logo image is found, such as http://www.my.org/images/logo.gif. Enter full URL for image, starting with http:// url 40
FALSE FALSE FALSE FALSE FALSE FALSE producer citation productionDate Production Date Date when the data collection or other materials were produced (not distributed, published or archived). YYYY-MM-DD date 41 TRUE FALSE FALSE TRUE FALSE FALSE citation productionPlace Production Place The location where the data collection and any other related materials were produced. text 42 FALSE FALSE FALSE FALSE FALSE FALSE citation - contributor Contributor The organization or person responsible for either collecting, managing, or otherwise contributing in some form to the development of the resource. none 43 : FALSE FALSE TRUE FALSE FALSE FALSE citation + contributor Contributor The organization or person responsible for either collecting, managing, or otherwise contributing in some form to the development of the resource. none 43 : FALSE FALSE TRUE FALSE FALSE FALSE citation http://purl.org/dc/terms/contributor contributorType Type The type of contributor of the resource. text 44 #VALUE TRUE TRUE FALSE TRUE FALSE FALSE contributor citation contributorName Name The Family Name, Given Name or organization name of the contributor. FamilyName, GivenName or Organization text 45 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE contributor citation - grantNumber Grant Information Grant Information none 46 : FALSE FALSE TRUE FALSE FALSE FALSE citation + grantNumber Grant Information Grant Information none 46 : FALSE FALSE TRUE FALSE FALSE FALSE citation https://schema.org/sponsor grantNumberAgency Grant Agency Grant Number Agency text 47 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE grantNumber citation grantNumberValue Grant Number The grant or contract number of the project that sponsored the effort. text 48 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE grantNumber citation distributor Distributor The organization designated by the author or producer to generate copies of the particular work including any necessary editions or revisions. none 49 FALSE FALSE TRUE FALSE FALSE FALSE citation @@ -58,24 +58,24 @@ distributorLogoURL Logo URL URL of the distributor's logo, which points to this distributor's web-accessible logo image. Enter an absolute URL where the distributor's logo image is found, such as http://www.my.org/images/logo.gif. Enter full URL for image, starting with http:// url 54
FALSE FALSE FALSE FALSE FALSE FALSE distributor citation distributionDate Distribution Date Date that the work was made available for distribution/presentation. YYYY-MM-DD date 55 TRUE FALSE FALSE TRUE FALSE FALSE citation depositor Depositor The person (Family Name, Given Name) or the name of the organization that deposited this Dataset to the repository. text 56 FALSE FALSE FALSE FALSE FALSE FALSE citation - dateOfDeposit Deposit Date Date that the Dataset was deposited into the repository. YYYY-MM-DD date 57 FALSE FALSE FALSE TRUE FALSE FALSE citation - timePeriodCovered Time Period Covered Time period to which the data refer. This item reflects the time period covered by the data, not the dates of coding or making documents machine-readable or the dates the data were collected. Also known as span. none 58 ; FALSE FALSE TRUE FALSE FALSE FALSE citation + dateOfDeposit Deposit Date Date that the Dataset was deposited into the repository. YYYY-MM-DD date 57 FALSE FALSE FALSE TRUE FALSE FALSE citation http://purl.org/dc/terms/dateSubmitted + timePeriodCovered Time Period Covered Time period to which the data refer. This item reflects the time period covered by the data, not the dates of coding or making documents machine-readable or the dates the data were collected. Also known as span. none 58 ; FALSE FALSE TRUE FALSE FALSE FALSE citation https://schema.org/temporalCoverage timePeriodCoveredStart Start Start date which reflects the time period covered by the data, not the dates of coding or making documents machine-readable or the dates the data were collected. YYYY-MM-DD date 59 #NAME: #VALUE TRUE FALSE FALSE TRUE FALSE FALSE timePeriodCovered citation timePeriodCoveredEnd End End date which reflects the time period covered by the data, not the dates of coding or making documents machine-readable or the dates the data were collected. YYYY-MM-DD date 60 #NAME: #VALUE TRUE FALSE FALSE TRUE FALSE FALSE timePeriodCovered citation dateOfCollection Date of Collection Contains the date(s) when the data were collected. none 61 ; FALSE FALSE TRUE FALSE FALSE FALSE citation dateOfCollectionStart Start Date when the data collection started. YYYY-MM-DD date 62 #NAME: #VALUE FALSE FALSE FALSE FALSE FALSE FALSE dateOfCollection citation dateOfCollectionEnd End Date when the data collection ended. YYYY-MM-DD date 63 #NAME: #VALUE FALSE FALSE FALSE FALSE FALSE FALSE dateOfCollection citation - kindOfData Kind of Data Type of data included in the file: survey data, census/enumeration data, aggregate data, clinical data, event/transaction data, program source code, machine-readable text, administrative records data, experimental data, psychological test, textual data, coded textual, coded documents, time budget diaries, observation data/ratings, process-produced data, or other. text 64 TRUE FALSE TRUE TRUE FALSE FALSE citation + kindOfData Kind of Data Type of data included in the file: survey data, census/enumeration data, aggregate data, clinical data, event/transaction data, program source code, machine-readable text, administrative records data, experimental data, psychological test, textual data, coded textual, coded documents, time budget diaries, observation data/ratings, process-produced data, or other. text 64 TRUE FALSE TRUE TRUE FALSE FALSE citation http://rdf-vocabulary.ddialliance.org/discovery#kindOfData series Series Information about the Dataset series. none 65 : FALSE FALSE FALSE FALSE FALSE FALSE citation seriesName Name Name of the dataset series to which the Dataset belongs. text 66 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE series citation seriesInformation Information History of the series and summary of those features that apply to the series as a whole. textbox 67 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE series citation - software Software Information about the software used to generate the Dataset. none 68 , FALSE FALSE TRUE FALSE FALSE FALSE citation + software Software Information about the software used to generate the Dataset. none 68 , FALSE FALSE TRUE FALSE FALSE FALSE citation https://www.w3.org/TR/prov-o/#wasGeneratedBy softwareName Name Name of software used to generate the Dataset. text 69 #VALUE FALSE TRUE FALSE FALSE FALSE FALSE software citation softwareVersion Version Version of the software used to generate the Dataset. text 70 #NAME: #VALUE FALSE FALSE FALSE FALSE FALSE FALSE software citation relatedMaterial Related Material Any material related to this Dataset. textbox 71 FALSE FALSE TRUE FALSE FALSE FALSE citation - relatedDatasets Related Datasets Any Datasets that are related to this Dataset, such as previous research on this subject. textbox 72 FALSE FALSE TRUE FALSE FALSE FALSE citation - otherReferences Other References Any references that would serve as background or supporting material to this Dataset. text 73 FALSE FALSE TRUE FALSE FALSE FALSE citation - dataSources Data Sources List of books, articles, serials, or machine-readable data files that served as the sources of the data collection. textbox 74 FALSE FALSE TRUE FALSE FALSE FALSE citation + relatedDatasets Related Datasets Any Datasets that are related to this Dataset, such as previous research on this subject. textbox 72 FALSE FALSE TRUE FALSE FALSE FALSE citation http://purl.org/dc/terms/relation + otherReferences Other References Any references that would serve as background or supporting material to this Dataset. text 73 FALSE FALSE TRUE FALSE FALSE FALSE citation http://purl.org/dc/terms/references + dataSources Data Sources List of books, articles, serials, or machine-readable data files that served as the sources of the data collection. textbox 74 FALSE FALSE TRUE FALSE FALSE FALSE citation https://www.w3.org/TR/prov-o/#wasDerivedFrom originOfSources Origin of Sources For historical materials, information about the origin of the sources and the rules followed in establishing the sources should be specified. textbox 75 FALSE FALSE FALSE FALSE FALSE FALSE citation characteristicOfSources Characteristic of Sources Noted Assessment of characteristics and source material. textbox 76 FALSE FALSE FALSE FALSE FALSE FALSE citation accessToSources Documentation and Access to Sources Level of documentation of the original sources. textbox 77 FALSE FALSE FALSE FALSE FALSE FALSE citation diff --git a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java index c6fb475314e..1fb26ade48d 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java @@ -48,7 +48,7 @@ public class JsonLDTerm { public static JsonLDTerm contact = JsonLDTerm.DVCore("contact"); public static JsonLDTerm affiliation = JsonLDTerm.DVCore("affiliation"); public static JsonLDTerm email = JsonLDTerm.DVCore("email"); - public static JsonLDTerm description = JsonLDTerm.DVCore("description"); + public static JsonLDTerm description = JsonLDTerm.DVCore("dsDescription"); public static JsonLDTerm text = JsonLDTerm.DVCore("text"); public static JsonLDTerm totalSize = JsonLDTerm.DVCore("totalSize"); public static JsonLDTerm fileCount = JsonLDTerm.DVCore("fileCount"); From bf120244f128d6f407e6ca977e96b026fbd77cc2 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Thu, 20 Sep 2018 16:22:32 -0400 Subject: [PATCH 008/241] datcite terms added --- scripts/api/data/metadatablocks/citation.tsv | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/api/data/metadatablocks/citation.tsv b/scripts/api/data/metadatablocks/citation.tsv index 7e6c53ab98b..8aed76074ed 100644 --- a/scripts/api/data/metadatablocks/citation.tsv +++ b/scripts/api/data/metadatablocks/citation.tsv @@ -11,8 +11,8 @@ author Author The person(s), corporate body(ies), or agency(ies) responsible for creating the work. none 7 FALSE FALSE TRUE FALSE TRUE FALSE citation http://purl.org/dc/terms/creator authorName Name The author's Family Name, Given Name or the name of the organization responsible for this Dataset. FamilyName, GivenName or Organization text 8 #VALUE TRUE FALSE FALSE TRUE TRUE TRUE author citation http://purl.org/dc/terms/creator authorAffiliation Affiliation The organization with which the author is affiliated. text 9 (#VALUE) TRUE FALSE FALSE TRUE TRUE FALSE author citation - authorIdentifierScheme Identifier Scheme Name of the identifier scheme (ORCID, ISNI). text 10 - #VALUE: FALSE TRUE FALSE FALSE TRUE FALSE author citation - authorIdentifier Identifier Uniquely identifies an individual author or organization, according to various schemes. text 11 #VALUE FALSE FALSE FALSE FALSE TRUE FALSE author citation + authorIdentifierScheme Identifier Scheme Name of the identifier scheme (ORCID, ISNI). text 10 - #VALUE: FALSE TRUE FALSE FALSE TRUE FALSE author citation http://purl.org/spar/datacite/AgentIdentifierScheme + authorIdentifier Identifier Uniquely identifies an individual author or organization, according to various schemes. text 11 #VALUE FALSE FALSE FALSE FALSE TRUE FALSE author citation http://purl.org/spar/datacite/AgentIdentifier datasetContact Contact The contact(s) for this Dataset. none 12 FALSE FALSE TRUE FALSE TRUE FALSE citation datasetContactName Name The contact's Family Name, Given Name or the name of the organization. FamilyName, GivenName or Organization text 13 #VALUE FALSE FALSE FALSE FALSE TRUE FALSE datasetContact citation datasetContactAffiliation Affiliation The organization with which the contact is affiliated. text 14 (#VALUE) FALSE FALSE FALSE FALSE TRUE FALSE datasetContact citation @@ -31,8 +31,8 @@ topicClassVocabURI Vocabulary URL Specifies the URL location for the full controlled vocabulary. Enter full URL, starting with http:// url 27 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE topicClassification citation publication Related Publication Publications that use the data from this Dataset. none 28 FALSE FALSE TRUE FALSE TRUE FALSE citation http://purl.org/dc/terms/isReferencedBy publicationCitation Citation The full bibliographic citation for this related publication. textbox 29 #VALUE TRUE FALSE FALSE FALSE TRUE FALSE publication citation http://purl.org/dc/terms/bibliographicCitation - publicationIDType ID Type The type of digital identifier used for this publication (e.g., Digital Object Identifier (DOI)). text 30 #VALUE: TRUE TRUE FALSE FALSE TRUE FALSE publication citation - publicationIDNumber ID Number The identifier for the selected ID type. text 31 #VALUE TRUE FALSE FALSE FALSE TRUE FALSE publication citation http://purl.org/dc/terms/identifier + publicationIDType ID Type The type of digital identifier used for this publication (e.g., Digital Object Identifier (DOI)). text 30 #VALUE: TRUE TRUE FALSE FALSE TRUE FALSE publication citation http://purl.org/spar/datacite/ResourceIdentifierScheme + publicationIDNumber ID Number The identifier for the selected ID type. text 31 #VALUE TRUE FALSE FALSE FALSE TRUE FALSE publication citation http://purl.org/spar/datacite/ResourceIdentifier publicationURL URL Link to the publication web page (e.g., journal article page, archive record page, or other). Enter full URL, starting with http:// url 32 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE publication citation https://schema.org/distribution notesText Notes Additional important information about the Dataset. textbox 33 FALSE FALSE FALSE FALSE TRUE FALSE citation language Language Language of the Dataset text 34 TRUE TRUE TRUE TRUE FALSE FALSE citation http://purl.org/dc/terms/language From e2765fe4d41d8ce92fb16e773beca4c70d2f3c40 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Thu, 20 Sep 2018 15:03:03 -0400 Subject: [PATCH 009/241] Simplifying core terms/ using static namespace/draft tsv mapping --- scripts/api/data/metadatablocks/citation.tsv | 52 ++--- .../dataverse/util/json/JsonLDNamespace.java | 5 +- .../iq/dataverse/util/json/JsonLDTerm.java | 213 ++++++++---------- 3 files changed, 116 insertions(+), 154 deletions(-) diff --git a/scripts/api/data/metadatablocks/citation.tsv b/scripts/api/data/metadatablocks/citation.tsv index e45122ef614..8aed76074ed 100644 --- a/scripts/api/data/metadatablocks/citation.tsv +++ b/scripts/api/data/metadatablocks/citation.tsv @@ -1,26 +1,26 @@ #metadataBlock name dataverseAlias displayName - citation Citation Metadata + citation Citation Metadata https://dataverse.org/schema/ #datasetField name title description watermark fieldType displayOrder displayFormat advancedSearchField allowControlledVocabulary allowmultiples facetable displayoncreate required parent metadatablock_id - title Title Full title by which the Dataset is known. Enter title... text 0 TRUE FALSE FALSE FALSE TRUE TRUE citation + title Title Full title by which the Dataset is known. Enter title... text 0 TRUE FALSE FALSE FALSE TRUE TRUE citation http://purl.org/dc/terms/title subtitle Subtitle A secondary title used to amplify or state certain limitations on the main title. text 1 FALSE FALSE FALSE FALSE FALSE FALSE citation - alternativeTitle Alternative Title A title by which the work is commonly referred, or an abbreviation of the title. text 2 FALSE FALSE FALSE FALSE FALSE FALSE citation - alternativeURL Alternative URL A URL where the dataset can be viewed, such as a personal or project website. Enter full URL, starting with http:// url 3 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE citation + alternativeTitle Alternative Title A title by which the work is commonly referred, or an abbreviation of the title. text 2 FALSE FALSE FALSE FALSE FALSE FALSE citation http://purl.org/dc/terms/alternative + alternativeURL Alternative URL A URL where the dataset can be viewed, such as a personal or project website. Enter full URL, starting with http:// url 3 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE citation https://schema.org/distribution otherId Other ID Another unique identifier that identifies this Dataset (e.g., producer's or another repository's number). none 4 : FALSE FALSE TRUE FALSE FALSE FALSE citation otherIdAgency Agency Name of agency which generated this identifier. text 5 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE otherId citation otherIdValue Identifier Other identifier that corresponds to this Dataset. text 6 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE otherId citation - author Author The person(s), corporate body(ies), or agency(ies) responsible for creating the work. none 7 FALSE FALSE TRUE FALSE TRUE FALSE citation - authorName Name The author's Family Name, Given Name or the name of the organization responsible for this Dataset. FamilyName, GivenName or Organization text 8 #VALUE TRUE FALSE FALSE TRUE TRUE TRUE author citation + author Author The person(s), corporate body(ies), or agency(ies) responsible for creating the work. none 7 FALSE FALSE TRUE FALSE TRUE FALSE citation http://purl.org/dc/terms/creator + authorName Name The author's Family Name, Given Name or the name of the organization responsible for this Dataset. FamilyName, GivenName or Organization text 8 #VALUE TRUE FALSE FALSE TRUE TRUE TRUE author citation http://purl.org/dc/terms/creator authorAffiliation Affiliation The organization with which the author is affiliated. text 9 (#VALUE) TRUE FALSE FALSE TRUE TRUE FALSE author citation - authorIdentifierScheme Identifier Scheme Name of the identifier scheme (ORCID, ISNI). text 10 - #VALUE: FALSE TRUE FALSE FALSE TRUE FALSE author citation - authorIdentifier Identifier Uniquely identifies an individual author or organization, according to various schemes. text 11 #VALUE FALSE FALSE FALSE FALSE TRUE FALSE author citation + authorIdentifierScheme Identifier Scheme Name of the identifier scheme (ORCID, ISNI). text 10 - #VALUE: FALSE TRUE FALSE FALSE TRUE FALSE author citation http://purl.org/spar/datacite/AgentIdentifierScheme + authorIdentifier Identifier Uniquely identifies an individual author or organization, according to various schemes. text 11 #VALUE FALSE FALSE FALSE FALSE TRUE FALSE author citation http://purl.org/spar/datacite/AgentIdentifier datasetContact Contact The contact(s) for this Dataset. none 12 FALSE FALSE TRUE FALSE TRUE FALSE citation datasetContactName Name The contact's Family Name, Given Name or the name of the organization. FamilyName, GivenName or Organization text 13 #VALUE FALSE FALSE FALSE FALSE TRUE FALSE datasetContact citation datasetContactAffiliation Affiliation The organization with which the contact is affiliated. text 14 (#VALUE) FALSE FALSE FALSE FALSE TRUE FALSE datasetContact citation datasetContactEmail E-mail The e-mail address(es) of the contact(s) for the Dataset. This will not be displayed. email 15 #EMAIL FALSE FALSE FALSE FALSE TRUE TRUE datasetContact citation - dsDescription Description A summary describing the purpose, nature, and scope of the Dataset. none 16 FALSE FALSE TRUE FALSE TRUE FALSE citation + dsDescription Description A summary describing the purpose, nature, and scope of the Dataset. none 16 FALSE FALSE TRUE FALSE TRUE FALSE citation dsDescriptionValue Text A summary describing the purpose, nature, and scope of the Dataset. textbox 17 #VALUE TRUE FALSE FALSE FALSE TRUE TRUE dsDescription citation - dsDescriptionDate Date In cases where a Dataset contains more than one description (for example, one might be supplied by the data producer and another prepared by the data repository where the data are deposited), the date attribute is used to distinguish between the two descriptions. The date attribute follows the ISO convention of YYYY-MM-DD. YYYY-MM-DD date 18 (#VALUE) FALSE FALSE FALSE FALSE TRUE FALSE dsDescription citation - subject Subject Domain-specific Subject Categories that are topically relevant to the Dataset. text 19 TRUE TRUE TRUE TRUE TRUE TRUE citation + dsDescriptionDate Date In cases where a Dataset contains more than one description (for example, one might be supplied by the data producer and another prepared by the data repository where the data are deposited), the date attribute is used to distinguish between the two descriptions. The date attribute follows the ISO convention of YYYY-MM-DD. YYYY-MM-DD date 18 (#VALUE) FALSE FALSE FALSE FALSE TRUE FALSE dsDescription citation http://purl.org/dc/terms/identifier + subject Subject Domain-specific Subject Categories that are topically relevant to the Dataset. text 19 TRUE TRUE TRUE TRUE TRUE TRUE citation http://purl.org/dc/terms/subject keyword Keyword Key terms that describe important aspects of the Dataset. none 20 FALSE FALSE TRUE FALSE TRUE FALSE citation keywordValue Term Key terms that describe important aspects of the Dataset. Can be used for building keyword indexes and for classification and retrieval purposes. A controlled vocabulary can be employed. The vocab attribute is provided for specification of the controlled vocabulary in use, such as LCSH, MeSH, or others. The vocabURI attribute specifies the location for the full controlled vocabulary. text 21 #VALUE TRUE FALSE FALSE TRUE TRUE FALSE keyword citation keywordVocabulary Vocabulary For the specification of the keyword controlled vocabulary in use, such as LCSH, MeSH, or others. text 22 (#VALUE) FALSE FALSE FALSE FALSE TRUE FALSE keyword citation @@ -29,13 +29,13 @@ topicClassValue Term Topic or Subject term that is relevant to this Dataset. text 25 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE topicClassification citation topicClassVocab Vocabulary Provided for specification of the controlled vocabulary in use, e.g., LCSH, MeSH, etc. text 26 (#VALUE) FALSE FALSE FALSE FALSE FALSE FALSE topicClassification citation topicClassVocabURI Vocabulary URL Specifies the URL location for the full controlled vocabulary. Enter full URL, starting with http:// url 27 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE topicClassification citation - publication Related Publication Publications that use the data from this Dataset. none 28 FALSE FALSE TRUE FALSE TRUE FALSE citation - publicationCitation Citation The full bibliographic citation for this related publication. textbox 29 #VALUE TRUE FALSE FALSE FALSE TRUE FALSE publication citation - publicationIDType ID Type The type of digital identifier used for this publication (e.g., Digital Object Identifier (DOI)). text 30 #VALUE: TRUE TRUE FALSE FALSE TRUE FALSE publication citation - publicationIDNumber ID Number The identifier for the selected ID type. text 31 #VALUE TRUE FALSE FALSE FALSE TRUE FALSE publication citation - publicationURL URL Link to the publication web page (e.g., journal article page, archive record page, or other). Enter full URL, starting with http:// url 32 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE publication citation + publication Related Publication Publications that use the data from this Dataset. none 28 FALSE FALSE TRUE FALSE TRUE FALSE citation http://purl.org/dc/terms/isReferencedBy + publicationCitation Citation The full bibliographic citation for this related publication. textbox 29 #VALUE TRUE FALSE FALSE FALSE TRUE FALSE publication citation http://purl.org/dc/terms/bibliographicCitation + publicationIDType ID Type The type of digital identifier used for this publication (e.g., Digital Object Identifier (DOI)). text 30 #VALUE: TRUE TRUE FALSE FALSE TRUE FALSE publication citation http://purl.org/spar/datacite/ResourceIdentifierScheme + publicationIDNumber ID Number The identifier for the selected ID type. text 31 #VALUE TRUE FALSE FALSE FALSE TRUE FALSE publication citation http://purl.org/spar/datacite/ResourceIdentifier + publicationURL URL Link to the publication web page (e.g., journal article page, archive record page, or other). Enter full URL, starting with http:// url 32 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE publication citation https://schema.org/distribution notesText Notes Additional important information about the Dataset. textbox 33 FALSE FALSE FALSE FALSE TRUE FALSE citation - language Language Language of the Dataset text 34 TRUE TRUE TRUE TRUE FALSE FALSE citation + language Language Language of the Dataset text 34 TRUE TRUE TRUE TRUE FALSE FALSE citation http://purl.org/dc/terms/language producer Producer Person or organization with the financial or administrative responsibility over this Dataset none 35 FALSE FALSE TRUE FALSE FALSE FALSE citation producerName Name Producer name FamilyName, GivenName or Organization text 36 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE producer citation producerAffiliation Affiliation The organization with which the producer is affiliated. text 37 (#VALUE) FALSE FALSE FALSE FALSE FALSE FALSE producer citation @@ -44,10 +44,10 @@ producerLogoURL Logo URL URL for the producer's logo, which points to this producer's web-accessible logo image. Enter an absolute URL where the producer's logo image is found, such as http://www.my.org/images/logo.gif. Enter full URL for image, starting with http:// url 40
FALSE FALSE FALSE FALSE FALSE FALSE producer citation productionDate Production Date Date when the data collection or other materials were produced (not distributed, published or archived). YYYY-MM-DD date 41 TRUE FALSE FALSE TRUE FALSE FALSE citation productionPlace Production Place The location where the data collection and any other related materials were produced. text 42 FALSE FALSE FALSE FALSE FALSE FALSE citation - contributor Contributor The organization or person responsible for either collecting, managing, or otherwise contributing in some form to the development of the resource. none 43 : FALSE FALSE TRUE FALSE FALSE FALSE citation + contributor Contributor The organization or person responsible for either collecting, managing, or otherwise contributing in some form to the development of the resource. none 43 : FALSE FALSE TRUE FALSE FALSE FALSE citation http://purl.org/dc/terms/contributor contributorType Type The type of contributor of the resource. text 44 #VALUE TRUE TRUE FALSE TRUE FALSE FALSE contributor citation contributorName Name The Family Name, Given Name or organization name of the contributor. FamilyName, GivenName or Organization text 45 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE contributor citation - grantNumber Grant Information Grant Information none 46 : FALSE FALSE TRUE FALSE FALSE FALSE citation + grantNumber Grant Information Grant Information none 46 : FALSE FALSE TRUE FALSE FALSE FALSE citation https://schema.org/sponsor grantNumberAgency Grant Agency Grant Number Agency text 47 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE grantNumber citation grantNumberValue Grant Number The grant or contract number of the project that sponsored the effort. text 48 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE grantNumber citation distributor Distributor The organization designated by the author or producer to generate copies of the particular work including any necessary editions or revisions. none 49 FALSE FALSE TRUE FALSE FALSE FALSE citation @@ -58,24 +58,24 @@ distributorLogoURL Logo URL URL of the distributor's logo, which points to this distributor's web-accessible logo image. Enter an absolute URL where the distributor's logo image is found, such as http://www.my.org/images/logo.gif. Enter full URL for image, starting with http:// url 54
FALSE FALSE FALSE FALSE FALSE FALSE distributor citation distributionDate Distribution Date Date that the work was made available for distribution/presentation. YYYY-MM-DD date 55 TRUE FALSE FALSE TRUE FALSE FALSE citation depositor Depositor The person (Family Name, Given Name) or the name of the organization that deposited this Dataset to the repository. text 56 FALSE FALSE FALSE FALSE FALSE FALSE citation - dateOfDeposit Deposit Date Date that the Dataset was deposited into the repository. YYYY-MM-DD date 57 FALSE FALSE FALSE TRUE FALSE FALSE citation - timePeriodCovered Time Period Covered Time period to which the data refer. This item reflects the time period covered by the data, not the dates of coding or making documents machine-readable or the dates the data were collected. Also known as span. none 58 ; FALSE FALSE TRUE FALSE FALSE FALSE citation + dateOfDeposit Deposit Date Date that the Dataset was deposited into the repository. YYYY-MM-DD date 57 FALSE FALSE FALSE TRUE FALSE FALSE citation http://purl.org/dc/terms/dateSubmitted + timePeriodCovered Time Period Covered Time period to which the data refer. This item reflects the time period covered by the data, not the dates of coding or making documents machine-readable or the dates the data were collected. Also known as span. none 58 ; FALSE FALSE TRUE FALSE FALSE FALSE citation https://schema.org/temporalCoverage timePeriodCoveredStart Start Start date which reflects the time period covered by the data, not the dates of coding or making documents machine-readable or the dates the data were collected. YYYY-MM-DD date 59 #NAME: #VALUE TRUE FALSE FALSE TRUE FALSE FALSE timePeriodCovered citation timePeriodCoveredEnd End End date which reflects the time period covered by the data, not the dates of coding or making documents machine-readable or the dates the data were collected. YYYY-MM-DD date 60 #NAME: #VALUE TRUE FALSE FALSE TRUE FALSE FALSE timePeriodCovered citation dateOfCollection Date of Collection Contains the date(s) when the data were collected. none 61 ; FALSE FALSE TRUE FALSE FALSE FALSE citation dateOfCollectionStart Start Date when the data collection started. YYYY-MM-DD date 62 #NAME: #VALUE FALSE FALSE FALSE FALSE FALSE FALSE dateOfCollection citation dateOfCollectionEnd End Date when the data collection ended. YYYY-MM-DD date 63 #NAME: #VALUE FALSE FALSE FALSE FALSE FALSE FALSE dateOfCollection citation - kindOfData Kind of Data Type of data included in the file: survey data, census/enumeration data, aggregate data, clinical data, event/transaction data, program source code, machine-readable text, administrative records data, experimental data, psychological test, textual data, coded textual, coded documents, time budget diaries, observation data/ratings, process-produced data, or other. text 64 TRUE FALSE TRUE TRUE FALSE FALSE citation + kindOfData Kind of Data Type of data included in the file: survey data, census/enumeration data, aggregate data, clinical data, event/transaction data, program source code, machine-readable text, administrative records data, experimental data, psychological test, textual data, coded textual, coded documents, time budget diaries, observation data/ratings, process-produced data, or other. text 64 TRUE FALSE TRUE TRUE FALSE FALSE citation http://rdf-vocabulary.ddialliance.org/discovery#kindOfData series Series Information about the Dataset series. none 65 : FALSE FALSE FALSE FALSE FALSE FALSE citation seriesName Name Name of the dataset series to which the Dataset belongs. text 66 #VALUE TRUE FALSE FALSE TRUE FALSE FALSE series citation seriesInformation Information History of the series and summary of those features that apply to the series as a whole. textbox 67 #VALUE FALSE FALSE FALSE FALSE FALSE FALSE series citation - software Software Information about the software used to generate the Dataset. none 68 , FALSE FALSE TRUE FALSE FALSE FALSE citation + software Software Information about the software used to generate the Dataset. none 68 , FALSE FALSE TRUE FALSE FALSE FALSE citation https://www.w3.org/TR/prov-o/#wasGeneratedBy softwareName Name Name of software used to generate the Dataset. text 69 #VALUE FALSE TRUE FALSE FALSE FALSE FALSE software citation softwareVersion Version Version of the software used to generate the Dataset. text 70 #NAME: #VALUE FALSE FALSE FALSE FALSE FALSE FALSE software citation relatedMaterial Related Material Any material related to this Dataset. textbox 71 FALSE FALSE TRUE FALSE FALSE FALSE citation - relatedDatasets Related Datasets Any Datasets that are related to this Dataset, such as previous research on this subject. textbox 72 FALSE FALSE TRUE FALSE FALSE FALSE citation - otherReferences Other References Any references that would serve as background or supporting material to this Dataset. text 73 FALSE FALSE TRUE FALSE FALSE FALSE citation - dataSources Data Sources List of books, articles, serials, or machine-readable data files that served as the sources of the data collection. textbox 74 FALSE FALSE TRUE FALSE FALSE FALSE citation + relatedDatasets Related Datasets Any Datasets that are related to this Dataset, such as previous research on this subject. textbox 72 FALSE FALSE TRUE FALSE FALSE FALSE citation http://purl.org/dc/terms/relation + otherReferences Other References Any references that would serve as background or supporting material to this Dataset. text 73 FALSE FALSE TRUE FALSE FALSE FALSE citation http://purl.org/dc/terms/references + dataSources Data Sources List of books, articles, serials, or machine-readable data files that served as the sources of the data collection. textbox 74 FALSE FALSE TRUE FALSE FALSE FALSE citation https://www.w3.org/TR/prov-o/#wasDerivedFrom originOfSources Origin of Sources For historical materials, information about the origin of the sources and the rules followed in establishing the sources should be specified. textbox 75 FALSE FALSE FALSE FALSE FALSE FALSE citation characteristicOfSources Characteristic of Sources Noted Assessment of characteristics and source material. textbox 76 FALSE FALSE FALSE FALSE FALSE FALSE citation accessToSources Documentation and Access to Sources Level of documentation of the original sources. textbox 77 FALSE FALSE FALSE FALSE FALSE FALSE citation diff --git a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDNamespace.java b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDNamespace.java index e357f6bd6a1..bda4a55d623 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDNamespace.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDNamespace.java @@ -1,7 +1,5 @@ package edu.harvard.iq.dataverse.util.json; -import edu.harvard.iq.dataverse.util.SystemConfig; - public class JsonLDNamespace { String prefix; @@ -9,8 +7,7 @@ public class JsonLDNamespace { String url; - //FixMe - use a universal Dataverse URL rather than an instance one for Core terms - public static JsonLDNamespace dvcore = new JsonLDNamespace("dvcore", SystemConfig.getDataverseSiteUrlStatic() + "/schema/core#"); + public static JsonLDNamespace dvcore = new JsonLDNamespace("dvcore", "https://dataverse.org/schema/core#"); public static JsonLDNamespace dcterms = new JsonLDNamespace("dcterms","http://purl.org/dc/terms/"); public static JsonLDNamespace ore = new JsonLDNamespace("ore","http://www.openarchives.org/ore/terms/"); public static JsonLDNamespace schema = new JsonLDNamespace("schema","http://schema.org/"); diff --git a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java index 642404fb545..1fb26ade48d 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonLDTerm.java @@ -3,136 +3,101 @@ import java.util.HashMap; import java.util.Map; -import javax.json.JsonObject; -import javax.json.JsonValue; +public class JsonLDTerm { -import edu.harvard.iq.dataverse.util.SystemConfig; + JsonLDNamespace namespace = null; + + String term = null; + + String url = null; + + public static JsonLDTerm termsOfUse = JsonLDTerm.DVCore("termsOfUse"); + public static JsonLDTerm confidentialityDeclaration = JsonLDTerm.DVCore("confidentialityDeclaration"); + public static JsonLDTerm specialPermissions = JsonLDTerm.DVCore("specialPermissions"); + public static JsonLDTerm restrictions = JsonLDTerm.DVCore("restrictions"); + public static JsonLDTerm citationRequirements = JsonLDTerm.DVCore("citationRequirements"); + public static JsonLDTerm depositorRequirements = JsonLDTerm.DVCore("depositorRequirements"); + public static JsonLDTerm conditions = JsonLDTerm.DVCore("conditions"); + public static JsonLDTerm disclaimer = JsonLDTerm.DVCore("disclaimer"); + + public static JsonLDTerm fileTermsOfAccess = JsonLDTerm.DVCore("fileTermsOfAccess"); + + public static JsonLDTerm termsOfAccess = JsonLDTerm.DVCore("termsOfAccess"); + public static JsonLDTerm fileRequestAccess = JsonLDTerm.DVCore("fileRequestAccess"); + public static JsonLDTerm dataAccessPlace = JsonLDTerm.DVCore("dataAccessPlace"); + public static JsonLDTerm originalArchive = JsonLDTerm.DVCore("originalArchive"); + public static JsonLDTerm availabilityStatus = JsonLDTerm.DVCore("availabilityStatus"); + public static JsonLDTerm contactForAccess = JsonLDTerm.DVCore("contactForAccess"); + public static JsonLDTerm sizeOfCollection = JsonLDTerm.DVCore("sizeOfCollection"); + public static JsonLDTerm studyCompletion = JsonLDTerm.DVCore("studyCompletion"); + + public static JsonLDTerm restricted = JsonLDTerm.DVCore("restricted"); + public static JsonLDTerm directoryLabel = JsonLDTerm.DVCore("directoryLabel"); + public static JsonLDTerm datasetVersionId = JsonLDTerm.DVCore("datasetVersionId"); + public static JsonLDTerm categories = JsonLDTerm.DVCore("categories"); + public static JsonLDTerm filesize = JsonLDTerm.DVCore("filesize"); + public static JsonLDTerm storageIdentifier = JsonLDTerm.DVCore("storageIdentifier"); + public static JsonLDTerm originalFileFormat = JsonLDTerm.DVCore("originalFileFormat"); + public static JsonLDTerm originalFormatLabel = JsonLDTerm.DVCore("originalFormatLabel"); + public static JsonLDTerm UNF = JsonLDTerm.DVCore("UNF"); + public static JsonLDTerm rootDataFileId = JsonLDTerm.DVCore("rootDataFileId"); + public static JsonLDTerm previousDataFileId = JsonLDTerm.DVCore("previousDataFileId"); + public static JsonLDTerm checksum = JsonLDTerm.DVCore("checksum"); + public static JsonLDTerm tabularTags = JsonLDTerm.DVCore("tabularTags"); + + public static JsonLDTerm contact = JsonLDTerm.DVCore("contact"); + public static JsonLDTerm affiliation = JsonLDTerm.DVCore("affiliation"); + public static JsonLDTerm email = JsonLDTerm.DVCore("email"); + public static JsonLDTerm description = JsonLDTerm.DVCore("dsDescription"); + public static JsonLDTerm text = JsonLDTerm.DVCore("text"); + public static JsonLDTerm totalSize = JsonLDTerm.DVCore("totalSize"); + public static JsonLDTerm fileCount = JsonLDTerm.DVCore("fileCount"); + public static JsonLDTerm maxFileSize = JsonLDTerm.DVCore("maxFileSize"); + + public JsonLDTerm(JsonLDNamespace namespace, String term) { + this.namespace = namespace; + this.term = term; + } -public class JsonLDTerm { + public JsonLDTerm(String term, String url) { + this.term = term; + this.url = url; + } - JsonLDNamespace namespace = null; - - String term = null; - - String url = null; - private static Map translations = new HashMap(); - - public static JsonLDTerm termsOfUse = JsonLDTerm.DVCore("termsOfUse"); - public static JsonLDTerm confidentialityDeclaration = JsonLDTerm.DVCore("confidentialityDeclaration"); - public static JsonLDTerm specialPermissions = JsonLDTerm.DVCore("specialPermissions"); - public static JsonLDTerm restrictions = JsonLDTerm.DVCore("restrictions"); - public static JsonLDTerm citationRequirements = JsonLDTerm.DVCore("citationRequirements"); - public static JsonLDTerm depositorRequirements = JsonLDTerm.DVCore("depositorRequirements"); - public static JsonLDTerm conditions = JsonLDTerm.DVCore("conditions"); - public static JsonLDTerm disclaimer = JsonLDTerm.DVCore("disclaimer"); - - public static JsonLDTerm fileTermsOfAccess = JsonLDTerm.DVCore("fileTermsOfAccess"); - - public static JsonLDTerm termsOfAccess = JsonLDTerm.DVCore("termsOfAccess"); - public static JsonLDTerm fileRequestAccess = JsonLDTerm.DVCore("fileRequestAccess"); - public static JsonLDTerm dataAccessPlace = JsonLDTerm.DVCore("dataAccessPlace"); - public static JsonLDTerm originalArchive = JsonLDTerm.DVCore("originalArchive"); - public static JsonLDTerm availabilityStatus = JsonLDTerm.DVCore("availabilityStatus"); - public static JsonLDTerm contactForAccess = JsonLDTerm.DVCore("contactForAccess"); - public static JsonLDTerm sizeOfCollection = JsonLDTerm.DVCore("sizeOfCollection"); - public static JsonLDTerm studyCompletion = JsonLDTerm.DVCore("studyCompletion"); - - public static JsonLDTerm restricted = JsonLDTerm.DVCore("restricted"); - public static JsonLDTerm directoryLabel = JsonLDTerm.DVCore("directoryLabel"); - public static JsonLDTerm datasetVersionId = JsonLDTerm.DVCore("datasetVersionId"); - public static JsonLDTerm categories = JsonLDTerm.DVCore("categories"); - public static JsonLDTerm filesize = JsonLDTerm.DVCore("filesize"); - public static JsonLDTerm storageIdentifier = JsonLDTerm.DVCore("storageIdentifier"); - public static JsonLDTerm originalFileFormat = JsonLDTerm.DVCore("originalFileFormat"); - public static JsonLDTerm originalFormatLabel = JsonLDTerm.DVCore("originalFormatLabel"); - public static JsonLDTerm UNF = JsonLDTerm.DVCore("UNF"); - public static JsonLDTerm rootDataFileId = JsonLDTerm.DVCore("rootDataFileId"); - public static JsonLDTerm previousDataFileId = JsonLDTerm.DVCore("previousDataFileId"); - public static JsonLDTerm checksum = JsonLDTerm.DVCore("checksum"); - public static JsonLDTerm tabularTags = JsonLDTerm.DVCore("tabularTags"); - - public static JsonLDTerm contact = JsonLDTerm.DVCore("contact"); - public static JsonLDTerm affiliation = JsonLDTerm.DVCore("affiliation"); - public static JsonLDTerm email = JsonLDTerm.DVCore("email"); - public static JsonLDTerm description = JsonLDTerm.DVCore("description"); - public static JsonLDTerm text = JsonLDTerm.DVCore("text"); - public static JsonLDTerm totalSize = JsonLDTerm.DVCore("totalSize"); - public static JsonLDTerm fileCount = JsonLDTerm.DVCore("fileCount"); - public static JsonLDTerm maxFileSize = JsonLDTerm.DVCore("maxFileSize"); - - static{ - /* Translations are intended to project-specific translations for the following use cases: - * * A project simply wishes to use a different vocabulary for export, e.g. mapping schema.org entries to Dublin core - * * Basic information, such as a contact is coming from a metadata block which may be custom to the project - * In both cases, the translations map requires the url of the original term and a JSONLDTerm that should be used as a replacement. - */ - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation#Contact", JsonLDTerm.contact); - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation/datasetContact#Name", JsonLDTerm.schemaOrg("name")); - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation/datasetContact#E-mail", JsonLDTerm.email); - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation/datasetContact#Affiliation", JsonLDTerm.affiliation); - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation#Description", JsonLDTerm.description); - translations.put(SystemConfig.getDataverseSiteUrlStatic() + "/schema/citation/dsDescription#Text", JsonLDTerm.text); + public static JsonLDTerm DVCore(String term) { + return new JsonLDTerm(JsonLDNamespace.dvcore, term); + } + public static JsonLDTerm ore(String term) { + return new JsonLDTerm(JsonLDNamespace.ore, term); } + public static JsonLDTerm schemaOrg(String term) { + return new JsonLDTerm(JsonLDNamespace.schema, term); + } - public JsonLDTerm(JsonLDNamespace namespace, String term) { - JsonLDTerm translated = translations.get(namespace.getUrl() + term); - if (translated != null) { - this.namespace = translated.namespace; - this.term = translated.term; - this.url = translated.url; - } else { - this.namespace = namespace; - this.term = term; - } - } - - public JsonLDTerm(String term, String url) { - JsonLDTerm translated = translations.get(url); - if (translated != null) { - this.namespace = translated.namespace; - this.term = translated.term; - this.url = translated.url; - } - this.term = term; - this.url = url; - } - - public static JsonLDTerm DVCore(String term) { - return new JsonLDTerm(JsonLDNamespace.dvcore, term); - } - - public static JsonLDTerm ore(String term) { - return new JsonLDTerm(JsonLDNamespace.ore, term); - } - - public static JsonLDTerm schemaOrg(String term) { - return new JsonLDTerm(JsonLDNamespace.schema, term); - } - - public static JsonLDTerm dcTerms(String term) { - return new JsonLDTerm(JsonLDNamespace.dcterms, term); - } - - public String getLabel() { - if (namespace == null) { - return term; - } else { - return namespace.getPrefix() + ":" + term; - } - } - - public String getUrl() { - if (namespace == null) { - return url; - } else { - return namespace.getUrl() + term; - } - } - - public boolean inNamespace() { - return (namespace != null); - } + public static JsonLDTerm dcTerms(String term) { + return new JsonLDTerm(JsonLDNamespace.dcterms, term); + } + + public String getLabel() { + if (namespace == null) { + return term; + } else { + return namespace.getPrefix() + ":" + term; + } + } + + public String getUrl() { + if (namespace == null) { + return url; + } else { + return namespace.getUrl() + term; + } + } + + public boolean inNamespace() { + return (namespace != null); + } } From 191e4005d6a659432cea251d2376068b01248034 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Wed, 26 Sep 2018 18:04:04 -0400 Subject: [PATCH 010/241] refactor, new examples --- .../command/impl/SubmitToArchiveCommand.java | 6 +- .../iq/dataverse/util/bagit/BagGenerator.java | 254 ++++++++---------- src/test/resources/datacite.xml | 18 ++ .../resources/doi-10-5072-fk2hyixmyv1.0.zip | Bin 0 -> 1137096 bytes src/test/resources/oai-ore.jsonld | 1 + 5 files changed, 136 insertions(+), 143 deletions(-) create mode 100644 src/test/resources/datacite.xml create mode 100644 src/test/resources/doi-10-5072-fk2hyixmyv1.0.zip create mode 100644 src/test/resources/oai-ore.jsonld diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java index a000568a730..289de37339b 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java @@ -178,9 +178,11 @@ public void run() { public void run() { try { //Get OREmap, convert from javax.json.JsonObject to com.google.gson.JsonObject - JsonObject oremap = (JsonObject) new JsonParser().parse(new OREMap(dv).getOREMap().toString()); + OREMap oreMap = new OREMap(dv); + JsonObject jsonOreMap = (JsonObject) new JsonParser().parse(oreMap.getOREMap().toString()); + //Generate bag - BagGenerator bagger = new BagGenerator(oremap, dataciteXml); + BagGenerator bagger = new BagGenerator(new OREMap(dv), dataciteXml); bagger.setAuthenticationKey(token.getTokenString()); bagger.generateBag(out); } catch (Exception e) { diff --git a/src/main/java/edu/harvard/iq/dataverse/util/bagit/BagGenerator.java b/src/main/java/edu/harvard/iq/dataverse/util/bagit/BagGenerator.java index 5f557437e49..0e76b47c7bf 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/bagit/BagGenerator.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/bagit/BagGenerator.java @@ -3,10 +3,7 @@ import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.File; -import java.io.FileNotFoundException; import java.io.FileOutputStream; -import java.io.FileReader; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -71,6 +68,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSyntaxException; import edu.harvard.iq.dataverse.DataFile; import edu.harvard.iq.dataverse.DataFile.ChecksumType; @@ -78,7 +76,7 @@ public class BagGenerator { - private static final Logger log = Logger.getLogger(BagGenerator.class); + private static final Logger logger = Logger.getLogger(BagGenerator.class); private ParallelScatterZipCreator scatterZipCreator = null; private ScatterZipOutputStream dirs = null; @@ -110,7 +108,7 @@ public class BagGenerator { private String apiKey = null; - private JsonObject oremap; + private javax.json.JsonObject oremapObject; private JsonObject aggregation; private String dataciteXml; @@ -119,6 +117,8 @@ public class BagGenerator { private int numConnections = 4; + private OREMap oremap; + static PrintWriter pw = null; /** @@ -133,11 +133,16 @@ public class BagGenerator { * and zipping are done in parallel, using a connection pool. The required space * on disk is ~ n+1/n of the final bag size, e.g. 125% of the bag size for a * 4-way parallel zip operation. + * @throws Exception + * @throws JsonSyntaxException */ - public BagGenerator(JsonObject oremap, String dataciteXml) { - this.oremap = oremap; + public BagGenerator(OREMap oreMap, String dataciteXml) throws JsonSyntaxException, Exception { + this.oremap = oreMap; + this.oremapObject = oreMap.getOREMap(); + //(JsonObject) new JsonParser().parse(oreMap.getOREMap().toString()); this.dataciteXml = dataciteXml; + try { // SSLContext sslContext; @@ -165,7 +170,7 @@ public BagGenerator(JsonObject oremap, String dataciteXml) { scatterZipCreator = new ParallelScatterZipCreator(Executors.newFixedThreadPool(numConnections)); } catch (NoSuchAlgorithmException | KeyManagementException e) { - log.warn("Aint gonna work"); + logger.warn("Aint gonna work"); e.printStackTrace(); } } @@ -184,55 +189,6 @@ public static void println(String s) { return; } - public static void main(String args[]) throws Exception { - try { - File outputFile = new File("QDRBagItLog_" + System.currentTimeMillis() + ".txt"); - try { - pw = new PrintWriter(new FileWriter(outputFile)); - } catch (Exception e) { - println(e.getMessage()); - } - String mapFileName = null; - String apiKey = null; - // go through arguments - for (String arg : args) { - // First non-flag arg is the server URL - if (mapFileName == null) { - println("MapFile: " + arg); - mapFileName = arg; - } - if (apiKey == null) { - println("APIKey: " + arg); - apiKey = arg; - } - } - // Read from File to String - JsonObject oremap = new JsonObject(); - - try { - JsonParser parser = new JsonParser(); - JsonElement jsonElement = parser.parse(new FileReader(mapFileName)); - oremap = jsonElement.getAsJsonObject(); - } catch (FileNotFoundException e) { - log.warn("Couldn't find " + mapFileName); - } - - BagGenerator bg = new BagGenerator(oremap, "No DataCite metadata available"); - bg.setBagPath("."); - bg.generateBag("testBag", false); - if (pw != null) { - pw.flush(); - pw.close(); - } - } catch (Exception e) { - println(e.getLocalizedMessage()); - e.printStackTrace(pw); - pw.flush(); - System.exit(1); - } - - } - /* * Full workflow to generate new BagIt bag from ORE Map Url and to write the bag * to the provided output stream (Ex: File OS, FTP OS etc.). @@ -240,12 +196,12 @@ public static void main(String args[]) throws Exception { * @return success true/false */ public boolean generateBag(OutputStream outputStream) throws Exception { - log.info("Generating: Bag to the Future!"); + logger.info("Generating: Bag to the Future!"); File tmp = File.createTempFile("qdr-scatter-dirs", "tmp"); dirs = ScatterZipOutputStream.fileBased(tmp); - - aggregation = oremap.getAsJsonObject(JsonLDTerm.ore("describes").getLabel()); + // The oremapObject is javax.json.JsonObject and we need com.google.gson.JsonObject for the aggregation object + aggregation = (JsonObject) new JsonParser().parse(oremapObject.getJsonObject(JsonLDTerm.ore("describes").getLabel()).toString()); bagID = aggregation.get("@id").getAsString() + "v." + aggregation.get(JsonLDTerm.schemaOrg("version").getLabel()).getAsString(); @@ -254,7 +210,7 @@ public boolean generateBag(OutputStream outputStream) throws Exception { // two levels of hash-based subdirs to help distribute files bagName = getValidName(bagID); } catch (Exception e) { - log.error("Couldn't create valid filename: " + e.getLocalizedMessage()); + logger.error("Couldn't create valid filename: " + e.getLocalizedMessage()); return false; } // Create data dir in bag, also creates parent bagName dir @@ -275,7 +231,7 @@ public boolean generateBag(OutputStream outputStream) throws Exception { // children processContainer(aggregation, currentPath); } - // Create mainifest files + // Create manifest files // pid-mapping.txt - a DataOne recommendation to connect ids and // in-bag path/names StringBuffer pidStringBuffer = new StringBuffer(); @@ -315,11 +271,11 @@ public boolean generateBag(OutputStream outputStream) throws Exception { } else if (hashtype.equals(DataFile.ChecksumType.MD5)) { manifestName = manifestName + "md5.txt"; } else { - log.warn("Unsupported Hash type: " + hashtype); + logger.warn("Unsupported Hash type: " + hashtype); } createFileFromString(manifestName, sha1StringBuffer.toString()); } else { - log.warn("No Hash values sent - Bag File does not meet BagIT specification requirement"); + logger.warn("No Hash values sent - Bag File does not meet BagIT specification requirement"); } // bagit.txt - Required by spec createFileFromString("bagit.txt", "BagIt-Version: 1.0\r\nTag-File-Character-Encoding: UTF-8"); @@ -335,14 +291,14 @@ public boolean generateBag(OutputStream outputStream) throws Exception { // Serialize oremap itself // FixMe - add missing hash values if needed and update context // (read and cache files or read twice?) - createFileFromString("metadata/ore-ore.jsonld", oremap.toString()); + createFileFromString("metadata/oai-ore.jsonld", oremapObject.toString()); createFileFromString("metadata/datacite.xml", dataciteXml); // Add a bag-info file - createFileFromString("bag-info.txt", generateInfoFile(oremap)); + createFileFromString("bag-info.txt", generateInfoFile()); - log.debug("Creating bag: " + bagName); + logger.debug("Creating bag: " + bagName); ZipArchiveOutputStream zipArchiveOutputStream = new ZipArchiveOutputStream(outputStream); @@ -351,20 +307,20 @@ public boolean generateBag(OutputStream outputStream) throws Exception { * retrieved via URLs in parallel (defaults to one thread per processor) * directly to the zip file */ - log.debug("Starting write"); + logger.debug("Starting write"); writeTo(zipArchiveOutputStream); - log.debug("Zipfile Written"); + logger.debug("Zipfile Written"); // Finish zipArchiveOutputStream.close(); - log.debug("Closed"); + logger.debug("Closed"); // Validate oremap - all entries are part of the collection for (int i = 0; i < resourceUsed.length; i++) { Boolean b = resourceUsed[i]; if (b == null) { - log.warn("Problem: " + pidMap.get(resourceIndex.get(i)) + " was not used"); + logger.warn("Problem: " + pidMap.get(resourceIndex.get(i)) + " was not used"); } else if (!b) { - log.warn("Problem: " + pidMap.get(resourceIndex.get(i)) + " was not included successfully"); + logger.warn("Problem: " + pidMap.get(resourceIndex.get(i)) + " was not included successfully"); } else { // Successfully included - now check for hash value and // generate if needed @@ -372,7 +328,7 @@ public boolean generateBag(OutputStream outputStream) throws Exception { if (!checksumMap.containsKey(pidMap.get(resourceIndex.get(i)))) { if (!childIsContainer(aggregates.get(i - 1).getAsJsonObject())) - log.warn("Missing sha1 hash for: " + resourceIndex.get(i)); + logger.warn("Missing checksum hash for: " + resourceIndex.get(i)); // FixMe - actually generate it before adding the // oremap // to the zip @@ -382,7 +338,7 @@ public boolean generateBag(OutputStream outputStream) throws Exception { } - log.info("Created bag: " + bagName); + logger.info("Created bag: " + bagName); client.close(); return true; @@ -396,14 +352,14 @@ public boolean generateBag(String bagName, boolean temp) { File bagFile = origBagFile; if (usetemp) { bagFile = new File(bagFile.getAbsolutePath() + ".tmp"); - log.debug("Writing to: " + bagFile.getAbsolutePath()); + logger.debug("Writing to: " + bagFile.getAbsolutePath()); } // Create an output stream backed by the file bagFileOS = new FileOutputStream(bagFile); if (generateBag(bagFileOS)) { validateBagFile(bagFile); if (usetemp) { - log.debug("Moving tmp zip"); + logger.debug("Moving tmp zip"); origBagFile.delete(); bagFile.renameTo(origBagFile); } @@ -412,9 +368,9 @@ public boolean generateBag(String bagName, boolean temp) { return false; } } catch (Exception e) { - log.error("Bag Exception: ", e); + logger.error("Bag Exception: ", e); e.printStackTrace(); - log.warn("Failure: Processing failure during Bagit file creation"); + logger.warn("Failure: Processing failure during Bagit file creation"); return false; } finally { IOUtils.closeQuietly(bagFileOS); @@ -422,29 +378,29 @@ public boolean generateBag(String bagName, boolean temp) { } public void validateBag(String bagId) { - log.info("Validating Bag"); + logger.info("Validating Bag"); ZipFile zf = null; InputStream is = null; try { zf = new ZipFile(getBagFile(bagId)); ZipArchiveEntry entry = zf.getEntry(getValidName(bagId) + "/manifest-sha1.txt"); if (entry != null) { - log.info("SHA1 hashes used"); + logger.info("SHA1 hashes used"); hashtype = DataFile.ChecksumType.SHA1; } else { entry = zf.getEntry(getValidName(bagId) + "/manifest-sha512.txt"); if (entry != null) { - log.info("SHA512 hashes used"); + logger.info("SHA512 hashes used"); hashtype = DataFile.ChecksumType.SHA512; } else { entry = zf.getEntry(getValidName(bagId) + "/manifest-sha256.txt"); if (entry != null) { - log.info("SHA256 hashes used"); + logger.info("SHA256 hashes used"); hashtype = DataFile.ChecksumType.SHA256; } else { entry = zf.getEntry(getValidName(bagId) + "/manifest-md5.txt"); if (entry != null) { - log.info("MD5 hashes used"); + logger.info("MD5 hashes used"); hashtype = DataFile.ChecksumType.MD5; } } @@ -456,21 +412,21 @@ public void validateBag(String bagId) { BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line = br.readLine(); while (line != null) { - log.debug("Hash entry: " + line); + logger.debug("Hash entry: " + line); int breakIndex = line.indexOf(' '); String hash = line.substring(0, breakIndex); String path = line.substring(breakIndex + 1); - log.debug("Adding: " + path + " with hash: " + hash); + logger.debug("Adding: " + path + " with hash: " + hash); checksumMap.put(path, hash); line = br.readLine(); } IOUtils.closeQuietly(is); - log.info("HashMap Map contains: " + checksumMap.size() + " entries"); + logger.info("HashMap Map contains: " + checksumMap.size() + " entries"); checkFiles(checksumMap, zf); } catch (IOException io) { - log.error("Could not validate Hashes", io); + logger.error("Could not validate Hashes", io); } catch (Exception e) { - log.error("Could not validate Hashes", e); + logger.error("Could not validate Hashes", e); } finally { IOUtils.closeQuietly(zf); } @@ -488,7 +444,7 @@ public File getBagFile(String bagID) throws Exception { // Create known-good filename bagName = getValidName(bagID); File bagFile = new File(bagPath, bagName + ".zip"); - log.debug("BagPath: " + bagFile.getAbsolutePath()); + logger.debug("BagPath: " + bagFile.getAbsolutePath()); // Create an output stream backed by the file return bagFile; } @@ -500,8 +456,8 @@ private void validateBagFile(File bagFile) throws IOException { // whether hashes are correct checkFiles(checksumMap, zf); - log.info("Data Count: " + dataCount); - log.info("Data Size: " + totalDataSize); + logger.info("Data Count: " + dataCount); + logger.info("Data Size: " + totalDataSize); zf.close(); } @@ -532,7 +488,7 @@ private void processContainer(JsonObject item, String currentPath) throws IOExce } catch (InterruptedException | IOException | ExecutionException e) { e.printStackTrace(); - log.error(e.getMessage()); + logger.error(e.getMessage()); if (containerIndex != -1) { resourceUsed[containerIndex] = false; } @@ -544,7 +500,7 @@ private void processContainer(JsonObject item, String currentPath) throws IOExce // Find the ith child in the overall array of aggregated // resources String childId = children.get(i).getAsString(); - log.debug("Processing: " + childId); + logger.debug("Processing: " + childId); int index = getUnusedIndexOf(childId); if (resourceUsed[index] != null) { System.out.println("Warning: reusing resource " + index); @@ -562,11 +518,11 @@ private void processContainer(JsonObject item, String currentPath) throws IOExce // add item // ToDo String dataUrl = child.get(JsonLDTerm.schemaOrg("sameAs").getLabel()).getAsString(); - log.debug("File url: " + dataUrl); + logger.debug("File url: " + dataUrl); String childTitle = child.get(JsonLDTerm.schemaOrg("name").getLabel()).getAsString(); if (titles.contains(childTitle)) { - log.warn("**** Multiple items with the same title in: " + currentPath); - log.warn("**** Will cause failure in hash and size validation."); + logger.warn("**** Multiple items with the same title in: " + currentPath); + logger.warn("**** Will cause failure in hash and size validation."); } else { titles.add(childTitle); } @@ -577,14 +533,14 @@ private void processContainer(JsonObject item, String currentPath) throws IOExce ChecksumType childHashType = ChecksumType.fromString( child.getAsJsonObject(JsonLDTerm.checksum.getLabel()).get("@type").getAsString()); if (hashtype != null && !hashtype.equals(childHashType)) { - log.warn("Multiple hash values in use - not supported"); + logger.warn("Multiple hash values in use - not supported"); } if (hashtype == null) hashtype = childHashType; childHash = child.getAsJsonObject(JsonLDTerm.checksum.getLabel()).get("@value").getAsString(); if (checksumMap.containsValue(childHash)) { // Something else has this hash - log.warn("Duplicate/Collision: " + child.get("@id").getAsString() + " has SHA1 Hash: " + logger.warn("Duplicate/Collision: " + child.get("@id").getAsString() + " has SHA1 Hash: " + childHash); } checksumMap.put(childPath, childHash); @@ -626,14 +582,14 @@ private void processContainer(JsonObject item, String currentPath) throws IOExce checksumMap.put(childPath, childHash); } else { - log.warn("Unable to calculate a " + hashtype + " for " + dataUrl); + logger.warn("Unable to calculate a " + hashtype + " for " + dataUrl); } } - log.debug("Requesting: " + childPath + " from " + dataUrl); + logger.debug("Requesting: " + childPath + " from " + dataUrl); createFileFromURL(childPath, dataUrl); dataCount++; if (dataCount % 1000 == 0) { - log.info("Retrieval in progress: " + dataCount + " files retrieved"); + logger.info("Retrieval in progress: " + dataCount + " files retrieved"); } if (child.has(JsonLDTerm.filesize.getLabel())) { Long size = child.get(JsonLDTerm.filesize.getLabel()).getAsLong(); @@ -671,7 +627,7 @@ private int getUnusedIndexOf(String childId) { } System.out.println("Using index: " + index); if (index == -1) { - log.error("Reused ID: " + childId + " not found enough times in resource list"); + logger.error("Reused ID: " + childId + " not found enough times in resource list"); } return index; } @@ -681,10 +637,10 @@ private ArrayList indexResources(String aggId, JsonArray aggregates) { ArrayList l = new ArrayList(aggregates.size() + 1); l.add(aggId); for (int i = 0; i < aggregates.size(); i++) { - log.debug("Indexing : " + i + " " + aggregates.get(i).getAsJsonObject().get("@id").getAsString()); + logger.debug("Indexing : " + i + " " + aggregates.get(i).getAsJsonObject().get("@id").getAsString()); l.add(aggregates.get(i).getAsJsonObject().get("@id").getAsString()); } - log.debug("Index created for " + aggregates.size() + " entries"); + logger.debug("Index created for " + aggregates.size() + " entries"); return l; } @@ -733,27 +689,27 @@ private void checkFiles(HashMap shaMap, ZipFile zf) { ExecutorService executor = Executors.newFixedThreadPool(numConnections); BagValidationJob.setZipFile(zf); BagValidationJob.setBagGenerator(this); - log.debug("Validating hashes for zipped data files"); + logger.debug("Validating hashes for zipped data files"); int i = 0; for (Entry entry : shaMap.entrySet()) { BagValidationJob vj = new BagValidationJob(entry.getValue(), entry.getKey()); executor.execute(vj); i++; if (i % 1000 == 0) { - log.info("Queuing Hash Validations: " + i); + logger.info("Queuing Hash Validations: " + i); } } - log.debug("All Hash Validations Queued: " + i); + logger.debug("All Hash Validations Queued: " + i); executor.shutdown(); try { while (!executor.awaitTermination(10, TimeUnit.MINUTES)) { - log.debug("Awaiting completion of hash calculations."); + logger.debug("Awaiting completion of hash calculations."); } } catch (InterruptedException e) { - log.error("Hash Calculations interrupted", e); + logger.error("Hash Calculations interrupted", e); } - log.debug("Hash Validations Completed"); + logger.debug("Hash Validations Completed"); } @@ -766,25 +722,31 @@ public void addEntry(ZipArchiveEntry zipArchiveEntry, InputStreamSupplier stream public void writeTo(ZipArchiveOutputStream zipArchiveOutputStream) throws IOException, ExecutionException, InterruptedException { - log.debug("Writing dirs"); + logger.debug("Writing dirs"); dirs.writeTo(zipArchiveOutputStream); dirs.close(); - log.debug("Dirs written"); + logger.debug("Dirs written"); scatterZipCreator.writeTo(zipArchiveOutputStream); - log.debug("Files written"); + logger.debug("Files written"); } static final String CRLF = "\r\n"; - private String generateInfoFile(JsonObject map) { - log.debug("Generating info file"); + private String generateInfoFile() { + logger.debug("Generating info file"); StringBuffer info = new StringBuffer(); JsonArray contactsArray = new JsonArray(); - if (aggregation.has(JsonLDTerm.contact.getLabel())) { - - JsonElement contacts = aggregation.get(JsonLDTerm.contact.getLabel()); - + /* Contact, and it's subfields, are terms from citation.tsv whose mapping to a formal vocabulary and label in the oremap may change + * so we need to find the labels used. + */ + JsonLDTerm contactTerm = oremap.getContactTerm(); + if ((contactTerm != null) && aggregation.has(contactTerm.getLabel())) { + + JsonElement contacts = aggregation.get(contactTerm.getLabel()); + JsonLDTerm contactNameTerm = oremap.getContactNameTerm(); + JsonLDTerm contactEmailTerm = oremap.getContactEmailTerm(); + if (contacts.isJsonArray()) { for (int i = 0; i < contactsArray.size(); i++) { info.append("Contact-Name: "); @@ -794,11 +756,11 @@ private String generateInfoFile(JsonObject map) { info.append(CRLF); } else { - info.append(((JsonObject) person).get(JsonLDTerm.schemaOrg("name").getLabel()).getAsString()); + info.append(((JsonObject) person).get(contactNameTerm.getLabel()).getAsString()); info.append(CRLF); - if (((JsonObject) person).has(JsonLDTerm.email.getLabel())) { + if ((contactEmailTerm!=null) &&((JsonObject) person).has(contactEmailTerm.getLabel())) { info.append("Contact-Email: "); - info.append(((JsonObject) person).get(JsonLDTerm.email.getLabel()).getAsString()); + info.append(((JsonObject) person).get(contactEmailTerm.getLabel()).getAsString()); info.append(CRLF); } } @@ -813,16 +775,18 @@ private String generateInfoFile(JsonObject map) { } else { JsonObject person = contacts.getAsJsonObject(); - info.append(person.get(JsonLDTerm.schemaOrg("name").getLabel()).getAsString()); + info.append(person.get(contactNameTerm.getLabel()).getAsString()); info.append(CRLF); - if (person.has(JsonLDTerm.email.getLabel())) { + if ((contactEmailTerm!=null) && (person.has(contactEmailTerm.getLabel()))) { info.append("Contact-Email: "); - info.append(person.get(JsonLDTerm.email.getLabel()).getAsString()); + info.append(person.get(contactEmailTerm.getLabel()).getAsString()); info.append(CRLF); } } } + } else { + logger.warn("No contact info available for BagIt Info file"); } info.append("Source-Organization: " + ResourceBundle.getBundle("Bundle").getString("bagit.sourceOrganization")); @@ -839,14 +803,22 @@ private String generateInfoFile(JsonObject map) { info.append(CRLF); info.append("External-Description: "); + + /* Description, and it's subfields, are terms from citation.tsv whose mapping to a formal vocabulary and label in the oremap may change + * so we need to find the labels used. + */ + JsonLDTerm descriptionTerm = oremap.getDescriptionTerm(); + JsonLDTerm descriptionTextTerm = oremap.getDescriptionTextTerm(); + if (descriptionTerm == null) { + logger.warn("No description available for BagIt Info file"); + } else { + info.append( + // FixMe - handle description having subfields better + WordUtils.wrap(getSingleValue(aggregation.getAsJsonObject(descriptionTerm.getLabel()), + descriptionTextTerm.getLabel()), 78, CRLF + " ", true)); - info.append( - // FixMe - handle description having subfields better - WordUtils.wrap(getSingleValue(aggregation.getAsJsonObject(JsonLDTerm.description.getLabel()), - JsonLDTerm.text.getLabel()), 78, CRLF + " ", true)); - - info.append(CRLF); - + info.append(CRLF); + } info.append("Bagging-Date: "); info.append((new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()))); info.append(CRLF); @@ -903,7 +875,7 @@ String getSingleValue(JsonObject jsonObject, String key) { } else { val = stringArray.get(0); } - log.warn("Multiple values found for: " + key + ": " + val); + logger.warn("Multiple values found for: " + key + ": " + val); } return val; } @@ -933,7 +905,7 @@ private static JsonArray getChildren(JsonObject parent) { children.add(o); return (children); } - log.error("Error finding children: " + o.toString()); + logger.error("Error finding children: " + o.toString()); return new JsonArray(); } } @@ -1007,16 +979,16 @@ public InputStream get() { int tries = 0; while (tries < 5) { try { - log.debug("Get # " + tries + " for " + uri); + logger.debug("Get # " + tries + " for " + uri); HttpGet getMap = createNewGetRequest(new URI(uri), null); - log.trace("Retrieving " + tries + ": " + uri); + logger.trace("Retrieving " + tries + ": " + uri); CloseableHttpResponse response; response = client.execute(getMap, localContext); if (response.getStatusLine().getStatusCode() == 200) { - log.trace("Retrieved: " + uri); + logger.trace("Retrieved: " + uri); return response.getEntity().getContent(); } - log.debug("Status: " + response.getStatusLine().getStatusCode()); + logger.debug("Status: " + response.getStatusLine().getStatusCode()); tries++; } catch (ClientProtocolException e) { @@ -1027,9 +999,9 @@ public InputStream get() { // Retry if this is a potentially temporary error such // as a timeout tries++; - log.warn("Attempt# " + tries + " : Unable to retrieve file: " + uri, e); + logger.warn("Attempt# " + tries + " : Unable to retrieve file: " + uri, e); if (tries == 5) { - log.error("Final attempt failed for " + uri); + logger.error("Final attempt failed for " + uri); } e.printStackTrace(); } catch (URISyntaxException e) { @@ -1038,7 +1010,7 @@ public InputStream get() { e.printStackTrace(); } } - log.error("Could not read: " + uri); + logger.error("Could not read: " + uri); return null; } }; diff --git a/src/test/resources/datacite.xml b/src/test/resources/datacite.xml new file mode 100644 index 00000000000..75c07a3f143 --- /dev/null +++ b/src/test/resources/datacite.xml @@ -0,0 +1,18 @@ + + + 10.5072/FK2HYIXMY + Myers, Jim + + OAI-ORE and BagIt demonstration + + Qualitative Data Repository + 2018 + + doi:10.5072/FK2HYIXMY/ABZMQIdoi:10.5072/FK2HYIXMY/RHMACIdoi:10.5072/FK2HYIXMY/2LRK1Ldoi:10.5072/FK2HYIXMY/GNCTTN + + This is a sample dataset with a few files and lots of metadata designed to show how QDR's OAI-ORE and BagIT capabilities work. The metadata is solely for demonstration purposes and does not accurately describe the content! + + Myers, Jim(QDR)Bagore, Locoai + diff --git a/src/test/resources/doi-10-5072-fk2hyixmyv1.0.zip b/src/test/resources/doi-10-5072-fk2hyixmyv1.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..dcaafb870d5646ed1d56fb762e8bf9cb1fe6aa0e GIT binary patch literal 1137096 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�MmvN^H^1lT1!|S=Z7uHCXK~pvZdNW3|>e5*Y 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

^?Bm5G|5Nq+3{$Bjv|K#|@^3?Oh08+c6 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

  • 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

    n<$&T!Q5=N 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

    12>;882SZy8Sw;d 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%0Da_X3-nv?Qw<;RD*%?VPr2%<;>^k{7iJp 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�r$L?mYw+z4xu>?c70_ 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 z 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 z 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

    u=-A)1s^j=n`uE--k>^3Y(4(R5?hKLiUNUW{ zu$DZ`$HNM~C{3Yx2IaN`J5wtqG@SjBV16zWd6UjHg2wkpOX$>MDV`UIjgn(pS#Of( zLQ9&*n>Z^KKSV=2A6|15CCPFM!3M47=si5uf#J^-(==IJlvcV%vs;aGi_m_&cbgts z)7mT83$vI`Fb|{pc1FHs`mgtLWfl%@aGRwHdqOH?Zkq`K06(tm1}2Y?b&R#1*XwuI zBgr;|qxpN~@x^@V$tt9at8vg+JEB4UB!uU5CR}};hr8V zIIeAxv1~CElduA<>v=i$K0()iHmltJj^!uS7k&MFVZ3GpnG8S=O z-m1W}`>~3cbBDylOv~#*1GP20nYBc4Q(@*G2tW9k2t=`Mtdbv`Uag=C2~0h*j3Xvy zqs`k6{)gqgC-;1>LVI1hd`x8(o(l#WbYc9rJU;K=Jkpx$(2)bstA+fUv>{R8J%b^_ zBnrwg*;se=Nd~VAH+?(HK0$XVbJ@@E3W$N#nqId0QX+{BFTO0TX==*Yy zga1)&R{y9rt1N>b|J3#&{BF~eyBGK;ZomAa>0DwNeEn0a_ot1%)Sd9}7KGge#OGj8 z?904i$b|&7tS8f?8va6?{7ddgO){Eju82_9Gc&L<3n2xjsZX~qnY1T0hKBXc+w4l@ zA*!9f6VqEq4@KH`>FM1TZ$&3>|73y)ZHk0k2rWXhs=`Z zH}M!*eWJ4C=il9;_F`F%wBN^Y+}8bl;>aj?Y>xv_IN=H5#RjM}_M>L+&C^$wf|6-P z)`|vwuf#ZLP2h21)fAHGa~ua;y0--gO)hZbh>3Gdt$_KYvt!AqDN*mk(8 zkMlnQP_B0GZqAsjOfexH{c$+sk0NY3b@2RA`OT^L?d;X2MrhI3)G!De zWuA6XPM&R+;4BPtw4 zkF}0JT4DrqvjgY=_#qcVB!;qKCKz;ijaXOm(lc72a!{glJfROCzoSk%E7m#xsUvfjF5+ z-+lQOd@m;8y56H*#ZoWomh0>6v6JeyMwy$4Thn)xhuAa%9#TdSV(@GaK%7%t=*y7w zPKfaHAK(id(Ch-E1%`_VS?qlJjFCZGZF6#50HhoeB-pah8?asuO(bk&ba(N67Bkt0 z?s=#DLHB~SKrWE)u#kH8gI;v#Ij{o@1!Ixl>Hrc!KEhhFHE4>{5#I2pxx%GkvN95B zkq9N~AzSRQ!SYG4@#(?ZKw+&~mkOACT8Q~{N6`@}B;lyn z!WN1Po0>5YMiF2WX|ap?(f67C;hO98ApSBnR1eC~(+f>_ZfNv}{!i1-&+t3W^I zfz%pJ?sE~Ow(n=W%@qr(KvKI0(;`M)P~7K*JfjvZyH&ST)9`=LsWxoPw9{!k(M{6L zG-*6!Cc37+*dbIzeUMP{e3L!;o|j+ltssMqIOa{NKk7i31)eq}><36Gf-5mJew71uxZh~C$hvs|*%jz$I= zX92NObuA;TJ)8Tu=-t>3JztJ(XsEVb&Tl8NnrwHc^KkylP2%Gx|F@XaCy>KME7xqV zk3|~Q@(FLxUk}qz3X$QxL`#hFlqOv)?#1?LRSt+5(wk$8&hrBJc)lubybK_~&|peL z@@g!YeQ);ECXarIHK_e1z!rK4?v_&+vtJ+THknqH$-lO55|KTf2;wzXV=E%!H1G)% zK8Aec>wfwKz%qMAgvWc`UWBsG!44D+ZXPn+c{Z3@qnAuD*^i3a>bqksT`*GpKys>Z zAkN05sj2TdO5D6%Ps->gOvEgcvTfShc4oCC0c#;pi3m^Y6f0=Y^&_tX|x@!h?m)|O0@4TnN7;t^?B8zsQ7=LTn=o*bu3Te^g z?P6QAgC@&1ib*P!m_)O@b9l1*edEDWdV0svd91b#n1CE@P~mqTP9W4Xk};=%#Kok0 zkzveg75OR5xlTWK$Q%ozo9=dorOchMq7S7Mpo^R(c1{E>6obU>L|=#S@;XW8{dQy- z7!vle2lxDg<&I7iH&_D`$qv?E+SV1t_uBph$lZvRGeXUloX;FR@f|IbGpAP@gFMei zIXxd@yKxP0i8a1F+6m;ibHgZvXo#t0L6RU#-`&S>6uMO%(7J0&WRI+fAn(8NNtLPq zg6SqU%U)vwcnj5ph?|N;zW*!$5Hmr6->Lq&=^pP<*mHx)Xbz$rND?!fbVw3^kJ%6h zZrPx$AsWw~pvb0;JJAQCu(7$M{ETPOg_S7dZ{VI-Vt)5bRX&80Q2a4t8zq}^bS+Ev%ephZ+&rk0!ghMHDrbreL43p9y=YaN@B_^7&9wpue;5NNbUCAI(D16YVk4!>G(7!`bozeY;yB2nIo47#X>42mzJJB!sq39K#;U?J za;Rk@RIQ8X#0+TB?F3bEksx}*aR~>o)ukY|`6aTu3kVSmXieHS%(ohIgb3UUhU0&X zd#`~j&26>`jV0TtvKjknZawzgc`3cNWQ}T~6TvudXncMhL2ulM{>TV&*Sn3S$;5Vi z%kyM%iUJNpsyV!1Sg`~mjl`PY393%{*Sq-sp+e~{LLMGn*OKb-w_)*R6*Fp_H ze=w)D1sipnSUJ2u7~Uo*9X0z%$T1LcppRm{Bmb~7w(u#5E_|{}l#XeWZ4MPQynf7E z^SsNh6?vE%`)&}u!OD%ss7O$nSS}$GcAkPMAK_URz05v__lrYj41d*Fzte^| z$}fk1opw1@mfqt}6xmhI#_*Q2Dkm$g|vA5YMf%S%B zWQ>jK&4m~}Ao^_H(KiTpR3IMGSHVSLBpZh4gaXl#H+Z0W=o9$IH-{#=v5+vQ3nQeP z`b*k1Ab&*ia3Xb>zsS3a|GVvJB#!c*Vru^1M6Q}IhW3wy{`803KN*am{&^`_;ty#j zQzQ)iBej42CUP@hnDl>+L+M2NBhHgX7%}`K#rXbiTgMmt_tcU9OfMlK$rs7Aja{@~{XSvV@e6=AH>4-VCN&&^P>~53y0vaVkI$#au_ZGI zt78$tE&8|xEyp_SlH$;gWO;hoFjuunmEyTstO&bWH*6K>w)AgO*oBUuGl;V-=qYRK)8lM(bRYxSH`B)ODW) zzg^@AZ&GjD--6Cfv*E5o;q6V(NuJ$fJ!($R>dai!VZ>u`e?RwMIk&uh9lwL2Z zPTxcq(;y1ZA*dYI1lg^%ULMqtUFnH4v_N$q4rVxHL20^Q%$V` zs(TNn5=5?O*_Iz#rBXT*WFA+kd_bxaKV1TKB+q2(q;Q*BI+77n0>jGVZg76IeYH5} zJu6&nGB5^eu&af%B70Ugu8-x(NXVjhxB{^9m_<%-wEfjetrF>*^*AYRLp%pllSmpSZhZU; znaxN@{vyAH1YO~N80@Lc=rRHSIvz7ckMSwXrmG&EI3v7)9fswB9a6JNJVOU)k{WC4 zcVpI!gNf|o6~jYG#d4|2NYQqKZ{77phVGh5N!sRPiwpc^;?Y7&E<5|k4=AH_TKssb zr3a+2vL+uQD9shn>!s&tE&v$eT1<#>cuc7_xB%QzDkM+{k^uV*=msPZ->bdX@K`0w zY95sgKG7QW==?(^;zd4b;L4K979A_yz#MpOSldsi4J|~rAQ$qB75Xvg^Um7HAdO<> z%kTo=3DK!*oJKN;51o+SAUR4mQT!GGT0xp4aai@>n^rM(#K9GX_)_0d7l^-mV;W_As@;4mt#;Mr}QaSCi z!F&M?!l{WC)WjX3hgs_^9bQB#PELz>0qF+`msgI#4Q9tC@UBMW${Pdp&wGnA8&PSj zAoGGQvT!Q`s)1~@GkLSRC(1ZMgCAr7FbG&I^PZp;J**8k1*qkQN8pt35OEjJ-AU>a zmJbx5gGy>mUb_$W+DL>00%C*@yEn;cZWCG^#fmay(%*!X>wh^)x^AQe(x{BWziYaqh+I@S*iuxsaplY4p~SE!2z-ACf@#}`oPDtQXeI{7=89L>oLbct)FcLt-E74N3hU@6MqpkB}B3r}^ z_*j@#cIv<+VNJs>@gRxvOlnH^4V3T)W|6xz08Nk*_UTji`)SKep4)QN{8N1oITpqf zEUq#4b=CK>JkA2*l!ORdm9XhSo|=~D*b>_K*szm+kz~{6n<5=U#n=KO-u#WaH}LRE zSH3pmp9Y=9lU|CI=oLo91m?o1xiI?PbV7#h;qe>pEfq(B7V;^0q%bR2=pBz9Gdre@ zPo|EKR~lUT>m_31Ia&&DVQ#f8xWzx5Yh0|+o9`|3-LNU)v&_2(VYq2+(T>v-)lyp^$_MU$hh`qdpTz)|Ca_9kZv@JWC9;x1Vosz`DUJ zT4q5>%YuA27CuTHd5meBr3~}{`{m+%G97t1uzeK_e=}Y=P+=iwyqM6KB^vhea(`uY zG!0bWc|5Ct!8mpwYxBs56s+KEWKNxujK&_Bwhh$5m)< z?uFt@hBVH#@No*sfX~^)6V>Y0If?U95;xwFs$DcC*9?6{JvRfySN#5G!CJwgu345Q zk?VNEy?B6-IAsEmVrfe3VV~Se^A@fcGG?Uh!E>nlks3Pjo4xX8P6KN;Bi#3x?~8Z} zSajEo2T0}L{moD`UQ-l=LufM#)>~6Y?MZFi;Z7VsJK`IXOB2;3(`^N+&wK#67xLK> zyY}89Al(A)ldtm&ISZJBYwJc4SrxgsTX?MeQ$YYUj2O0QNk-a)^L`=_wV$4%33}%$ z<7naq&|>O=#Yh#I%PYoT<-u25ly~?UL3=?^Y1788^93xpu9gy*EfgceI9RhdHK=3x z@g3WF_^ZzMB`pf=z@PULfG`avbWs;}1>GRzoT3JDp|+xTU;CQRW-|QLqGAt}_XO(@ zx`cj(xTIkwpFh>&in<~rLdQmAwD54ZZ`qs&3m}HVuItNf#+gL|%ci^v!rpUPzHYoC zONVQd*`OW9j2g&}&5nL_JAmMi#*`S;s7)Ml1XzM7T(uIAI|U=gu08}y*ffiv;RVOP z`LDX&^iB4#C*On0Qb3tBFFb6}DkcyhbNr??qGA5W%1YVK*u53(oP2g-Pgm(2(b_JU zSQq$+{ic_n#l8!Cv8b_j5$u(UTgW}%;pp-*&Qj)efM|3Q5ns9x<+MjsYs*Y6+)7gx zzps8{Wr5V;?OAKSSfS&Qe7S>=x)~JXSvXti9z4Ut$Li{Y#iawcq8h2lG(3#DIx=oD zxIO8u_UJgg)*F{hYI>PH?M>n68$9iWxOMmkRyPQGiyC)CmcCK^CDWwe09zV_;5+jd zLVI9=vM@eb%T4(IDkr%?0OTU1K`)+vvH8XN5Bs*rvp|pkttAC{scJ+L_~8C;Pw+s# zZ;$X_hq_|+zxs9GzD9h9KIaa1zyVT{e$ydw^Z)c8*{j?Ac5nMDl6p80@g@3Cq|K(n z6FL32V~jt?2@?I^NA`7|4~l*1m%v|Wchw*5$ZJ?J9W4EbAfjuE$=Yeu%W3i-3m=LA zS~f(DogAq85=rg^11ZhkFiAAi-EW%2*nUeGjjBl25xM5(#ztrqGYhs4&SMy~>;?g^ z89G;o6X7GeDMv0yyttlu^p%?Wl~>qk{^8|?;M*#qo!RzA%zEyjHP!xe`xCZ>U#cP` zyE!I=y4r9)`A+*%{pd1$eWkHIdWly zZg|3$_vA;_EEJu-!CVG$|5^|?ya`BgL~n&m)OwPGPeDTVhx4BkONjq-VhPXkB;DNe zj%uBvtV|S64w0G;h+#5b!peVNmwfe!j9R06LPu=iV&&%;>+5*Te|vGV(==E25_9r| z{I713Xccx=WJ=xGFPXL~S;_h40_~W75~BDK+}AlMxnuVjLTVW9#?nCfur~g zI-!%)`x@wmATFxs*Bbr4M-f;74V5Bo3K5cohOpXLr^-TmIzFKXklrh;Y|Tn}8n(mm z_8{9G;rlV+`?j~R^F}O#WQjU?po0kXdjmD^&6wEc)n(a?WKG@dSMcWj|B&_0(Uo*t zxOZ&Zwr$(CZ9D1Mw$q(-Y}-c1w#|->zMc0y-**Qi?SsX6EKoBQCd z>W=^s(i=rZ=^q3f#;nMV1Z(UneZUVGE4600Q)z@`zx&-t`g8RG8FB}%=Ym1J8qnq> zfyG8Hzd=AetIt8ZSYYy`3@_;PphuwH8w=ukmg-=_AqYV1!BdAowvhj!EIvFb@IZNN zoWW3@IR>gkhz2sn$R6|G=v)Pbo~`nwZEMBuMp} zQgPL`4&~+V!@u1~JS|Jl*hiRl9Ozami}A9HK-gcl6{(zsZV6I4K%qzSyEAtVJf}yo zSN(E=z_#8*kVu2x0OQpsyog;v3(RxLIoPa-4Q0N;4w zK2ZL!fEE@DH>%!`eu4}POb?)-enN^AHO0_)DK$$?VPhZ;qgdYWytX%umtHjZ#0mli znS~9#a_1sxq(5D6K5Q690SUd~P`jy$r`j*+c23j;fE4}X$Dcd4G5v!jiZ zif_SJ2|K0OE(9 zDFK!TN;MJfpmdlRCvCJ=X;AQ^*xgAE{lPbnyug%~AAxo8JB;5+u=NL4DNXMb`R-ym z7^Bz`gI85{SpKY`i)teRE74_`77vxb8W22DV(UniwfTa3{@%iz#YYiDDUxLZ9}MUUjt`GylGmEjXfK$iUWYZreG_e3P8 zv?md!E0t7KbarXlqkkXL@?I%0{73rvy|Eq$tqCfAlNl!ICFy;5vx<$TX!H+!c_qmzhuv*@1WZJ}w1qv2-N+kg&2 zn~JJvwSb^ZEA1t~E$~{|Ct!?=U;s)I-CiIUdnWKDV$(+Kw2k_0zCogcJ0{H?%=ULn zr)3kJHtitu9T}ePlW+I!PP)A38ShR{+m&g6junQWmVqq6JHt;^KYYKqfI=va&PWyf zeG(g9kg)pJYe$vy9e1B-?3HE~@su0^1)a-MW8EEpkTN3qVCNqK$IXcVSU43PYFqt+ zI`E|(EzA5s$-XLt+c&_>s-+ip{`()})_b0xcU>$M*vf6kh1Z5E_15pQ&6m+38YLOi z(<@r18jsUQwOsnvWZs&wC%#{DG3seJ1S#fZyzqlSMr@`K1VKr${(j;{>Y)?~L$s*)Zms7C-P&!q=5+V-nWsWe71~0p5yq%wqg@n?e%bqgd&_aIlwD=| z+RpA}$nyieF53 z?Oq8{H5?W+1dPQNTxJwN*e&dCj#`WwyeR}rmMz9MEAbE2m4dv42KnC-h9JJoAe;ZP zE`s(oWP<;VlOe?Olh9HPD&}&y`gJeFI|eJ3VgG)TeE(N%d{ry|d_4W%G-ISs&amPC(2NUN{&!AG^3eaDCvA490q|P* zWB%T-bIn*)(xsLaWIBvD{ARwNs7Bk5A$3Q^Qv)p4vT-NoNn+deqdRRFUbs+k2ddY{ z)|q88tU2Aw158u9uRTqXhZ;w>T+P#4-yJ_xD!&p2DPJ%6R!lG} zOrCrn3)jiTa?#NXh+RJ}Ju+LzPyKc0Vz6ta-DIJ=i)KlzQ)6N9QzT3Zw<*49pin-z>->4xKc+n6gi(N{RN(@Td{QJXz`-pPoy}zb9+k*FIN#<|Mc&Z zVM8>oajL&6rB3muVu~Nh)rYq?2EZS~l6l5i;RMXSekZ=N!TH|){2?&|4PcxgZMs5O z_YbtxSr*fG0kg@ao!U5FCw5V^*X=`j5k_84nD4W|Qf8sudr|DZ2MXiI08+An@^P6q z*;Y@sZYe7=X=tjFza~V+EG7xjPx^v~YzyILkr3jMR{Byi8#CHLM^tSc2kNk6v+eQJ zofY`*0k*-f!vz)8i9sTwXMthm#@9H+TD&xP5ydm=BuHX$N)t3soN7tXSKyc!&Gp<; zNb05!Wk!gj4d^|fExf|-1#HMA*q37@FuVy-SExvk6(f3NIY2>;a3m0hAw})Jiv!g_ zu0hZ^D@$69vP$r>K$@=xc;#hVF6p@K&!#G;C#5kagG z(V`$T9yLWW5SWkIkT6j`=7ab1mNBV`fpM(E@!%B3BIob)6d)5{T#UvA&|;$l<_g5r zG#%^`#Lh6J1^#hsuONVCpPU$S=Mm(5XYvwd28RF;qv)b6+hvOekHBKj10fXf2#2Ts zp)XP;#%9|Bu-(rw2uGWMi`nCERH=j7Qlm9QCChk%+~(qluPuT>{1GoF&&O@`O!Z2NgPp5;QS}FHc$Pr_FC*7VYc<@n|jSA zX?!lU#8{x`-_iv;Dy1yrP*J-_%lSt+{o4Mtsn&YiluGHA>@4ssdv`j23d(+k3sH%J5#yLn^P=hO^7M8s!BS-a!~Ejcz$ z#>9#gW6n*oDGSCMGt5&9kySUXh?yqMJSAxQh$0d>K*Uwa2*_)eM3>x~_5E-))63fV zo+d_yBi`snNy00{dPtEByCtzwpdGSM^d&E?!adL(qu$-n)! z4Vpi^xwQ*(Jb6Mb-HaldpnVkfw?=GrRRKyssy&n!e;k-LrZR%PznM4EKI*l)P!B`7 z{%J>ivDI|ta^CUtwQHa3;(L3}bB+)DJvHpqQ!t$oBQa+O7jq1~cBuXYt|2v$u(3+W`>|I$FKK-af555fob>Ug(j|~z>2U$tqP`1gR zd`uJtC;a|c$~EEK5NX8_g;p@3tok(DEm^thzO|4Ul%r<#vw_6sp#*^;gM%XJQN(djz z3p}ZZZ!V`ez0OE>!8@D8I&cLCorr)4LV`6~r(R-~WRB{f6Wvr|^Zvs17^Amt^L2DDDm!wN2g2zgsu337vKCFMZ;x(HaZ;+_2-~( z`QrhMPc}gOK6Q5H%P;G0Gt0=YEaq?PJi7X->w!K@Pve3Vjh8l}~mX$8T-F}%1E^06v zk?>^d_D7u-ZLMmpYN*)Ig!>04fNHrbOx^v5SS!H5b0OxL1Xb zh_Dckd?Fm0HQ_;wnZa5~_uXdj;~nH`$x#oC<6HrFZ?2#)wKv|nmsw=)w14BQn4m}Y zPxv$svaCh6Zp8Ks=ZSCNZn|bfFCzTwCmR8!dU!$RC)XCoCcAS4Qwt+zDauj(LcS@- zn|DQ^1Rw4umM_6zt&{G)v^0~Xv{Ier6bBa|NX4oKNf+>Hgrd4%BoaOQn*Sq{p^1S> zWGdeXKuC8#HPqND!K<~oJzk918K*_|bl4!V>nvYh$0R2*FXJlR0RA=drpMkNqPORm z*jD6rkxXAlYM?RqKjJzeBw5e>H!f6DF;LgH*pMIn&94!7E1va=SLBrz&3ZV`o}0h! z-Lc)`M$ntwo9pM?SCz7Jy8Sw~(8bEbJKD4muZ*GuATwG-Yv+g%4@C1V}^^at7QBQZOY;AlzKPW_7S}rpg zze2jYz{{?ty1-n2)@7`14OVCLwKifTpR0w5iTqq$%>-tAnkW#{i2#gke1p7f{53Em z&hZ|gi$JW;6dnFELP_PFtCYs zETlq;rsV_-f<2TH4AGlM-hOdvYg%jW1Zou!)&0}x5IuE@!nmTZfQY$NBuKJutu_0* z$>G9G=WXS78ztJbcZ10bi)G|Y+TBC|aDmaro)!>JZ7?g%=!^XZBZW=uW0WVb4E|>G z%E2cVvkj0B7>ceo8gB{*CQGwFv*-qR*#}St-ceWqRec1v1h3>(<%)~2%1Vp{5q`XG z66Rq@N92WNh~>vvVjw=`p#j)J)VRd0`b={v631UcX;Cir0LZV;Og8fV3{+O>SI=7+ zsFEvMoKZhl6<3Di=AfKJZFB8#8z@TyZ(7rdc{5MN~QPLe7V6!}5-^TM={`@|?o z&O&~z4s-}<)Icl)DYv9fRUy4)h}@oNq|B%mr}$(jK0YwIcr&ImY#0o~ldy_gY(sQL zs!Cbvy17r1lEqrsXqx*t#{lELfJ-q#c#RX`<4fW>MJ6Ww904ZwJ9HM(k`;2Ea@ z*Y+^8R?1$IwZcCgS=eucJ9+ei23+AKrAH|w;7#^`s^Z5kJBEe<&w5rV;?O z(ttG*a>tDyi4Iwns>xq2L#m5eMj)m9#)vVhM-?~{eW-gl*R5FgJ*P-g%QnE?c;GZZ zks?_0!Z<`Ymk^Zbu}gsoZh^!YLP@sUb_jwQqDf|sp5|hTa6(yFm&?B;>hNn9Aqbj~ z8W6KVrY#boh-^s-Hv}ZZ7+~mx$3x103)LdN(J>cTrrN_0AQR(LjjiDOfdTre9}UM= z=CsCXs2eb|hqx2ziYEjf>v6FPKn!?auS&EZlr|An)@R`>41!2#J8U9_)Qa}p0mhQE zimucP0#^P#X&^#zToU%&DTZSeoN$gg(TLlCb)C{E4N8Us1)DbzF^;71@1-$f8C1&T zX_LJd&jg#|kO!EUs4RAU@woY2SJ$eIw&MD2+U?#W)1(zCrsyZvJB8cfqSLvzp zue2&iIPDaUp(m;S5@ra6cm%gw(Wb5H;6=B`jc-f20YSNJCnRjm(uyc$7eukL5eh0X zswzf-^MVnq(Os()<>(N0^ku7x#`!Tb&(9Q6AKQudj+%JnQBp3YAnm3Mhx_jtopXnT zBHIK%YN&c7&jy0>a>6=6co*oj%tzMQt?kTSOaztax2;^WBWju1f9U^o6FP zGlht}W&w`~cMtD=xmf@gc%_rNjD%$)`syj!;{C-#Q6e4PHw1HW!(ECk+*$Y+B7Q16 zRN7KS8O@G7Lp*L#UldoY0uGvAybq7}p^D}R{~?~mEGp=sgtg+Zy6w zNU15tLC#MKWJ^(Wq&Nv%iD1}<$4UhUKC&G2$7Yn_MGJQ`S0<^7(Kic8R$DQMgw3)Y z1iJ!)nf(9uvFKxSOj$k}<^Zo)#1o$+hzyi0b8bx8vqvbUo;-xv8lpKhreJuX1G#mw z@JAdT8kuiQNjZGK1|-DLJZZ?A&PC?gu>da2&wMt!S;b0bQzFNBxP8%HwH+JKKyCGR zPcC=Wcv$y0qzktUmZbl*6mA-$KW>Qk#%}snf0lu6Pjlq`22oFgXoPCt)h^uT)g=sz zhDCG6ux_H>XrO5jRoJ9!K+8w3?z|kvK?|_O_uoT=;(4HcrLgR+Vu|Jonl96%&E6c# zC-9kcIhc$}B>T}ThN=Ec5%;;2yQ(D&4D3N0oZqF+o|fhkLD)7A08Fhu$BdHs7}O5) zj8YG*)f@^EvaMp^7P`TA-vPb40qv{f7N!e;O<^HLx|X8lsb3PhY=<9|!ZXk@Ytdam zTTn6I;5W9UY$jf>d*_ww4Dr+DFNsxzA{$EHT2FQewlH;|Alc;hP8ByX5-Mkv)T~y4 zxuH__Kz90?i@rMqCh22Q-ygCGEM;^2UbJ(k;guxm5JaXWb!lX14Ev2}CQ~y^aT?`V z^E1hLIhhci+~*q21*N34hFRMi0xSESXG4`@C~A|(8B|$!DOO`0KU~cvGk27ULkd)A zoc%b6_Cj0k7>+nEiu~C7Ne6uEIzUU8e7Pjfr zT(Pktk#vDyR5JCF{*ZU%%TIKUbGiq)#bV=#9+=L@Uabd~ALL(R7f4pjHOw})p zz86{AG(fuaAW@>jdIbT=_-mi);hh!DOeu{{n{GG=2yRoV%bW*;mxrq+AunQb@iC|#W0D)`MPqlk&8$%$Q+BbWq!HC7U-z$(rZ=E zEqMq4_CUe>;CL4ZP+5^jA=QU++is5SdZl_&l99_mF(`5l2COAQU;V*le<@aPHmrwm z-C%X-eYX#%d>%-O?1PQ3KBdC1`;prDs2QzJi}(!CFA zRqGReS_2#?L0yUic1u5mr-ZV$HQ_Gm7wt?Zu2-Lu7#z`Z50~gYrtB|!GOia6orGG{ zcNkIhQiY29rsei0teLyo5o#CgALC2EFaZsU2q3&$hEhZ_LnLtsH-w^rrFVAPNAu;{4NGQTEX zfXYokxI>DZE40N!W-~)ov}}c=!;RMkC3t_d|T#e<{DaT5Bivy*sHc`d}Vr4!Sf%|pcujof31dr%e4mj@F; zkkfZ{aPi4QMgu}xX2EuZ)3ogIu!$Gx_*P|kdn&}7ECVE4FA&UriWZ5`mQ1G9kr+~Y zzXQfxz-Nz%5+Pi9!HUM#U0gr7K|oV!*qu+BOH=Xbh| z-|`Lu-WNep5>GNGV8tB3DIVY~>6h^-bqNm;KIAm)DBWUiM*04XTIX_*^4eEA?i?)k@vu&bT9Rf7}_O5bRk*oa<>an?lZqhF)qK6P?UNjkNP&6+Dg` z1PS#rwR%$0bevI!K?}4%-DzF)2A_uL7**0eA-v8K$rA0~J}bvsYH?j1-O|#|(4FJ9G2ehcp$Brn_Dl zRu?C`xu5vRH^KO2@YAT5;d}gxMaM{WALh^OC*0;%l;P8_GAkoX<4NcDyllUf@S2fb zfq*pm=3chB6GaaR-7zo4pFMhy!Ey2?_Ox~(s>;kjXrt-tdg!&_6LLiFnyEaz^gECv zv=pZh6RHWvh#a3EQdTPHv#3B;vo>~yqOstKP*Reb9d)YBegABxqA|}3G3b3)3|+6c zv70yby)tuczb6l4M#flD@*0A)>6GzAntm#S|R;7|0wo zl*%~lu=UI&ZtiV1Q>7xmW)&G2C(``6e5cdK9ckZ}z+V+xnvrO|Tx z;wqORqo*>CnFZ(@6|xTVEz?4sX=;)bV5|jV!8M-GAwl|Y2uClS4dm`oVd8CrWfhnw zYlIk@11=Ts9h;l{*=*!HroKq02==$>!`y~vA$JXs6I#?|tVsn_I05e$wd|1#Lg5>< zhKiO*Ly1hgh*CB)<&)5>yy$fmISOiP7rI9`&@@W+_XR*MShZ5Z3-H~irAlIu-GBpJ zvks@yanOLNyMwo<9@RD6|Jcra{83%3Xc}WrKnkVKH*B0bU^*!cMIOlIV(sX`UNHNx z1YV*u9E?E5mni_V5h2bz-U59HW8}+4SIHYLxGax{tT*&T|0FKC=_N{5&Uiv3k70Ia==12 zly;n1C93NK4c()*>kH-Ju+Xey;_+g|bhuGP3{;NV3w>m+ue0{4E6%ano0yKw2oB-aN*lDl4>zAi>^MKy5cOo5I5vi;xBx+Dx z+hve%(E{87mRiim<3}GyXnWbfWla~*v-Jy7@@Q!sksd4oLd}zggG9 z7cI0;0(qlNF>iY?CZVY-sq0 zrt6Oo9V=26_Wg{ZZUCu{#n!4y>}W^ut;ItH2oJNx1})$*>Xh#Y#Z@S&c^6dw+%v3b z*;j74td(P%5Q7I4Erq8eaiDDzS&N#j+K_Us^D+}M-hIrbi9&|9Bba<0F9matm5bT<(9ed4+E-`fA@Z&m*`j_LZVQk8vvnj0 ziGJ?zA@istD?Hi&Qa&7qyuiXZwcet+m4G?yor55=z{^M|8xhHnLjKkGxB`Rk&##Mc zKAGe^GDMOdI%upi*(Dnz9xI=4A*^X#CKQ~GN(fqxnZq+Ci@{??rf)wz-ON{^CvuZ5< z12;*6{G9>_nXd2vZe~~i=PKRrP5Is81~G1IlRjhO>Ea77hinyUk~OXfYU3ovW|Ou1 zZ89#9-lsCY$AqUB`sArtZdES-_R5qk3WK-NITxq4WLkf91HV6 z$;%s*2=hY7;(m|;y=u-vkDOyBA$W%JRmLp|GF?fu#ZD%ntUyx00Pmo zq>Q=$qJ#h5P=9rGqwx^)7qUSL(O+>)tx6L$_}?#Hd{#NeVorUrYN>xl(yLW!Y0&PNl&*jsL3o>Da$hFVe5S7|A>e|DNGa3U$ng@#~N4b~GaS z<1lNq28YQi{Ek?3g%#PN<#^u((BCR0@ zQII1)si-IDV1$Sfkc*gZVFdEcOQ2qC{xrWU=mMb&6v)js{R5PH8h#dJ&>Z#t;IVG; zu7-z}btOD60)s=F*0pkyp$IYyKGnVh48tzXwfTDiW#BxHpl${7S-`W$oR_XSU+%WEdM&eN=H}a#i^ul5VDK6%knigSISEr4% zP{AEf)&_n0N1;o7bj{~%=8qP?BN_MDFtU4KNNqzIu z{56QXOf^_oEUy9S2LO7$=K&2~_2aAGVp=5MkPrgF)gsVI&PT>zRpH=*Wb3lU@E;oj zVxj(Vfns36fsEs#C5Xp1(lP*ajrBZ$ZYbylK|gO-bV07aeW^n;zQ8;ViO0{fuy_wv z^7l#{lC25~fwd|F^D(zZC{r-U3<4Q11!d8!S2JSO;dqNJxU2tLu{6@@#`5_Mw`Bw@al4axP{1S&W0RsMR%O%NZt^oLCNH}^| z(H3-1+|!3cmP%O%$Ph9f)fbE)B|{!1_;A8hnyeRSB4R(Y%!OnL@5}4&6v>c9;vi;* z*7BV_zvquc_RKBVwk%9hHjh#hGD&*!BxD*nMu8GtyT!JTuN#I%cuzkz>?aKdHh?m1 zwyLfABUjc1lwO_rwQOo?ILyx1Qjc@)=)gVg%Aw>GM@~t_v|ee4=BJx4G0@3{=mPZ0 z0M>!2>H#SN{TZPEc=dOw`M zOM>LKR$swxF%%9pANvn8ee!RJKHFFrSqhPRSE0R*9VxHf1|*TycSbH1*5W|{YBbmE zvd>@CAGpbO)?Y$qZ-pzn&QzVxQaZTRX!|X8j+dcwX$5JiU0>9L2ze{jZLbH^33-Cu z)O5_w+NifR^T+^QOtx!RCw221+$c?_Va3QA#5=$_f)P3)^kGtg+08YQ7fWI2i%OB^ z07YR#I;jdy-q?VW8bAZfPawb{C+3@TD&gmHDG32*1GRrC4an28<6!{A8tYW?4e<7J zr$P&$e831G`}M4o=4%2=erf`M%kMR<^WZesGV zskOS0#FJA6J52s zac~my1I$ylacA&Ne=0LQgqk*;GHDDy2eKI|+K z`=begwd_Cfi2L*{_ZB+^$ngB#PUd}V*2Dr3*L+oqRvfH0(8lSBuU-lNW3TanjmYz8 z==c-vt1tK6{%t(_vKy>cGc<@8L3_1VbA*nuc?Y{KMEUIsWj^96v}_+81=x-e-<~ZxP=4D>_Q#?-+34g!C8uljCQptm9c&>zDcf z;7>sW*n3#`MI^O+`fOV6``5qB1^hIxQ`BteM+5k!i2S+j_gZp2JsWJgv?6g8eVR^t zN<#kdLWJ{@h7m+5^H0Q z!#n>Z+^@}#zsjtB!HiXTdkv5`Ey!hoNS9rk_kpBoiiL1~v+unA1J4=NMh;#oUVv80 zI80o%{zeFD16aYTtZBk$!Uv&fDAZNtg*XupWR)=jg=XZrBvyp_tnL-02)M^K^>`0M zd|%1<^xeYZHezP8w2;){f7=7|F)lkDvCpdGb!~L_l+G9k;bc!gD+SNu%Y(7x;sWko z;PU)>efD@b0R4EmlB|z8UyKTfg<&kbFxnC>y~R#yew@AhI14g`uK68f*uGlEh?(HR z3Qy02mG{?qUk+w#2ZS4eW@4M50qr0DxwE9~lh;g$dq0goG=_H4A2;2_V`0Ay zJ)yLhS$0>93*y;jPJ$3*v=%Nx(&*LvJCvu<76n-eoD5oggChWYkqTo-H_A=9S&d*) zU_B=T3fr=hNk|JLF3SO@8#?e&Xo(D;d<6mEPqv$mNU_rZXy!fo?1K(b67i8Z0^x(g z6F^o*vIc=NqZjq2qmV0X`K+uCg;AJ{gk_+T;iV<_!uLsliEDl+X-E$kMgpP?@ktan z|HeDVK^P?ywp@>;(mCE1ZW*?Csv|oEW!hKt)P!U3p{dCa$pmj@b~UplR>X%Xs~&^* z3fAtSw_3~Xf#KJiK)7>$S8$+YnA?0X6`ly()qYRHfQh8D3)jWDvu(`?=1B}TMTbh9 zr8zX>1Gg2=Y9#|vF?4iRI^d3XVumdfcsIx$Uhpnp?hl_kzMh2h$mGC<%D!A`045+VDV+3^er#CVD3HNoxApa}`83xlNpF7=zFQ zgvrB_MFEB7V7wHiQ0*!R?di{siUB+aN|yo!?<+4kY)=$Tm~;CbfI=H~a2FTboK~*? za?}=uTP}JPpd1s{XCihA8-FB>88RXt`uqBAl19L?rGkM12v96^yK>DpE41@e(7t$d zQXNG2P(aKpppKbsVqE^i7`!y)WOH#+p-61xQiiuw7ukVc=tHxYW#T_6Vw6aLV800% ztt?&PJfz9QAPtaTBU>(%hZ<5TD3I5HDuryM-3TFKSjB6Sk7&ko1TxRMh3bNBK(0`c ziJAR8q6qGTWJhnZU9MzwfU35|Nr(0-pvaPcGYu%iUf|Zh2Yecl| zvG|E1(R8Rl^CD9-d`Mg-JLC+V(#QHx*+qpZZE0Cw&j^PcC@;3nU3LO{0Yzlbw*TWu zSDpJ-{t~5XJAfNL249Ln{L;wtZ8HlO z#@zVvgKo72!ZVM7VEBM;MWf&)+GR)P9+T2h&@Tb$z3kOWjudOWz_-YT2sD^i3by=L zE(;k-g4gEwxdtHQW|MmjtE6UpXC}HW!WJFMLxuzmJ|4A{;=EQa|2efJFTeyE;z^iI zizJr^(8=O8X2=3NfGJH$FTwWoOCvUV39K}%Nd(0zgoG%L-FC5^MSbpkSQ!`C5Z2&l zib-wm0<}w9iTGM5=+}X$Z-LapsV-c~aQK^q%G$#3z^#c>uIJUT?6PVC(IsJ4$`YY?tDLM2!aMS)j@ImwW|_5tGz7SM zQG`gc)J3o}w_`1H!KZjdY}6H#$j)Wb63xbe5Vd8v zT!FAu?lD6oy~Xc6j+!Q+l*6_RN?G+QvC1+rumR5EXq9`8!JZpZsODNB96k{CMa=LW zn;xpY0v0f-yf}E-tPgQ{!)j}^m#d!H-%Atf*dZ^O4l=Th%WSQL16O#J=Cbdl^TYZwp1<^ zk}CZQq;;h@!OCrX1*30Fch7v^cDN5uL0ccWQFC#f*nlB4ObG>IAD=i1x!CD;g26%@Bqjw4}ZPjg_pF0!;_;h3kmR4u2XEfn0G1}viJ zQ)X{m=T7M~CZz}gCO+DG<4*wMa=KnQs{r(E%w9amu16U08!=LTv;CG<%#9yrfFJ^b zIYwEZ+8iV6NTAHVyPyD$_9&D2x0G9V!0-c;zru|7)3lTgaO3hNj>P*JNAhy{laxR@Qrt>|4BB6+QawPP29B@NZzI2q z6?~FD3nC4hzR16;&oPg2Pth-xs!E>~t^d#Q{*Lh+c6{vx_8AbvEj3D~{W6#5a}3W} z?@RNp*w2dASQWCNQvt_uR*(Ew#fnGvoJmIy;KNR*ePjXl4(F=`Jt1S+Z_+fq zdnhOMTQ7H~5ip*Q>G9_dr5^<3&0KG>kCw^M#IzJ-Es1*$ICz|!TKCt^gw0;3?+~Ic zf>Sb>3ssyNY#e*5UhNB}*GLLRH;(;CH4fcr+O8Ah)m~+l6r^~OvwUR?o~JvZ>iX&;`_CvD;Jh~< zx?hkB>i4OO#T>u!BO<5oU1LG*x*+gc?ZtDlL8hYf-%j~=^M^dVs#Jx&&KZx`-Hvd+ z6(YSu25C{kMf_get$smsR6fY>(lzF#QkQy0+7DjJ!4OIX+|E78Tp@ zY2%@l>ee0UzKE?#Iy-v_Zf_Ad00@j5&ESbfJdOhhtNd7w;dXvxxruFLe|;G+qFORR zCe~+VmA|?PU2n9bH^FtS?ZHaxR7Ka0oNzy#>Skw$MM4Gw$ zZ#r##g| zoS+GI9#3rW=@$E2h1`T(>pJvij!7J%#hE~g^1M}k`C?Vg$!eU4;*8(UpTbkkHn1#; z*)}T@9p$v%0ji&PMT_Ief?Ii9>`$R)8B~#(FC9(!C0!NRRWk5N=9>wR(pm=ZFgm&5 z;j5CePQd%;NOoO@S$RjnfmouM=vPzLnPqIwA;1bvN-0|0D%2(t`C*Y)Ch<<&4ze|y zVt3G1)UhXsW|j>hnN&b#opT)b<}U;Una;gXHE_~PgFuvEP<&7QQX1NGyD@fY1}O|Q z_17Xd!oI>uQf~dKCoApEagCF3z??Ci{^99NC)4`~A4Du3K8R|z8nfkqmS^tK4etvf zxou=#Q65BfW7mMoV+COBLdMkxVi;cU5`7BaQZSk@Rt zKolR_%lp6y6GE~~!VSTI@-n7`25Rvl1CSDtV84T-juL3lalkI0%pABFp>Ttfc{ZCX z!6;s*E^k7Ksj*V*L7u_$!k&RotHz^5KqB)homC@mS@I#N2U?Lg36-H}$;1q+pwS`8 zwZr#)`kL-luGN4(n9R6wbrtcpWdx2yArWggXW?+bt&`h1oeOzc7{(~(?tev_v3Ynw z=7H~m=AWd&9|~aP%Z_Vhk4I&qfoDN^-~4J}l@esWG$g>m?Watl;=KsjT55&Jc#J2S zBhy7(xdr5{@!@U>v@@u3HDq*a)bf)!D`aB?`elKEZJ|t%eR-mQ$PEwoLn0U1qCeY; z5>{B-ij`PiX<$aLnyjEEllo<}?f38;#gEC}InCBz>Z}XAG}TsG!>W>!>Ug%K$2xag zB}7Jb(Is$d)os;R!4(HR%J>DFx=PkbyvuFTXldQn z7`DxQW+70Nw_K36Pyg8M-!d96)(Sbq#beTfY2#Npo}VnuR$o95_1T;^hP&D?H`nCK zxe%>?BEJ{-LmrryMzM@RnNiEibu9pfN<}ZEM1hWSsXCw8`M6WTbwro)x#F*7(VlM5 z4O$fzIBAR)U`e#(n(}fp0N>P({Bpp}Smz@E@HJAFt5vARzt&Sgamz=>@e;FVWTg z6Q51Qx8O~rbD}sAEdgJ&yNj6SV>irWvr<|FQth8MUmjZY<{qM)s%8aFp$l%`mUNrk z1jbs4DqpUi-Q>nAjT=_nR7PjL4qWq)a<^eco`EDLo9+!yEw4`1i|<=N1d$0dF`d-~WhjoQX_l>E8?^N^FyP$AW@ z(9oQ6YLDw9r*xVvAg*2o2kDVNh@C0G$85^0(S9`H{jP_lL`?LuFDy#wq6U`9H^jF6 zosvw9=>%ns?buTKrvkZwTcW`Lps80!)7}2Z7>`gSLZtGT{dX_x9;;rgx_m@Q8={z08`8 z+jJn?d;X!%4kex+Pc#q5T2KIFD?#tmD_|m`0HH$6NDNl+v~FkjZ1y35?3pTZxhK&P z(~=`$3MIV6$uFutkC1Ck(U`=wa}e4R0A)!r3%e(sJZ5uYZtA}~N=D7BbCaYw#glxC z^eTViyI9tbGizHjDY>5d&-?`Sroe`F`PZy=HeaE$anDJA6RNr6MyYmI$ZAh6Lbgz9 zqpcS)f3DRESy`>y>n~K{H3RjYITBCgd|5Ax4M341! zqnw8C=$nrh<6X|?0Tob%CZ6L`a#a>3T+ABtBA{$voge+(OAys) zT76f%2MkA~^ssqI;Qx?yj?tBL?beR7W81dfv2Ay3vpeZ@Y}>YN8y$3P+qUs_p65O1 z?eU%eyQzn(rb&yh=i$}^SBmyiW4i;WUY1}JD7 z!+ej6DL7`7c0il`O~?r6C&0H!`o;_({uqYbAa}$nXuSw zv(aM;2ej7chpC0QCP0FDy0f$wiEmZQ%+~U^S2vUfXOyW6&H|z1oCrlCeSIOZJdMyt zM)&*Zw@M{1NN!^nL4cqvIsCT-p=6s=U75(1k%Ddd#2k-+9Ks=Or;yEKF>yD;{`Dx;Y5f3+F8vaW%}WzqSBjeiWWL46T3zwzab0J(itHg zzGogNR*^Ki9xa!~M6{8bqLk)25dUJedg)_T%8|{I{nnnyKCdqci82aPQu!rX_N0hl z4kGESN#HjvmA2Nc49*)7FIV*}dW_Ye+_c6_FP;*217e@Ur!LRjZAkfX6S1rPnwM6A zA0-q#I49%lMtgeO(;uwgZIe66c!ww;*@u|a7~6V+Xg%jpyHN~1H5T2iwxP4ledWWe~muLV>4^sy}B>p=n{i#MIxz8X@*9Hj$)! zsCX{Ab5iyJJxE~IRzfb;i~jOO!OLTQH2w>}+_+`4y3swL6;9a=q#=dF8d5*2Dxs4? zt6?{7kpaa+dkkd)j4d~)c4Pu*Em*`KE>qzw&JqSDLnH;h8B3vzTo+<2g3^Gsx>jg> zc^DGf5|IrP`n0gexl(iQltSfoKJ-ANQTJD%bF*B`r_Z5Vcj*DBH$ zZAAng-7tG+tpDqhaN8H@P;a-o< zdX>a>7yj@EdX@6gi|6WC{obZbRQE@Cx8zXOLTDWn@P1wjc;H`B{V~Eyt%)PoC+(95@UPa^w^7H zQC<5kT8=m;V_xl)q%SR&IA-y=U0kQdJ(#Wa?MzHhQ!{`(#p5v){m9Vfzq}kEKDjhR zW+d1>A5RV|g-?#OiO5CdqGttLD>hlYf~8JW+N~&2M$F|3r2meCdw_1WBp_CAJK!AW zyyR{5wZ=3$Lf$_qR-3$jf8IVW+eVA*kubqR)kl`=h!G(rPwNC%x*LoZv|m>wTVw}7 zx?0IEac3d~w2o459_g*h+i<6N6}nkO-``)WXdAQY(~;+?fzc;I6(0WjCL(QdNeKTr zpW4}lmLTuu=%e;QgN=5*xLbX~CSH^$k&g}r@wsLv3P(y`W#+H+tuUvUQ&Z#eZ#|9> zkunS*2-HdmAldL;!2GcJd=wn12b6)bdteW{)y{k9+)pp0UR-rH+zrfaM1;j!kw~WG zb|@7KNk>Pl`lw+uH~fedW8N@PRV1p7VZ@*v{0fRwONG9tM_6eq>X6_PR4UdLHX7G1 zmm_ghLs%8yt|ynxHIvdo=~GA+W3x&iL4;aIWdE5*TEV>5?8i-FUlP<f@H*_T2Lq{hOqvm==(vZBesB@(EjH%;|z1Cwp$$4+V+qt$p(^r2W#oGpoRS zPk}2F_-0I={gaF&ksTttkxGFoWdebW$NA`=6iC6#BGmnLPlRBJaJSG=anwAUO-4nn z`L+||O71ZeddWwb8DHlC#pueY4U_~S&d4bHKGI0S>7v6IfZ7(gVAurx2qj8c5%(}C z*v%-K42-SI@Liuo+0fYV5GDdqS`rOLvu@C_K0j0`nd|3D;K5j*V8ZVb%Gd1yhRt@+ zr^-z6k)eVIqLxXJ!#VjnarubU07cP#sbOe{*=`$7X$rA;{OvVJdtX*~g@^zc)wO6$ ztXALvfdNEE?|=>GQ{hVKwat0GI%)ql7AQ|mI0r*i9Ii381WeH*k>sBWe->9E7mCL{ zFgB(|HPAdW^D`nXF>i>kmK2mE0|U7jX(Vtf(fzj7rQEfzwjpFxQz_o{fGt|Rr{STDWT~%jiX2mqsiBW+D4%07>6f~ zM?0oE{B>cgrmK{OQX*o*bAHd(0{uoBMz?xn-9P)jIzhqKzRnj44 zX1UMt=ZZ<%9JHrS;%H>_>PjQ~@bu}7`0Ar6BzZ@>X$9t>L0-}KzQi)Is)k$Y)!yjo z^Rr5|LMtq6^VN$u%ztwPh>^j`pe2d7gZferQ-;xujcmv5PN^b?qJq_uryrO^ldx>E z()w?tzJ|R7wkWYziPRHhY1*@EH2XPuAFR3_K+j@Ux zGUu9K5=?pPK*#@4Yu$RPrgyVRDeNdKT8hTqP$yukYHG{^cnE+_50D9uZpp2&@KRM* zntUmj+AFYmQcyl^w`@X7!1b@V%HFa9x}kKem>>F;g_^`wapb4xV{{!+E=qHK#WtRH=U9Xeoy8#D&(tJXy#Et>C=L?egDh*dH5l&!WHE%L=-P^EHPJKQjm@U5>LYD>4p9^4ZfTjPbt|`VwO;|)?YTIExuFy2qr51XW^t?|1=;H zD3b!dzapux51&fn5#WjC^{gRF9cB48{d-52$UC^7DLm6tjvb6p&_-!B|EEVZo|e({ za%iEFGmNxW=_lPAgKuv$UMx## zWekG9ysDzGx0pLECZ+@LIK}PAmOb9Cze}=`;?Tn^sE)TP$5V|H-=|DOyvZEohfrw?jNE>dF;&F^kcEq6=X_#{UrfCtlWrf z3Ck9wk4^5|@-9G-k8FcAZhK9S(<9{s9e6byR6JS!J^hYV=vsoLo7d??{~(3}5G00R zAt^8A|I^yf2hEHX2x;4 zRO`|$c-RLOG)t@HWB4TvuzA;iTja!c`v_IQz*pMO=dKgXQ&!zRCi-CT{@$GBtsgF+ z9&+i{@9mwH7pvTec{5sK^|eE}W1UVH684JFhqjZFQ_}siR60#1C)d%$#W$)`7)o>K z%)BN9po7Zv1$dyI;=_KH!EMSW%$=XjZbCpmf51OTNIDuG*qd%xe^*V5PP@QrxtmvZ zl0Q!g1&F)hEDC4lzy1j#0vu9L+__4Ok4S?T!Oc7hQw(YFk;N1hK4{<-pagwDc_muy zKYK6CncaSm{;x0D|Mc(a0QOX84d$_Xf1#!wpJ0U@AmuOHvG&ixz?Cl5nCq`p0K3mr z030Fmzf%D|rMzw!xhDKyp#?a=o-{W9dp|h9>rU76QIscECTsMD{7-f95YPm(c#W&hmW3`AAkY`1FtXL;{Rv05^S~55(}{f3tg+ue;&@ zaDF@ZnCg0S4KN=5%uVhNnX11VT>Vokb;lz<{#O4u)AL}!djIWpReCc1F8(nepKPX! z<+B0$XUIalVS3tLHwGOnO?z2*TGmlB=!`|)gGQ#Vh?E7p;$?{)r17OU^9w@M7I1VT z(?&>7BMq|~r!XDjM{+tbdWt)5m!8$El2zzo^NQBP|5O*k;)#0%UiTYs0bSqo;z+lz zebeSF&{KEae0pry^>Ye+ST-V!08Z>{rbKcz^O{TF+9b;BpzCpCt!(At zWA2&ACSc0f(vH5zUS<8O4d@Uj;^oMixOAw%v1*N2LxBFwRj&caB1t4Y?pr6U1C`CA zaI?C&!zXp?;-pj~pa~|X@O%!XIW_!JcfPgKQSlXJH9h_D$C4MHbJ^aLPs07p6>#O_ z`SKHq592q;ta-0X3a@*9UMoZ?$H_OB5&ijy>}CiE zY2i5b>W;Rv@pUZ^=@mu^>7V$fWmOB}Pi+uXFiUG*Zpj&)b@qS`VC5elsOF=59z0S# zQlaj98}h77)1qG$t=H*|pU}~=#vqmF*$Q@wT{2pu?(k4EO9F$u(MEK&B{eTm>ot<2 z3a!trCK|JdNHm*cGqi0(m?LNt(KPC!IHUdKk`UJVu30zUkY~q)i>tGlq8n|Bb)k!# zXDgIe;y}Re0zB8!(SAUXo?B%uv|5Pu!E+0@6L0EZpJm$-S7B!x@L!tIE18T2GeZa+ z3Ex%l@|a@D0*KVQ+Fo^6u_bSz=-9yT+_914lq?j#_`S?j{h5i6-ic=zuS50;W_4=u z!+kv-M4uL;0S}-x?F0wNWVKbm%%C_`4kb=B6p94tmlR;?U6a76F@7iY5WXsX;E^g8 zclBp^UAFjuA^+inpBb(Ig+edKHzzifDU~y=GP^8jC<3e^*ac=4I&E(2Q4+ErxSB(o z@uAQXP%cGejKq@a%zF2M4&pL3@#NzKa~90y#o5^YyqyiA2H&2`X@(6gk2`s|`V(xK z)-$Vo10h8PY6NP8GWc^rXE*z#9J_X2>ra`>MYGZMx?{r8CeYmaa+)J7Ge3~ASZ^3)d#6}dq)-Hf zlP#s9#Ce9pqC7l!94t$8vOsUh-BJH2KXQwLjvN}nkJFK8nLA0;{#7SFY!nGZ=;-&E zslsLR2}7NzKHHvEqkegmo6{&o#;d-bOzmJWbFj*@_n<3y!TC-$fwd5)c!Ft0!`P&p zVCWvm>5kNasDb{azjAC3l_BhUR-FfcbwCOpFaySi*>8uamt~`i3hp*QBZC!+!+?F7 zAfP<{7;BP#4(ZHDme|K5zT(RGyK&r?G$T07Vorah&MlBav9_NYl87B0lmPnF1BE2b z&Q;UC6ZxE6!0BsKN(O0in2+`cgEi#dObmYVhz_aQS8 zvhWz_>BUC5%LR@FcP~CQ5za45;n#o`VPG9rT7FW(6N|N*+@Dz34Iy_bI3H|7@>a}D zQm=EozKW}0wo{MNW4{U7lfo@LKW}?DUgRxSEz8?IuJtRQcqx-h1_X9+0vc(x?l`;B zH$2sXI@<1(4~}63jen!!mqtpf?gVs}Qk5BPmYtWuv+RNotdtiVMAgKVATf)9eIcSl(F9IKMm=A)f=I{_4a5&%tnHf)R$alw`T$sy`-f`Ke z|K1Du*|t8H^}FEA5(1oITHEQcnB_rfHAaPaMryr$pOrhh7Ff^fT3L{4WIcY{*h2lW zA%#ErBN}~M$|qAxnQE0@uFC^ijZ|@Q)Q;i0i%($ao8z0w`kEy-PIq(gX1uV5|E=8M z_nIi3{jwFXBcBw4UxZN9aWdf|8EW7(NYtX9v)6U#24pM5v8_=^dB_QtYTEw)cuFMv zT(i;9%}2?}MnRijtwW!T7cHPX8xSldQW+}gef$hnc%d(4>HN|LdH4Edq}PDKGq|YA zeL-rHeA7j8RXs#uF_p%sE!h80xkDLv%};E<9}t0!C9tguIincyi2xp?CB|zICOQO@ zJ_}3Iy|}ds!BlTt^@J#fg;$KKCA$%w51|dym(I_Zs?86$7=tnsKeO%St-mUXz(y~Y zpef0fbe7*(^&M@#`_YPAojo6^&@`UciplOXuT2~>l0`MLq>zNYns==R!^%C?tKmtP zH?FkFQB!)5NgxclBczpOFc0^ew@nU5doS{e`L60Wz0<-gcn>%G3-e6zde0Bcdbq0? z!K!D%_1t>4scEwGNP)PWZI=zqxTTn$^uLUxV+?2VTwz{Tw=;Kq_nt{NZp@MA6JOI^ zeBTgwmC_peMi^oqvm-sudgf2gSFx7H4c$0FaQ@}t930M=EKWZ;BA2;+d=^GpHa_C3 z-+@@xvINbv@tuis=4I!B1pP%lp)YH?UGkl{+X!}gYXOl72rgVTE0MSmw#+>fk(C(O z^F0_eCEi&Anwz6bsF8Y%d=E1doO0l-3!6N^C6QZiBuCFid#j`*rPwWXf?bg~15>X< z_e7v&A=pSLfjNJaS4EraT%zfv=Nb!l>m+VUBjckNtPQ1+hm2th$1Q8F^ z1@(|XXaNFzJLOo>(W&jh^hY)@%tK*9BI`8z4|CFTi7i+3xoBh{P45g}7PUxxv@%Nm zl_hUP^%Jwo065o(ycbr`O?rcrNPsyykaM~!98`5z%EuZmY{ZY~)zE$J70H8Dx&WSE zSgMqY;`}1>6FI-)SRFecnVy|S#S;Bm9TnoQehW*JwCYwbE!_PQSW+TeZ>ISz_6}rn z(N)l_%t(i4{BWaqAuGrNqgM3B+&xpJW6l5qYGeIyr5O(^{LTED09DJ9w%;f)EWtRM z@GLc29GXb49^j|K$zQ>Md;3O#^8{o#i*5j478;?;h|WD-CX05%u&Pg*==E>4aX(s0 z&M3>1F%mR$sL9~u1wzaeMnXiGX{s_s^JQ3Kl^_I;{GZl)HxdbyL4yDG#b5RgU|=IQ3na9z8nIQ}OtFJPxoecilX7ePwD;}HO#gVweTXfNC%1aZ zw6ie$YZ4Le{nGL4lp#5CwBKi_>se{p$9~u3FB}Jr@Um4tT-V1}1MDxT=F@Hh58g^Q zc`<1R!!vZ9ISV|i&opmPnzW%mxfXTQvSOb z5wu-}TR)9PFvq?N93C(XQf^F1PxCipZS?ybxqQEj&Dl}-%0K(%DzKP?pyeG%t4F%D zbX@Ts7^{U2WmTDMP-=V_m3p!+Gp_+o2?*D1FFa-pQ;Le4C; zs)wE^8?G+d^g663F%v(hoJkdDY~4}oVlfR-FgvL$yeBxPMT=o*XZt#~A@)`;XH?i( zgwBsChU8%^$+(KY*k*avD}&Fu>7Vch7Ve#!hm(#b-y{`Pyv=mXpXrTZVJlx|#jx*g z6knYlcG}15^)8*h18_&obyvCJgJ1t~pg4BjsbZvlk#Wxj+}5_O%`}hOhik~OGdbFz zRpSiKj@$5}HjX`B8Aqsi(#_UH`Sl|EyW?*|(ci3F^wz&hAGFdwVPHuv2CU`{^`2j zcWOxYk+q4QT5m%vD6PD%7)W^(;UBPPXw*{(uwxT4#U+90$4-6S|Nb<|ODi7`%SYMI zW9j1-kQllpiwUgTqZyp!SM6vdJY+>Rx~gLF6W(kZ)?>5#ES%61L<@RbbDbH52tv4I zK^+-fC!yqJJwZtjI{@Ar!6Y;u;4}^@PNv0T^wIsCn@)Jd#K&iRpWtG)oO2dd&5a0- z0_+5{Mzp%?PFn&O6+-FdUou7N7OvkHQTlVZwur&AgqYHL21#$}9rtG%ee8B8zDCHy zM)z{D*2Dt{@HWmAJ!(DF(KflUK%8)ea7iVp%5oT(K>G`t_Dcu@oEGIPtac;BB=X&^ z3w!Az@(ERgMoxOA5Mg)m;G8yL5m|pZ*YQ4%Altm4k1&|mqd@_8ub~x@iViy!SeCet zVKk|lkqmxFxI;@SnZ?6ozMzwG32ZRpPw`C!A`uHa8BI)9RDD&bw9q%KZ89TYY{4&L zumJY@>^KmX#uR1xR3)`uz$CON%>y~s13oeyO0eFmK|ve&?;bcvYPR(q3w}gkkY@z_ z#K{&8L;=iJR_#f)W<-P4nZO*-O`#Ox_`z0itP~?H;J)ZDz5+=b_O;$3FY2O{gg?mf z#QZWQ?YvZh*%oW>p`%1q=k7jm4OKXL`T^LCwt&1oM8E?%i|hp=rKCe&_E_JX-w+|6 z>qrPDy8lPMRlvxPo7r#$@9&1FR%Y7G++|jf8{e9>Z@27vi&j!4-BDLZ0z`QjbjN0g)~bPKppHW zHa65x3?oe;<^!j`xz|pyg&EL<1Hv*$FTW=$X);GDM%h+S(Z2aZuo}>44!QAbSCsQg z8jOQf2}yoPFm*}bz+WDT-bPiTj2GpL?)-Q+fyc0=|jm60Mo)H3|-{w5X zl>93hxpk|g)N8#k^~vre^#oJJoQg2^xc}j3=9@mh0zCCOl37N#y_|PgIY(6lY!+E6 z@I;w168~90L|1PSWxXR~(V5d_OI$EvoP^fN*9S~5gz>}XG@2V3^gBO@pDAhJ*bMeW z%fx2K83GnIj(VThN;um(-)Qp&?n_=Y*4W!1GfC@AGG>64+k-(sER3Dza`McV;KuV# z1b-x*A6CeJrvx=Dfw$5LUI_JG7H4-H#FJAM)q!W!4-JWt^7rMam6>rzj^TVje0w{W z>iU=iagg;bY}baQ^J43~nv2D@pfZ7AxF%7}Qe$YRNkZQ1vpd-Ekc1qbEJEwnF z29^gPl^7fM_1F2wcl_e9+!NmU?s)%?VRC_E7~hB#i%^JSy(KdXvYN+F58F(z)NA5| z$lC!H!$zqCW|o{@&UOM#9j8OerL{UV!qsM?YwojIpL=Qka4mRr<9K%Of=9sYBuD4{PEM?FDCV$CcOZ zfJftSv#~^BmbA$hw_dnj7x%2jR-wbH=k|9PGVYlw* zo<{)0?|x=wXs?oDDsy0D8Y+*@QvDRaiVaT|K%|%8xkdFm9pCm^ai+8zeH`{}bKuRG zq&)A##`eGQV%XOq-O>tzh#B&JRj-yQ8h&vC{>VX}s*)c5IR)fE@tcV9EYG=?bz4M_ z{~RG2af)0N8+43t*1;Nu%1B5DM9hD&xf?H+AHtJ{ZctO2am+0UnctXmR%97R5+)4I zf;X^{3b|^C2RRT8Ga6@7H{802RfGwq)oa&UNWOH9v z*qaGzE3uKfxA&+x*QH(&;!)w))7r_0%6Afp71M&rcM?9Y1-*IXCy%K!!sPqWeD*7e zxfK!6l@@1>7uo|_F?>A>cp=;=Jz#94m4rW^JuCJi4mejz6e#|L8_uM2UKxhiukK)VX%IqS7As&qM9ifXk4nY8Pg<&u+OWU}y&BskVgD4)(GL zQ5T8vCDhOdE=P84;|Fi%1b~(BkHiGk;EDgskAVY3Tgq+i+2rUi-UaxN0>jS?>*9#2?t*9|sd6SZBvx z74Ksh|5f~_LESWR;kyJVU#*Q?oKFyLFa!ytsL<7rQxF!i15)$aC^yMR!OpS)_=5+Vkh0P0M(ZV)z;4Hj8tWm2! zd?R4UXpuFwafU|^*@bvBOxi8LIZoTEN!#?gLGfEFpdLK9){HWl4`mLkNY_jSNvO(W z7q)`lp6^bcI9l=5Spv4)Z>0P^AFJNiKJ4!{J`g^_?m&s6V-gYP-AUd-W^e7I+qr+u z5J!?EYga9~P*0)v)oWY2-%#%W%8T(wqv6l9-Z08lECp%OxPrxPNLR$7%<+_oY^v8u z4)LmjT=4)@PKVLk=R_we^2C=i z_x#UIGccKB2X*K7-&{f)bm#^+bbj1>9+Nf4om4T0HFuDVLkv##4ZqYa9kq##IH@)L zQTW+t#J~9YH_{iXm^(}GhoX<8OCbw6Yd?J7%!CTZ?PehgtJq_0@+?TLwQ0A%djscT z)sTf(pOYxe3rB&CoUK(rDG03|D1KaCnM0rCrTHAZ;)hKAQRUVic^+*FUaBt=Rs3(% zy0af;UY0E{FdsWzv~JZQC*Pk;)_G~wDeVx)S-RSJl%^sxD{5+ov!W2*jQN90YKiWY z$C)OMQ7{H$%~(nBqwRkQM}d#5DW8ZfsONxgFDC^c9mp~=Ig08!WTL1jkBO^_G@>az zZOrWXNx;iF{9KwQiVWCQXQpfIV8o+sW$jS2;ST+B>U0GrkTJ(j-(S{kSWfj*i%H;a zMcQ;^pqcqS>0?`U!Q&0(ibU*$|FP?R>w$lqRWFNSAO@O;b-9B7LxV2w20$3AM}v$T z3LhOt5mZ67UzdWyQEA>i-^!!wrP8D$u{U1M6Ih83#9+Y}TD2M%3H-C>PTsA!8a_dv ziL0wdoU8wIQn|y>E4PZrKp0&!9f==%SM(YVET$x}rIe+c^Kcdmc@N8i1u_z~(UWkZ zMuW1?+t!wks88?=zP?C_h|N(|>do^f5};ZMG}Y69LX(#vQSFqX0XDu~W`u2@d zBN8eifWxWH@B1*vz?a(^_W6KV{*K~dLx#V_dj>~2mZxOPmXu7~CYx=uf+fm;3-&LE zW>P3I*`;PIw$vyo25rcGw<(XGjg0Ki$D>)+R}xux7>xciiL?bes0T9NVL)wh7ntE~ z3`+-xgj1Rx%+Y#{b`;PYW5b)Jid7H`K%=(R1Zv#znW$6+yPJ;Jk;SzJTlFP-?_LUUNoA9wP?{i}>zBgepcU9tZl0N^QRk ziC_J#j}(d@!DkM%E$lvC2wTU%JBOzs(D(oxcbd8fsD+G0t6ZI3LAe|dZ{ec40>^|7 zU*9_TEPgCcg*GE2u@4%jLWjntznJ@$9|=snSD5JM3MC+&%z>XUEwq_46kXu(s}r-+ z4v3NhOBze69Ofd(Lb`ul406>wp`2vEr3ejMga`zmRGDbI5Sb*a2Ha5Jt= z;XR?K3~$T3At^F*Nbc3?%-~yUKACQ5x>(Xw@AA_>$t)5W(A5vY`<<)CHMVBYX^ju^ z7wL#dF`kbZ8-S>ej$-QeVWDX1qE-}-klM<`Ldze|`A_H5yaXWZ(sd?zF=!#$_r@2*;+2D2>s z3HBF;{M8GCpH6obB(by!fFqt6yY-MCRk`{p8MGWq8PU8QUH8K}BKc8gBV2GLF|Kpc z1)RkE(>4Ux9dK{a^wp8mG)tY|$usSgtAh5-X1K!=SrWbzqizeTIwu{JGK|~mu1A-0 z*4O86!I}c<^<`hdNGb0Q;-L%UV(+%de2ZdzoY`o4x7sqMtRO5^c0{qbx5B7Oox<6! zMPLb*kjFx2scQz&KmVl?CNmpThK07&IBCu-)>DWG|dsc zDkvmzSQY55U8*Tl2W6M-L(4uM+8dS9U7d#b0&Ju)>}3HZ z15Xjx<{MUk$hQ8cWZN7J+!J=i1lSZ76C{Lq(kZJ6LU&BjkcCGf__(?=0gE^x$A}XD zSyJOK2jFjKlav((q>xC?WO9Z6xrpW7sR~$~m z@K_D&GJ(q?Yx1v<{qt(*h^PQ-_eKNg!c~9vXJ7=w7Su|V37vZS{^#6lBK!_j%+pgA zlE!TE05a7a6vn!WvybYHRSv~_1=== zSrKPpNRAx$$_shrJ6TVa2a3`-?%Yh=*+!Mj{zV}Ul(&iJTAj{X66{o{T6oG??f1jD zH1ko0bi9RjU_F{yRH%V&T5f>-liY8CWjxn8frlNT6p%`4IK)v)W>Q~af+&FA2)0l* zJmLFlFBZH{u|Xe5CN$A77#IVml9y76h@G^)-T3=Zan8zJ^tq6WLSKBfwY6%d&sVxM zhiVecn)KrgP`B{1_&J<57iK6ACdTbae_(hAzzN1s-=>(5Y?}`>)s{OX*>i3?^i~Zj zPYgMrNu*7zRT?@uIb%z&vsw_7Wj&kGB6d754!FVGB##|Y74bh!br9hLFMME-?X8w? zRRJ`f{RRtdRxXR*z_cUBdM_w%7L%Dh#Pk`#`jNVin&hJf-!J)-+hxod!1|+dSH0SO z(vmrM-+y{|glCAw(G{E(#U)%b2FOP~{8ybnFJ)Le(A#+9TRPC81%39`wu~HX^XC~LQT2BlnQ2Q7iy#w{yQ`%K*-+jI1b!1J=s{?DPr_12c^vf^lcd!8x*U+MtJDn6 zSKh?vc}E;bA-f_F1_ZP#Gs+-Wf|ae1mMgvh7&KD)bRs)>y3>m)O92yjbx6dBabi)w z4C`|FwIG5-S*id#`J6zaH!}I``_lV9m1JYN-kb|KR%>!3Dl#kZFd}iI+=x+Eg2iDV zx5*ZT!Ghv4k_9cxrG!Ipu>jM(3yG13kgx30LMdYIKQmmV@V&ul(7A8_wO>i0HOOHj zlPyKP`j4rcq)h+NLCKr!n6DRZR_P3G1l>px!ve+C@xkx8lG#^$Tl(Ph^Df@>j-=fH z)QK}MjxPs5GwhSG;DJLK_w9hNx&(ineg(W-t z=fT~sirLQc{E+}?QxjS+xyq^u$>m{&ubfX$fcJZs-y&@6CqPxJ0!)rCfxc_cmc#F> z*4}U^kpx?kiPJI-z4#y{byhFs5aU^UbPq@w?rjK%Q1TH0KTeH1)~PvfnZ);7h{MdF zuRt&aAul`~NaJcbhhdFHBD|Fpi<40# z7+3W5J_$LSgg6q1z(X2ffv7DdxvQj2%;~jroO#I=)s&g?8jp_eu(-0X-&m?D^}x{! ziL7n}0W5r0j^oCQQ`BIY=$N9XK;F(h0yR6K@}4}m?Ak=(3Ihhw08WeFGGS;KDgf#f z= z^^)9v4Hgpczm!fIE52(xA`=t5);DnGOCM5q$7NyZ)i?o3Q)~!vSTDTF+}shNt^ai-zX4CS z5%=e=7{CsIC1Z}A69$n;GX|%%B_Wz+oMty9$p6mueAGYmOE(>;C;uza7Ax4Pv{@Ma zfYTFMV7abxcRg*sMRATuZ(u+`Y#`8>##gIDa|oOIoLt(aI)dGCvX&g+J=H{1QO2lg zqUewpQgwkn7VkF{lKiP~gy}ZETAT>>Wy3jIio_qdm{h?M2s#=$XaQii(P*9;if1v& zg$RDAcj+d*K(S3uzM=9Gd64+92_f0};D}2=k(QS|6N8zP^~9?N#e)cHX$deFg0x`` zc(HU!clTTVr&*|^gF&I}T8V3LH~i-e721gyPv;|gKr zeV&MsGnK6!hFra^hr-X^@S}yE>kGCAftur`F>BTmMX#b@?z^Y=Oa&0ArfzJJaAcU7 zr}&cP!>dKX)C90Z*A;SugO2g1P<$YkZI+C6Q60_UGwXWyX;FB=O=}Q}{h2_C70rML z`YGX6pnAc`;*Xd61r9{dM}E~>cY+J&4L1hMaU|)z5Pl^A+QJeU6_4^5uQZgGE^H7_ z#&?K9f=1l-b3M8#eF;5g+sZzFbzEQbOnm$K>5e=XNtKG%Qy%wVwy(S>etG_Vo|otS z^!|h)7*mA9UW$m@@6QGW0H!b1rAJsniKpey+*UUfg*=w=o2GKuPbwr3?xJx25dxF& zGxM#<@P44ez7uC*ZAzpn)uVnJ|Fw`+n}z{@A-BZxCP8}0Q?)w2UU-|>P1#joS@_YF z?mz@euBRR8XJq~wAFX@=%jrX@huqL2q?>?Y5i2%$4f4SF@SuEMkln+ym#E51?WYa( zHV5D{ucfty8ViEz7|o|as2rL)rydP`QXUP>e~!B{;M4;7f!N~yR6%URTy}O}S+~MJpC#)e zR8ji!<+)k9bAt3jdFdCTnxHAu_8!$+IQeznsq{~3r0MlDhPP`O`{8a=XH2L(hx&iA z4eL8jEz%}N{nc52yzQ3Zcsido@Dwv5FsnS( zcRliYx$8{U=%0$BQ%OF^gkk7G7=P9)0$nF1sP}W!6s{cj5UgMf>`Jqx z8q35IjBcP|H8%o^#;bYksM6fFN#a!t2oy?N+)N@dv1aDR8u96r3*|ppi3owyz}W(_ z4QA7d>m6efrm-|Jj=s7%JH@qn9}g?t!KB`b(YXWpgFvHUyoF{G{f zbNxrfZAsOx2?clLxH*m|?1KqMwwUAXly%7GbGqFTLq@;)D{|sQwG_g#4#3+I4L8hj z?T0W*faBuWn*V0i#TF%7^%PocdeMnfZ;5$lj8S<&z+45O51qOEN?yIt^HX zWvO9W^YB~t5-P2kbdbo84spol?fa#(`j|4nbqN`CiFA)4nfRZmY*5p$T}V_{x9%TT zftHM^w191%BeUb8uc1N%E~lcE&Fgl&-Z^g-b6z67UA>GhB8T`mG}|ijbImVoVz_Cn zlAgLAR5l{A`OB5!+Kw{Qr7)LL8ISj^+Z(6L73y!pciUSJ$@Nu*o(S<8BYlLIBfXmj z0z0aaxWIf&mTJ*bDSIzG+ZrzkMPm_*oW`R(4#wK&hIZP1L7(t95@EN&B_Q7399_WQ zYp;!fLM*6}PWLa;BoZB%z5uVnGMVWwnuYa~X2Ev&|9&SI9;wDQ`ge%p=doA#2+pd% zh!pX#Pnx9++w`vxMfgwS#2~Tsg}?gyd7|DZd3maEEPn+d27Na8g-OOw{-Rl?J`EA4 zN&~U}x>lIv5*j)0Y}b$kB?e53F=w~8>p5UN4O@;LRQ!{!P}|9_S@j;aNnZ9%>UQzta z(DrIdkxaS$Qq1d+UBOmdB`@+0Hz>V<_Cmb!2M zfY#x_Ej1!mq&PZ%U+G(VL1EI6xWj!_H2b|SkUbx>^sit)A9y@SVM@K9P^viw=u zg9O7KbSiLvmJADrU3>VNpF~kalAhC9kLEUu(l6>e>p$ zp?jm-;^ZR=p%2ZKfdM++Hu%Kb*LNP-Z~IJyS2tHg;OoDuo7|4EcuUJKcHcA~s6dh<&fx3;Cz~N-`*b9@tP03A#G6ip?BhH!c=?}CM4j?}dp_;7 zH`-E+{Sqx^CVd{sTh>^#=xOpJ8UycZ4#``vbzm$(+85#`64SB>O8iGfd$eYrW(GTo zWX+@4yi@>?tRuETQFZhWi%udTAH&rcg3T{vq?}&@tP&Q}KLf#Y4Du;RX#!37Ai*^h zeo9Sng!=&FLn

    F)tlcfJ6K8b5aE+${|J2&gdIo7#a1zf?V=y*-G?Vgo|Xq@JR&k zv43mD7SrUo|H8^($WQ_r(bTB~{=I zDLEY(W(gTZM`3?#3-5;n(14f(86gC+Fi@B3a&%0X(BGx1p|+-4P2ib|ra-YH0VVBg ziTq|zE(R5-1VGD}Nt468pgBZavvT;Cr`l?WI*SIpwEZ$=+VJoC0Hbq z$}<=@vLQEz1>z=VWoyb25}*5Bie+r7pDt-N{1r|R%0^Tq`(BK;(Upj66PU~%B8YJ{ zU<_g0vyYB(C%De^WIj6G66Z3?U zoqTr0u-6X{{0D-W8K3{->WWp5j3~{HETv2*p2k<>_{p~H!+QZlJGM>J9v7VOfXiPp z#S>qdvdvn0N*W@4owcA-oFyJznS zjX|Hx@fYK?zSFb%DAPYpZYZQw#D?>~S zj_Z8`?lQY(-mjM=7ZXb9k(7+5m_gzka@QBBxk4H&q9jF8MEw=*{~IzQImEd4Mf(^@ zO-_W*#2#?3Bu)T~#@CSiEiBnYfUc*6%!G^nl+L;NE`l@9A4f`Rs2h%2Mc9I*8N(K6 zyizHa;$TMujxAH(4MYK3KAe@33MD*(OD=ipdpNI8v-GcATQdeP7UY0*LX)+e-DI6| z%CC@w8aPQ|nU>3jaB|_-yPyXa65;XLk(( z6zwn=+S~nnuGlxkfzhS`@?G61p$UX>)u_Y^(CiGPIUfE%6Oj1vGMB`Lcn7UwN^qOH$-psq;|GO#v?mu zt8sVa-jcfJInOXQGX45GeJiFm_RG(=+1-z7I8uUfT@qPs6^)cX)0sqVTdPL7>Rs1K z&w(mRh?2}0f%T7$A8lI+o6=1eqYco(QsPF4;{Rs7;5RM&=mLF@8f#qIkRLK*N}3PJ zODm6Jw^~&0hA7kftcl5VAI9b@N=?}C1tI!-Tch1Und!F{$fZTltLQ{Kw-{2-I(dSi zBN3^W1=~Ttks|QjEo%&x~tHuZ|5_A>Vr2| zy7ulNDsnNd-xx;%z@k`C>1W81c!bZo0*+qP}nwr$%+ z$F@37ckJYL&bjwJeaHQNe!uqEHFmA4wN{N?bJlzia99`$=Y*nQ|Gp32RO+JfoV`fK zO{nes`2hEsk{Bo7Z1MB)rwiIql;}lKDWu++&YT3~TBPE$L7Yzp;`1B^AJsv-g39wH zUV5%OPq<$Uv8TNsIfQ*xn3m@z=dB0t*AiB|#?} zMibz`TR7$TwTl@UI9L|7t7evXkj3fO938dM)HsQoH^+f3B_F7EwlC4`kf{9fqG^cp z2rPBYd54ku;gcp5X+bN;jQY3PWJkMF~XOTtfkmCbF8=_n;F5+xTdzjney!2->5g5qdQT3Aj!vUqdE!R z7+>~ehA1CrhI!=Xy77r10Q&7HPgbvVRjSX}2K-ncX}mOuWCTr#n7J?tuqW3hR@%>A zO&yVjfe%>Rb^Q6vZGuwF-1MXP_lO))67!q!FbI3Q5$z#FVCkvk$_gN%ABYEnp$9(_Ze*3fL=>k!s4kok?Wf9N*6+!=*)giN4U7MJ&%!8v&I zjE_GTXxmwAc-;P5&pc$itcHEU~$cMGRYF%4<1>6z)7-Xs-f7is#MyTTmD zFzhD&FlA{oMl0y>UBcDQQo~MBXdrx!(Jc#w&uJ^%racMGd1A5FW`B{A;{dhX{;b!D%*bgJu0)IXb6ast*Oc!d2<*DyjK^9KuE`5o6!DiraSZX{A zVc}C=MZ6Wq3xi}S3Zt>Y{q}|~rSmHmOpy1n){JlzuyApn5CAw?iB_(Fywe2RjcnNK z##8aTft!bExn$S$!=xq@s^W@V(Oaul69U*{+yo2OPcFoQHdKKiQG(3^K_#PDz^~*k z7AkCPK(Oow{`DC_0~r0Z66SxS+jtkdvn1MQ-ao!~{*);c1#@F3<|iiLBr$?@tP_Mf z;6?=*vi;@Ec2XqH{np!wcf=N35-?tQkm#Cot;9L3ud-~ z;7_;-On~tDu3rGUmOPwd_^vHQh?lv*>~){e5;PU31%gWPz7l^gw?y=`T3C0fZf;wE>i&%U^BW zAnc4-@R}umS*0LbLqb{)(Ac7xJ?OyG^?{^1ZK?sq{;&hSuTZS3!4Yh!AlEg* z_+*=&c_Z=C>IkD?w+5)SWfY$WRa7iCwP=1!cua%vHg8gXqRb1>RFv&R7m$D7KcI07 zVZCpv;t_oONgWf!SgCh|_^RL9+n#{cx+R#UtI&t-&;W>kVVNuegl2pK!MOW`1kR#M zYo&s#P8x%Og-v#fqCCsy!Fjwj<^q(YtW{y^tKh7V3=wH;^KW8-y{B0$Zj9ZSA^F=I z4pS_O5w08Hu|^mdctUgFaY=x1%0#`KR(G{0i`{9ePhpYkx@k=#kE=vd?5SO2TCMsy z-UWBT&%-2fN2BMT9YG<2zpZNl)?=DO$oA#kwE#2N*IE^a`0uIJh;@h1<0XpeWvS_} z-~_)=2y0$|@bxuM9oE-^{7Js9ISNGez8Ibucu`x(L>@OERh~~S^c8*^of}sd@8Rn5 z+r8b6#S)J*xv}uKlec?o>!}61&{A5cqXO4F3=6SMD>|e^G3&iPe=WO znwpL113@NUStE?-6Icm+HuIp}fQDT1~)73Y<-VIiI;!NQ*dLpuusT!+;85 zkeK=LT=$`_(3oCp93>I?nv;e>#Fs^f-w}FL4r(%n77;p{rr$mnAeEn3J{(Ive)Sy9 zuF%#U*Y#^Tw{u#Wl0Kp@`6Mj|o1{d5ws;7sZ0|8+tK&PF0x#@^l8<G2@cDsdc%`z|z3YtXVEJ%sRR>eaK&qEb)-8OVqL7O72K zuqUL|-yS+JJXYlsX^KU7C~MSi+cZu`@K+G`pk!O_ft$dF10BHq>tLEPo^8@WP<0u_ zoz`}d4Ryx~P6Zqs>pjZzL6%f5j6(f$;9{fpp6U>bik}c;mPkD{O&zEenknfOgbD#c zZA7P%kf6!?=1zMw1{iTr8wRe0{TWvZ(CidVe=*s~Sp=^}{`$6S#NP+hjD;S}x#*B> zTp>R^Z-Gd+PFTH@3{4qle`^cbV*tY+cs_FWIza$3HN1d)*wpV&3Kot!WPw@E-R4->wu#e{TXkc)IeTY!2fO!T+|96Fd{~Zfd<~Vf(L+lsW}j3 zu;6uo0@X6Hnw0>U*L8@&bp@SrM7C}Sa$lr$6{UGB(pM{;Qx3NKPR&SB40}kt?VO;r zZ#D4Z7kQxQ(Gd zapW753$PjV1WAfk9D!80I?})+3P^R-jqa$_@YvV1Wx?XZPZ8w@3_NS5Wxhzb1|r|& z5Pfuj$4$kp_FOl;ILGQp91U_>`oKKlfgKR1oJ)p`JuO!+I2oimIO%Tx7$qEIbs`Ut zvbxON=4P%}q=X~g4gy&OE$@?W(<8{JN)MiG%-~5%Blue$62W+fcden6Mxmz9XWc-K z5@<;{W3fdms)wFI?+e^<{wFB1N*riiBodbHg55g>C|0alLL zKt7_|fVN*tgz9bP?pn?>sePPUV0NdD7XeL4#}kUkvsM7~bG&0AsOA>C4SBj(T%g<_ zp@s#rijI@<=iy7|?;;xjML@d0cMZiQg1%ya3Cem@x$)c`d6P=xn!{u2U>i&|ahhsv z!(WtGA_p|IJ&%vC`92Qs!)>i~ug``z2-q=PlBB zx1y_hA?s1%d2OY-&J}YT$RO%mtGd)$^LBO5e0Xbd$$o?-l>$@BqpL-w?1pE=bt+q? zw|uHj0W#33Sh!y#8+s<@oE@pvNKwcBn#iG;=O=}dH@f{E4-3YAwXhT=ebqC8J1PQxplEBWL zYYM|*9AWDNbZC_&7xsSSDWZnQoda8b--5T`1)x`BRS*a23&% zjl{m_I!(nl&FR%sqbhL_m0lx}u@v3I_AAfNXHi)D{)tK~0oNc`sBr zQ@h{l0Y+JpejF}FK)uG}D^a4KvaBM35-p=PXvviUcc?h8voNTdxnBaD>Z&*cnCu3C zTJOdYF*<}KKGKb~-HAB*qp403H)W4C($v;>zH%AdF5HpYubo{i137Pwt-rlxs0md4 zjF*ExFy1ITmzs?b;0DgfGjWPQkGx2PiDu;mswR!L4-5`33cO+i1Cv(ZT6I7*1G`krnCo3RhTbrpFeYC9A@x6x|r&-j}UKFZJS{^8?5 zx(CToFU75Wkf=_(c1ODrl!PDs*AG{=GMH&M+-2TJO=)I^@c}()NT=N37_u1FjdOp1 zb@0s{n=2*HD4o~>yN&zv_(;-nLH_3M?e60$ir^G0slgp<^eEM2>vxsF7}A)A?jE?t zOsm+rNZbb4Mh1Bm%n$}eeGnaVpgIbIKpSboOJ_m`ee(*7X3sI#Ap53iol!6|cq`xI zaxFCe<39}5x%h8C-KF9X{rEzMV0^v=^%e;s=$3|s^EGU zQU0Z=0`L_I0|=A-HAL-~K#5K$o;sAMo)XB%weI^}>&MAx*>?u}e~+bszK*2@VW&Wd z?WQ2CK1cYTJ*M6mZU5;G^TnbZ)E`g6@K+7*%k_ERxly01T%>{iGW9_L%EGAE{<8i9 z`;uBw^}YV|8bM(E5AI=a>G7}mANsfSw*pbTXYda3isEsHr9Yvtx!T~P=Q!Ysyswj# zjzoWmX^+5<9-+$LWu}Vf6R+ZUjR@niL&8DEB$cG}Zc_lUpv=N(8;cw`#kwRo zXTFl**(^bALgR!)!q+eq7t>;;?{$+B8`B!)>?BfaDE;cmIsF8d@&+8vQc9+d@s~1G zVT_IcuBC{tj6~RSWQa~3D#Mm!p<!)nw$YluNRgTedB6q0I>02l5`w|6S7p45kV|lrr!5kY~TsVw;JM+ z&dXUstk%0SMzcyV==@jqM>~>BJP0I?LGEsh6uNj4vlN1CFTue1_9Sk|y~c2`5C&Rm zaa;u;vfqu9I~FBdEM| zMR!jot~+PY5Q_oh?Mf9Z3g>!{+9Rq0>?PTkcuw!AZCvDon5Wz;9S4fZWU;LhB*W{I z!Q<7Ly4HW7uQn#reGl^A^cm6rODb7C zOaU($VrzS^)#NTy@{n|tk6VG3JKd^6WbmJZJsk3(PMRXYNk#-{+KY_(ca@q%W%~GW zwc%HX5*pH*!ri5Am3P*08EhbuJ*L9Th0~k2H-#cQSIu1XW`Nlt^;f-not%kb5g*}? z5=B1TR>y&F|A&;KC>6Cx*4*V#JAUpOe^l7OZf6HOo@;AbY5bEEtGRt`@5W86$CX}| zcE|?^t97LvJ?YZ@hl_M?qisvxW%lb9L33}UWvh`X>Hmt%=|&o9V$K{>yXugLRDP$OLSk&S0AGY-73gC-n}YOjAP`$8CFMGa}FnhtF0P zcikwPMZX}Efj^HlHML!O8a*E-#8X>B^s0=yk~-(Itz1b|M_|?}_EJr?Ks9raAMhqH zY7_S`z*HB5J-wy^c$l=AhdGa7;wA(_b&-F3u@zmD_Np*T_fLSIY5z=`2hr_c^kdKd zRIJE<^+Q0>JftsKVJeXW{iwgdfK6W{d2Ai-jK3I6j9-qj21gBMe>uvA{Ml8k-LB34 zQW6{ff)Pd}PZs>;D2x4Nce^)S_}_8LF6tLGpIU`3@~@(&^_Sgk2zso^Uv{@qUv{@@ z?KD{bzfF!g&Y?Au?YemtPFOo(t(vdvxo#U)yq+J5HcT~j9*#;Y2DQDZ2W=ye&WpVa zTa~kolKEzZsY|4g)=<-JEcPBby8D)p zucwstv11(O{ZEE5hiPG-e;nc%Ah>Hxwyf^U!pGtFGi*ch-wTwYXk=Q1m>ScuVTSp* zJ3$vMu~jMNH-_C}^*1^<)=s(F&z`4mZy(PS z^Nllcx&xRLZlcPIwlScxGs=9btR96s*@(i!RXmORLUi0QJd813zqe`9JAj{t*rf;R zlWYY}bS|u|z2X605s1q3t4C<#8^q{hW?@|Fk8vw^4h~0oJ*)wQ|k2s0;E+$sii3*N7l0MPLJeuSI@+dJFwo64d4DcU1vzjOrxA zsRMtH`k?~Hja1Z1AUJ9Is-F5I_o2A#UrGm&Px~pade1J84zSYl)R-sKn(E2xIw9hG zU?EXGTB^!L2t29)tiaP&^{`kz00`!e;%Wq-F)hlopx13{Cm|hahU7U5ocdTUHVwak z8(^E^air(Oyeahv6`%%o3_5Rx5!RDiK(onf&7e!MlF!73)&mD#Z0j78E>|0mxcQ=Z zc?pKL0|$jJiu)$0qgWwSn}Q@K{c0G8vP!}1XCwBkMz|zVARWjM!MCCmk?WPQt5zON z@XUH9g!Svt@?i`N$M@W1+~^=Fjkytw`B^Xx9wPJyFUQ^~owG3R!DB5b7na3FI1UH4 zNg!v)vT?Z*w+WSf*U{MVjcj|^_+D;MvLzZqexVMSMOjA9iqCRiOuWbw<1hiN%7fF<6=8` zCG4Vrys*q}h%yYVj47oCc!+-7_^l#d1*POWFDM+kDh%@@Su-&<8LG4#x;QT({@)(?wEC(vn@f65qpzxa#La zK?V7xu^uG^=hA{81dOU5_%K{09seJrUaF4&N zg!Jl8=B2)u&$R!d+Y*pOM3~<+up_}G^e7ENE!g4fcFZn7933in)mKOgz~L8{cd0>Z zdaW-ukuY3HA+{2`o1fa7p`dW&v+aI@Y&|?x0l-tveQ&(bU7vKXJxI# zsMfp-5AVPP_xUQ5mkHrno~qtCeeOX5geCcC%i3E<30^2bzrJ$U_CiMyO|GRSJKV97 zjG4l*ux~CsUQ*2Uy!4SEKbjqmV+%X6;baj)GNQ{-0(1Juw(WR`I#sKxd7ILD-j$Z| zXq<9#M*8+n0qa2$mDj6EmktXKKP{Cbm}_oiD7G%eegg0TSf+DNU; zncM4Aoc)SxeFJ@aZYY)seQj515LHWqn1pGee!p1n%cW( zHBl-v(%pO}B_thIRyHIY9*J95(4t}vGATxLtn%nIy-ovYN9qLylI%&xEaA@i7MNlM zA3~S3QTm4@zQpmL&7poR2&(J$rf|H?($l>VmNm;Iv0_N3zPxmXnLfuw+h&%eBs60= zIaHs~HCO|fhVUoKBP|^iRk^VAWx%&k$jOLf`fx3YQ7;BF#Rn{?AVNve=H!A?0E|^| zgNS1GvGShp@frS5OJ(20sNq?|C&1!S&3baimpPou>q85n~Efh4uF%vd-b_N$WdK>#V ze#@#<4M35Cueh*eRjoi@cIA}I9)9SfEX8kP&Zk!^1kc_|`9`k1jd1MvejDCrVAjPZ zc+v+%X}4)%--=yvG9h9BO(JF3Gmc3GfV9!IT%m}hU@gp`P_GxAz#25KIBbUeXt)ue zB`)UrBirF1U_2dF@VkU(?G*<7YW*3uy$zH!aZ_(s(AgdcOg^P?^s>y1#GjXIPm4R7 z7x!BQ92d$qp1(d_xJMarBhF)C-9JXSLEE%odwka=z!~w)!04pCNb%2ZFaMBWEI7r> zXq86mPETbkY;gB*xqBZmL}}z;a_-8?G-~tDWOpE91`weA z6^;&UCk2uio^9<%%XUjs@ut)vtAjN;NE5U@`}UAaz~Byd$q6YoGby` z0}yydSLNJtx2~zQaW6BqUM3^1V*|Rmhq(nRs^5L*E{G;{*CJWRIsNElRp9P`1$>Z(!iJF92bqOB&l>phAkT zw*TjPGEp(=TvOP8_5JdqgM(tD|0_lw{R)Ujt8jlt{{LFb5GwvM*FLaH=o`o5@IxNe1bqv*kV8e{bC@ucT77Sx?9JIn-hjwD+`2T)TzSy0bkQ-RYrc(f+{Dj$2hSb8$N%)~UPC^e-g&<^yY}+H+bcHe*DB`BkTD5^*);Ly;$dmze?we`~YbnaR>(vR52%ltd}+}?o14=Fqj z20r{xDvDz9!PuPK2{`iWAEpoA9A|{W{N>i=#a(thS@Hy2 zp9nvZE!|+P>jlbZw(lq3X`=UA;pZ{m=iujFFKKWhCXAH*5UqeBsnlL^LY)kWNdME~ zyW#NFaNtBK{i3cGuWpSDH6d3AK!X3>@SI9o%v5k#@|G9xIbP3J=7d-=*)>C_z+J|h z2bsNr((KWf%+|Gq-E4h0004)lgs_0pUAOiaUpY_q`7ts381x!iZ1+NZ5C<&6lj-Nq zgHVa@!{g^UzVAb*=_j_GOi@|M6+ZO|J)Y7(TqC;#T^#D9lv$_pGqpq4>nEarzg9RwL66AnJ}(Xid;%w1hPKsGya0}pAS>`OH0+=k zD-QXzDDB}|?Y6+wSrQN8gV`7-9Zifsj6QcilU$elH6xUaC<~@|dF@zPw0l|Pj}8`P z-5-8s<%TvSXi1$L&qwX-YM)G_rlOeM8N1en&P@WsFQOZ|7Pf-oCN5*mBQ^P@)$1Xl z7*FRb^vV`Fi=^jbx6##cnMfQoDd!Vu7(kLn76Do2)Ms%MUMAF+C9K8cg^(d=%2~A< zGeQ^Vx)Eu{3e}K95Fh5kA;hfI{jJ^fWg0c|2Y$M$v__+=R9U9|UWz4wdP?|rN?gcQ z#2?|D7@KEl)DRYZM2tc+!-5`kP4h_^xU)Ip6MuqBAVz%EZ7qmDj~Wj6KsuhEa*`8) zk>RY16^Q;b)c3Xa^Pca+^K)_gz0~(t>=ya+(#}Wd{tsQYl|P>b7+HB@W9^@JzuqtT zJ`Baj=nue8$9q=8PY9%UcS#nP#+0h{oB!Rcdclq)+ zh|pWUabuRQ`!zJOO`%8!+COpG9gmw#W_7B)rqx28O6c~&k7X3 zlfAEFw61TJ?H)O_6oNGt)1~{|B4majz1~H>?Tc8%TM3`iO zu#>G%6W&14nXOCSiARRxUps-`JSR)T0F@ue3wehV20_8@s$oE7LKB}jiTw2S)cu9M zmaydtK07Ep@(o4JKaWKZhQC(4QLHl@2g88~91F0h-z?Nj&^G`#jg}o#>Y;;8u4K9j zT;W^%>1D_eXwg^z5OqRn_*FB6?0z%MDmI1&1!fG(8+ORYMNWN?{}>%@j;Lc;q44#OQWGvAo?Sa`<>9gg_CMBm82?h~RNBvTe7PMD6k-^WY z*iR+J7HuLL4Gne>d%y|CW(K}_zXM>d2Q3~u1ha}KZ;lrfBc+-<5;`RXsR0?qMvJQ) zp0T;H-{XDH@~T3egO#x$uJv{lmd^P(fv>FCsrvCE_8G_ha(~-9=q%i@M*l(A`b$MW zt7Y8v^OTPaTzV^3Trnb16Y=4$uxV;;gRS9CSIgr2e%CVqdcI|wawfLLYlp*zpG!|- zV?ATm{Y8&Gs32%#wZ2^=>*V+$XU!w2F}v68au$vDj7DC zFipE32~JYJQz88zXCh9nr?tss<1MAglm^e+aGJwj9w>^}Yl7hv^J3H7tckJeSu?4k zzugbQ*+wcerkN3G@cQrk6&aQynI==D^YRKS1_4X8#tEsqbCvuOJ#_@62FSb z_olk|pCw-J3THlZM-ap9s)iD<`Q%8JzuYeC(iEVRsdIzq-NOPS^jVI*JesfXr4Jk; zs2V8)2(Unqy#{g;l4NRzq%H()B|?r4ot#Cxsq+FBy5PlucxAX85H1z!%6I!&&BH%h z$dK$~F6gpOrl^Xuq0bJ4hCu+WiV+??hB|^ZUMx8Ku!vvZj0qvAZ0@Wbk*(Zfk52;K z!xpMX6(2Lc^*Ucbvl~UW#cilctHvC=NX}yX4x}h)Q5X*e_*`Ug`d@4dOLl5NreV;w3O+ zEe^K{eZM%66qq^HM@o+_D8|oHlocJ7ENTAkCnuRnFG;$!0Q3gmGFwNVn|(+2T#4F>wR zsG4Mf)n5Cox#X8CF4_WlVsle-aIDh7+2q;#B^z{>|pcXBqd##{bx#MsWGL#?DA4*c%O)^pl zfNPtZLDn=Q89&=gE=)_Ub;5>DjwVwHQf_m<P4FjNiSxd6CWiQoH?+Fbj9HaRnmszHfliBL<&RbzLdG_Mac0st>0JCij@ zXj9DNm|XuPBtqb`u<5}Xj7ltodNKYRw|B?J-rliKUEUT7ZlXq6gbR2RyGyE!9>i_9 zjGiPNj#y5ZA0;bK_XxQYVQU5sO^li~j#~65_;`gh{1E#fen%i`{#9pZ0O~RrV*TrD6o9CoZ1LqL(bdP@>(1Mq4E!r~@5d>;58Jb+ z4VP&&`2PqY-X%#g$xVmiOpm>s zN5Tu{;ZZdWZGhE5ohUw@rja=)w$KiA{HSOF_XjVfjJoz=4;=%@4m&oiQnrQeNWmtN zEz0GSt#DG|q4aq2ZcT68qZ?W-7KeG(J7o6CbIk~)=C+K6*YnMhe%OiyC(=`xE>pvb z7tJ*g+kd*wqw>~*deP%3ej~3kWMICAj{)~PgNP=cM zl7c3ps36=XrGc2<9bBN-B9Vh`|L*ZlGCDoOJ6%7rb%XH-9zP3qsi2LNH)@%1yW}|P z{*RBKuB)dKJ!!1tnxO3^_O1N$cGGWDL*l2D4-?OB4B_#!g=5hl)49Twv3G#XqctT5 z58?7IWWUxz%pClzlg{oL+|;MF86(q>LsSxf3rn60OpKDwVF$!gi&oBAHmS9As|b}~ zhfa;n^gHH#g!S5iWm@eZ`!f705LdaiTJo$mTgfIYHnli{y|^z!1naw^Ih=5h^6h7;GJ+aJJkC^ zy`{U_{@uMfs7V($I^!H0k#xBgKeez>^?}RY_xV}{1*K@+Ho6~ZujQ@i5Gv%fCSC)( z*7{Mc@1|{oU+>S>=9FH-!AoHbU8W%BU)m~RS`i?2HJ@p%*qK<(dSy-Ds|o)-eRG?4 zX^D+_8irQ(?6+sH%O*4ahZ>6ROi#z_kJetHlRG1#9N1b}XaD$K8hhsjuiwdFexrF) z0Fa@fjsWG7WSX_8u)FpkG^d#X{=*__14I(I(kVpUTm!~Pj7@s0!W<}gVm=Ax@uB2K zF<9L5-=jDQ3^4_g#w=*zFHOY}RUp&I(4o~R!C)u+OQGvcG+@u@P^QtcIF>50)h(51 z{3k$^;#2d{i7}Gcj8=6Kt^)hvoDn%GUD8*BS)_{X#Zy_j;#o7BA!^~QJmo~3aM8!X z&5@P+->-P-@{=IJ!-CJ+EsQVXE%4!l-Puq#rT7LyE7eq^EuQKZ9UK641f$go#jgCd zBrK>f3t)^buhU&*nq7zh@xr6nT~fU$#O%lfVF2B6j)|vR?pY-3b1%6851cPbD7@5n z%5Jwj9M>%-0d0y!jzmm$#`cRIc(tsy91=6 zkdyU>jZyY?g9TFq=Ia(Guwa!J zmTWly0#JCmU?aoTOm7}2(w#0c-!B&{JO%gMGL2Yr&)<($gQ-XJgQ?bOl3>#e^SF9* zQE$;{ekOX!vC22176-yH8DpQw$@?F0&*8<2jH#n<{v2>^3=WJxM|pzW2nF^}1$fv6LJ*bq*$6ub+YAVPZNAi)!J1tUVZ zmDl*|p##4Ku%2)kL!g>}&Ogx)!eX8jU081%qQU*deJIHG095%$SQeVsNfx@lu=ovp z0v$R?_oTk2YZyte&`%`ynoNIZ9V7b4vJXyV8Yl2Yfc)?$IERli!6=MSx#-L^ZKz#S z1pJ?uYI_7q!Y!gmBCbK9rAd99`l5coJ49w1i7ZG!6vBcC4$Il%7*?ArO-P)gEh&qj zQfXFIGHrI#>@IRNN^>T2G$A|)Ma5&7@$Y1ja|rlJ?<%CCA8WAc4si_pH-tf_KvEZ5 ztDf%w6thW(1T^%MvV@G1Frl``LOL>IPLi3?&In#7s*Z{1q{)e_hG{UMA}UVphSd4V zh|kBow=fC6o7qDj$ZS9fIv;jBu@9NMopAS6*7q`7_w_}r>%`Dktw;5D6(2cqyT#od z!BiudD&5FU4}QL6uP0~L{8)!S-{G)xdzOeTA1AGuKGP#f>!1*5c=h33zL!4V_}Q0Y zR~|fn`x96VBW}anqSR`T4G6?hLWxiXFI10isGLDu?rnDL47L?B9z@&vxa0c+Va?#= z;{e)WP1#luOfsn}?-(u^WxI0cp`Dk>;@mtIaEa8(-3&Z;* z^^NM(Jk?G)26V~}Nu6@a0+s$shN+meSFvQ|BMaU-B&PFR^^z#U-pB{S%Val&SGM1& z$OxY8k)}WiP{8EF5dyTT*q$v^u;z>ek(v408*bCaVuQLXeDq~xQzpkD7Y}n307u@? z(5@cqQXW9YIFDuSn%F;&V<$oj?1kgL5_ zQh?bO;ISxHG!cGcg6cAvq}I6-V~;BuXkgk%wSB zDksffgY}v=AX3!CC6!<+yNhlBiCs1D8(xv$iVTFO-RX~(X%F~iYNtzH=s7T9buCa8 zrV-IL@4?MlE1l#VYNYz8Le!R6*_vme6IwXwc=*Arhv#zFI;wcrL!6c)e6*K;xJPEy zC6BMtZIS^yZ4fT$Y$RaQ&5 z5u*w_+Nn*9w(Yinh;+g4fVc%s2?TU&`~2{9#m|qiICdom*iR+TR^zhhZ$5~06+qDH zu$!~PRQLl06av!J7Ha4dW-#*6vONtI7!!ly*-?-6#i0-+G^^mL0P}VoMM2V1Bt|R0 zO?>c9is{N^iQb4C_MGNsOzW*2Urqde;h%|llr%5`)dPl;Hq4}^ZY>kAnS?_A3$nFB z!1$@MzFk?Wxpu!DISg|J;r~?ZaK5Hgy?i_TzZHtLzo=Wtx{q|VnT;CgwH|cKxN>AoJDs|6I?`plN1ZfBUb#rC)7|ZSD+zc_x~Efm%)fuPW1@ z`Tc35+~oeN%5?EnWxD*ot4ynuK!Z|IXz27hS~M9WADzl$hrhhKa;iI{>IGKl21#G} zc}Yx)*k1>%q7NkqEjVq zbQQLJYP#nd=1qMa?gM|ol{Ga)s6;Ort=Quw1Q5eFvbF(sV@#=BH3Dl}F%K~y6BFK? zoGgh3sJfs{@Mh3ZV~b70(ev?mtq10|Ie0-Fb9R>$tx5f;d2%{WMJd2;=k>(J$9a&b zq1PZZAXkNlf4w#IVamgkjyZ;Z;Oun2-gjzv*-U*>c3OAu^LUVXn!E2zS<3|RVZmi7 zJe`1|=GDoyVLA{v?J~e$kXRQ`FU}TVwg`5w9ATm^0Cr_zaDa15i_J8#!j<+?lZknm zjD9d~sSF`mu}ce|t1OJq2pH-`g`D?r**idgkqeQd&;)BJbqMdH^d|0Mjd!%K-w+!t zLWr#_9t<=zj@sWbnL#STC0JgAKttaj7Xq=2D;qz}W?i7QXiEmKvgKnvxGq!o>AGx6 zf;o)qMc;%bjGBg1%25)frf4mj*G{wvcGosMS8=Z1fb?=8&8`ARwqd(q(18EOXpv#q ztVi-QZy%-UPm*v|#WWkLZ)UdBuBB!5MA7&QsAX3c`=GM$+9u_jrd`WXNp>`UbyrkL zVq#o>V&%K~d_!Nqnu=FFG=%q&N=^Ai&Gv7~Fn%eRg)Kf=NwEIXMxCcN zl`w}yk;NyWj2lfYh&cF3j-ASbpNd6ruR^-FPG$V@={0 zpluOA8M07>jpi|Oe!ow6?QFBu9-MVIepx(;W^0AcdQ=foX3;=s#D0Ut7ahSWZ2Xa> zzN+oR45}$3=Ty?!xpk2Xz?e-Gk=PKGB6Wb9fBB|h+HkDPw>2!E2H zs@78q=Fqoy+@mKBDefGWN>tz7xD6{;CMm-*d1c{roI*y_Z}0 zGnLqAbXm8bQ0_7iV~_|TNjS)W3dwF`-5bCQDdZ?vxk@c4i(T}ao)de5Vnr9Elk$vf z(-vG%nnAbO6p4^bY@TRQ^TKQkB#82CkcX-eIG7==#5NfXdICy`jTsgu!kG*AE;WEP zgOlKDji?{&EJA3eS;VATdD1lobr|-jUzQOB+i6c=vZk~!OBES- z9;K>%U<@p${jt;h&nfR>RZ%pI7$C9vp1^kw2I@#WgCMNxLu9fv!rK*I!O+AG2AJu- z{LFgx^=XPmmNty%<8AWFtqIW&0yLG8Grd4gD1))+Znb@S0~ts%JcbSZg-Cx|<}jDCPBWQEiwg2euGzzEj%t}qB`rv^Y;5Y0#yr78d1(ygFNYcN^)2cI-m z_ve6T_@CbyBxK2f?D|M@o21DFdmt?dv|g3wiOM=d|BO9d6Yq*NJ@Z>ci%Fzn2n7j!XNFVKr}4wP~mzK6kCEAdzS5RJ>g25uahiDcCz z$_d;r8k|W)OrT4z%2Az4f@cOzSY7Xvc9;0Q3nWdLjWLXt2&GIB5BUadlmLI*(G}(< z*JxgTpFM<=X-G0ae~Qe^t-MFlpBm1v3VI2$r)YCFj%|NBzL1h;rj?D6ABDrsyE1H% z$2P2kVLu;^==J~`0H?v3F=?1y@K@QrUQ! z!>%|CzW>rSaJ(-(-CiTXo-QS3k~v#dRdM9q+^FoTu?&Yu7*QJEQRpne%Qly)Gt$iw zd1jxQIPTn)C_mFWe;BR9-ot@3WBU>{x8LJ#7?VFjYew$t-N znCW5!$qIkRvm-A*PU4<#y2z&<58dRd=+MCI-@}$KHEcpq03W3~ONL^C!4)u{l*Uq) z7nav)a^kx6Am-@zjZZSyJG0Qtv5VB^@TOHTvpLPIYl3EH#H@n2J75`^3d4tSzHPPavTx zqg>A@$xZBTA+YT<61O*N1b`Hp5efz>Nb5_+e?E1>Y+FW~bY}Y2B*`SIJYPsdKhP;X zv7qGBy%A~mjsi@D2<7e+tUUm0#BGVzI-NPuC0?u;L3GKrg#qbN>>Usj+}*!3!R=rp z`fBs3{7}6)IIu{@5^N0SL`Pk2&Y=-$hSd{c)vt74vA`{;Du(^Xfg-u&TRUq(N{A|_mRN|3jT{U$C4 zZ$Rq>`Wt!2xCKupDR8fLM4WYkSIQ;B%79%AeydYxA~hp@yLmJ0PDN|P6}pFD-2dY2 zEyLmnnt#y^?(Q0#0KwgZy99T);O_43?y$H^@P*(O+}+*X!-e;M?sMJ`=X|)gpQm?s zdTOd?x~r?Jrhi)${A6Ka47W~C9 zF1Pda%G)X7Em-aR4hGV~k>7-~IT$PuF2CmK5_m<^b(x=vZjgN2#f5E~m?G0uA}or3&q&@ zFdzxRNLT+vb3;dafpzY}VF0+2OL`=iSD7^bp%Xd^S*@AzUgZ%!F0us-%qnlMl_&Qn zHlSTIk|sPF@>-9gRsPLF(E7~Wp*Ngo1VT~WVW3HrVabTH*D zw#b6lvCuwzmy$oUmT*|HCi|L#r>A4nylk~X+IMS&j%^u`%fL{j$_Ddt4S{&L|ROPYKYzB*h8eeckhZx_# z~uYCvC$o^> z|K$ZJK|rP9l;vLMS4Rea(Rj`3j$CMP#&VD>nicyeA>OLU8+E#$w$!>^bbC${5w=*E ze33U~wQ zvgsySCPLxX9D`rqSKjUI8}1IG=7EO%<&i_I=`7y!tBq<;^8D7@|Fe?dw(yJlS6>as zkAZ`oO);_ZC-tqg3x&Bb9Fc2P@=og^ikmw(K^rjh->hpAMZv2GWF*>r!a8%MX&hc7 zdV@PBb*PIHi6QPq3bwov#uySI<>zA^<-~XA;K*+hKjrr%hdQDaIP~?QS`3qh5ap|n zeO>Q%kGn-Q0v0`7@>MhIqo-kypYM%Wh+;GL23KA)R4%w|BrYE}?QWPpT$8X?psm5j zw}$xXpY4i5MUWNYTsY7O zD%Vm9^2)-CV1bT~HdaS$CaIs*>d`;8EsnAXnrhZta*ui#oLQ`MN~L1X zgREz%|NNxKhw;OO35~Qx@XK$-tF_Xy4RYr8Q(rL*K`XxY-eaDzjAwEn??4^7j&c!> zn`>0{Lby&$WNU8Wi*c`jJZ|rqiBQGGEDwP+0 z-YItULyB|c?Py7uz9r*`zHQ~Rskh}Q3|-n%)xCnj@aFDl=DK10WNE|;M6}a~C`Ey^ zpoGkUmNhc4R9p47!jj;BNw%Q{es_jbR=52MFxAhl?W$*Wi2I*V z$b3zAv))=!FzVOAmRm^*7c81>9ZM*)Ml8aw3K6h&3#8eiSo0$U3_^Tcd0g4jDe43ugz zcF5uIHS zFjFgkv8iKl`~&K47DZ%y*x5&Ii;s-LHD(X83K%P*9;L({S`eE{j*;n z*uh%BJOteAU$6dAsxJ}e8<)` znJhGzH-##-KXJ>s&6_Xi<;j?S$;Cqv~R%;<^#1 z$J42!U0E;z+Z61-cJt1Jy;A4mmp!6w@5W?@Z&ptC^jqIhW{7A;{hTcs&sWj)^x)7L z2Bfr#bRN=|mqqOs6*{_iMN*~RDi*bKOFY4iO^b&G{aZgzg2fvEOMeh$^P_C_PM_B4I5+B z`WH#CSQi-vM347+Y7HtYJ=oJ8GZm&J*DuZT_B{^%rMak$wt~^p9!kI2%11#x$tfup zQlVvUo_P!>7rT}`-99Aals5!Ptm=ZAmDDAF2SmvxuH-nPvyHfJG3oIcWZV3!=6nmX z&u}+iiE)-FXO4*YT{HU=U)?}`V*N-+L*<|Btzz+Ml-wL!SVVdOlPYwdwOf^t=8Fa)1-D6(Xp>|c7cs8#3_GdT!Bd0@(? zQ0)=3LA3y-4Y#-Qd+LV{hPcB@$@QI;seFQHOIi|EQgzA7@i;eT#-bmp*Q_-{L$?DA zK^9i_c}YpjQU9Aigc?JC)l|)7eZ`XEi2!bnw zHs%D_mh?a+t2>`@KEMW%#Uj7LMPfi#J?E_1x8wNA7TDw9g@O z8T7xYX`a_UcetKfl`YxhAoCc^-Fub%a?#gy)tRk1oPPWYD13#7^7FiM(b!z|`73e} z{M+vDSTP5!Vs5@@r`sV#%r1*p>Rn3H^~t6N)f>p)YVrh!eS=Kkrc}QzD-p?}@?|KA zlR{Pza`{O;IC6;3l+j{ftLPO#uza)o3*CZ#)*0%|=(k~) zp6B`t3jazX9W|(K^NQ1;B=3B*oJ74A$Uc=H*FpoaLXdBv5}Qwx48o+nOLYb`7Y-~;*%2R+s|N;nk|SHeBe6DFmKww1GL&C*#`?T>z? zHU)w^t77^+*Chv(smo|Y9MBx##Iv*-a#1H2$L%JwD>Hi>Ig~EWqd&kalHRw{a+D!Um=`93erMiukJSH#QH4-)K z`J|TfQ8M#I6RM?}(i$Ck-J-sEpFjy=*4zj2B`z63Tn|p&M_;+fWp4AEoScGtA9|kT zmqSzLj;rFe0M>DP3DK3;|Vijwoo8q(ce z++12+>&B+v8d`S<@)^mgWmFKw4vVkSZwb2Xo0b{zBFvgjaCvl^Q?}m!K&^PBvE9G^ zZxdS|;vUPNsx!H%xrN2(zby37Pis6>${^*x_H42Lj0s|IccA!R7C-W*b&s6fL-$`6 z|ITOFjh)T$!vFFhh(0|CBAQ^0|K&j(V*9@k|65s7vo+K6zDa$XHu)uw{Dr^z{nlv& z?SJtCK>ROoQ}xr_`{Nbw`^jV!9@*DV_|(|{drz=rm#JM3_g!9`{|??S9^U)Wu@Xd2 zP`}7Uc|ase{x3$S*kC8NzPHa4@9USh{{xe9wd;cYt>?!NZj&P!9si6==&VB*q`EcO zAKaQg+hq0T(L_|v22qbJ8C7p{FOt#CxJ;$1;zJUTTYGaGt|qSeVyUG9rI4T*Oof@; z?7a4F{H>m}F5KnmNbfCh|NZrLd*#I%vEL~d4s3#yNmHAkYJF7i2dcn=!f2>4QH@_M#*vQq<<4=0Y8XRq{MGx0vXhb zy_IENMpX?(Uk`!T^%_Esv9$4p_6gFR?Bm+v14EVbVwV#2wqQpIS~#MFR0^Kyz7&Y zH*PA72ASIMkRqoXcXz#<=~-vI-|ghGj&1xC`U`n5s2#wkZgL)V#h}+YBwOsS^UUSM zsxvmY)4EK`l6&Wq-m&`z{i?u&7b^}>pVDbo@I8cgQh@jil~uei@QdcY_?Vo3vBb!k zn2#p#d`i&6X+yg?_-Eh7F;79s9(I^uSV0|_F`wrBzB%{rG*T_bNA>$nPLk0t>rP5` z9EZf-Tw~4#h38MMDXdfxmOO znI!BvHN{4@Yrs@t;^8Z7K&795^^RA6Yg+JkgA($~{8$SVGKFu&GyJGQ@H@I_1n9_q zzCt7C?0Cfe`$G*obubrA|11&gcYA)GzG8lX6RF}v;!OG;rRbF8Ex{{`;$XneN-ViN zq8B6X?~NfFZ3=6D+|97`avb~bGS!C>^WFO*_Fu>?Sm!W|AVdZUrC1NF_p(t|FDGUE z2ueI8SCKTHegd!uHVxVTz1ImQ$cqONOze~ZD?RJ6N0bpor!SXLJafXi)3pDNr8f7c zwga>hhX7FuAA<2ORvgZz-BY z!^EDs2+=S+Bgj+~_W8>f4g^z)D z=Jz546#F;ILNPfsR=PwuqLscw`L?Hz_JLm-T*jvPQ9~jb^GVgw z^S_}aUvo`A<)iE0cj!=oWO`?0Cp0e z6@T5V3#XA!JVgmgLxg1D#K)H30@Ea;3e<(URW>IM{h5#;lqZprwvAefOu(q3>}eCR z{VhfsU0Q|cVJC${{2@jTsK!=r!@J1#<%W{tXGRXLLk{b>Nt96nNFIj!ux}-|kFTiu zVDE4j;pMbJYu$7#5evHd8C2xdc#|yZfr>qghh=p5cyZ&GeHYO2z6Mj}XoZV%==D?K z@nZ>Ov^~;|Hkc|(SI;DWc>qIAe%zvkA%2u!Vg}2v^iC@HZyJzAhl1_TF*q|hc5q6D z_;s*=*QBlnWYnf}DAhn;?(IdlN$bY@7+JWwq-l9*Pg^c|ha0nyKVL1QUB>mo4Yvvl3j8&odHS$E*Hw;i=W&GjM z`07RrsUf3waj;Vq!Tbs3$r>!Wq}!R7da-_^G5uDSt9rj4VPW$sgNkEpI6LH6@SLx( zEAG7~#*Cm!4tEA-GE#{KJ`6*tOI@owagO{4wqAEYIXo^V=A60Yt~^>VgmQ(-RH_3{ z-+_+k$J7e)ZY}vc2nN$ZH~&wbbl*V8jdzrZXAVL1IL`1*s>kmiyW*`oO2Bcn`$-bT zA$3)=rCAKFVv#R} z!^6Yr5}CGG{0vf?8hurWjIzuqamv&w%+F;_52|#IJ7$r8zM>cQ2g`+QTIkpQtIGkQ zGsyoy7ee7ajHS`dYSS?0YrnL0p3Rr#PY+W@U`^j!moZ&Xn`c>-;g8VCeGal=as)p@ z9iLb$)LvnlxvBT4L~9&Vk32Hw^3ikl*(g$~mdAr(feu@Mz>!myaVZ>;l>L)>C=XCY zde+@WsBR2QvCVajVea3b0JOM6ZY#O-ikM-C#n!qmgaZyxrwg(&MY{Gn>HR* zjQ#8`jp_j%5QRfEz!HovR7ii2s52xOm+eND^7Glk;$p(3$*lVX702}IZYX=_a&)LV zLpYZ^Ah-?>$vb91r+{kl9hz;m2~tHZ47qK%8#UT5?@2<1zIz$HW17ecxI*PSnoPdW z6DfZPz6dMUk67zAuMj~lho$~B<5dd_v_1D!9WZiJh%?6nhlN12XX{HsitiB2{|1Rh zfzi3Tj+KBTp}>T2nO~cSq_2S}~x_UdbyN9G9)*a~{9>og48g-u9Wkf>mofjiUn>IDi=-Ys&2i^jYKU>XBC zw1(jf!x3jXgC@*CzJ_18Sk3TYuUZy&T)Pcc-}H37ICPw=itzYN(fmwx-MF3=`Y

    vawAkt9Xs zM5=}K0~DmeA>aW2lSlx33oZS%6ac_y#`q|)vvXpwHZis^V6d<@Ff(DNx3e(|SCA7& zgv0y12vJf(=#g4Gh%B=TZyhM*#rWNmSiQ$=1}#)xg07@Wa^F(B!M+Cx@RV z2FC98!zR1{0L9PGzk<3gpJwy8tPG)rtT<*Nn?V*g42$%0ptOJ~T|tn7zJ$}}wSYCvM<>$H5$|^oT@ThWFDrfp znwiQ`M*paEZ2RAfAHGh1Fp}xvm3r4Ms)-C>Jn57V@D_hgfVoe#Rn$lXNNUTrfuwUg98AQ{MAw&deZ@APTw%S1u(tw0^T%R_Bp+Mb9_3j zpSQSar^{;B?Y1z|OLC_&j&GFpA21hi>VjDro;aoSDsFkmrz3AQVVA)GfX0}}ga@o@ z%WRF(iMf-aK31Ex77178)oi!}F|tX4N}>_{`#4#!H+2+qn%T7X{r=}Ar|%yRIo8V) zj`^~`$lhm-a;y&0En=0tSZG0VQUn%e)h4L0>|x6$PI$JH_t5q_OXN|#+CHzb-le?f zE$!c?*0>JoSO!vlv_aKOAgOCkwYROiK$sIOc}_`L+D{zreQel!iyx&2r%c$OLwC76 zWV*>Nby+Xajn~%W^7+U3@xzvrT94$@X}4nM;I)vRH`y6G@+5Dugde54Fko=r8KYZ$ z3V8No|EwXOIwQQsyP0i)D^Oyk4pUtqF#ubKptn@><-SPh@`Iu=5V*I1KGVOn=6Ro% zJn+H?6ta5u)-@l-&sFw%&qMe6c-pG_$`u#Tk1(e-g@MwqZLy^bAAKNs4>@T0_r-bv z$=%Y_L4fVeZ_ys%Llo7XRIk_n&ipP+ctCTT9@8?Ao^=EO4$19@JsVqx=X-xMeE%?( zkYJnMAOLDfx$N zWfxoBBtY}K^@`?6qO+$w_)9?hRaU$L12B&{KO`!p%7ah!wf?L@xl|)>G^Ro(#=d3X zt7t~5?H)^}3q`vSA2h)4yql$UbRSEx<(W3L+8QFG^PzGib(ucq&P$juu~=ugRB+(+ zJyW^Vf`e(ff^FR8>yEYH5znngLT9X`>8I%BuNRSeR_GFUh!8OackWdBPQ=nS9LT)A z7ENCS)>V7zLyIhTXUaix@h*H^Ls_}*f6>sM~u z76!elyQ>rTL0uaaWLd}`RA0jsl+>T+XZGg3K!pwn@*e3oy4J42BqY(0UFrM(veS5v zZzo9avKlTQcdsM+K6~k=RG{L5rEw4`HLugh{x6Da4hQw8+Vm#JJZWW) z<-pGWJy~My0TssjAw!*!Z0@tDp7T_%t_4?pT1Am479XU-80YU6{M<#^f0q;F2x>p% zLqDu99cfSq>ErsT(11gu>H2dhIJ1wRKh0QvGhPjUrh@gEYm znJ#7vX)uyc4Hgn%qy3EV$pg?hlNhs{@aJo0`s>X?Zfp)i`dMN2TP8F6FfrGs0^vMV zso-FPb^ap;Lu;&>&`Q2&|6DLO>+1E$@o`pPx^k*g;`e6Qc6BZlpW#*U0wv~I)w53r z4)5s#6yjd84Rc?Sd3G4k` zz$#n=rAtM|Dh&YiJxwrO>|If#95N4_TKLM=xDwKUZ1ILrt~YZCMW2`L#>AVftVoOu z;tVcWyG#jWCs9kD0+!Z3I{G0P_^m=PwdC@l#}$Y7v5!galKu}{QGrkZzq0K!+88>3 zQQw}Z?x6$DEz_$0di6jwGh^+IBJR;PSfCw8e=iC{=!4A{_{L`<_vHIPAX8le;?gvT zojn1Z}z`_jrg74&v7!|gBjdt{jJ#6ifepdz!NY99gq?jf7wl!#3@NN6w z(24mfX}rtLo(v~>R(oE>-J3D&j%rAHzD|em{&<2MTRDmNx9(nm{UBb_@$0ZysMPZA z$rkS~-H{*2#l>}NStVV0fY{m8-LW^LLG66IjFLdJ^@e1z_2`{S`pl;ON6v{gUJXCR ziE{sZ4kUAu(SZoHfX4NZgY6_==?PH= zC~KXKP$dc|{6juFez)K3pR(1Lk3!n?SCt4-v#$R=xn`p|L}-+VsO36_PdB6b!@|Fg z4aJDH6l*DGI)kr+VN?DSPpsoa=HT2Hax9q( z3)%LKWbt-uwmQTtW#WZ?_SNgg?+Kfm)LyBO-U>{2B@)$E(MRpesO_}=`)qQj_yJBO zewvr~Xn?br-wZ!tSH5~Qq|FTA-il8VhGIp}t7;O=MW-%s<{gv~TofPOhWaW>5|O@5WcL z9+%1X=Zi3Usb%AJE4Dp$hb5VlDlp2rbWS)YQx!#ntn1xx;h4_fFpiwJ-Y0UBZK}i z8zra0D)JN2^+)l}yZ1ZPI#>IQC26U14nt___sOy9Hp=2o-^fdIi;cW!jmmz@BEtyq zxF2OE40V~b*jXoQb9h}<26IcS0#SaCM-$U{A)U4dL_P`!QxRSL*klg?ZGtse*OEq7 zw6I3-5XDQh)7PLmWeJ2Jwd}NVtR?o5Ht(w#irUI9{1xTWPBF4bwMnW>ua#&O4nhMBdM~o9%$O}Le;~P zLT{F07yEt{vw$?=YWoB#M1)w^i4f?H~p)E0#7ill3reeZ60MaQtt z?)k(IGG9S*S5x$9(%meTrxhW1zO@&{<&ZSABmX+xgt@G+NU!@8U6w%oC9qYi8iMBS$KQWamxy z7^N~YBvpMq`Zvd8a2&7c5ZYjmV}UKw>F`~?2U}beBxAzK%?t>0G0(LNLI7wu(lr)s zVN7!Zak0f8lAz)tVZJcF^@E~B<k((XK@tPssk`!VE=XR!+q1%wo~cp>!^`qVunmSdOfem_KmvSouP~>1!5>s65N?WE7OaS zS8YkopnTkY{P+duu3@;sMLqlrLlfU&)VX9Jy0SA=_j-}d58xQ0^RI8SOY?!y(JE{} z$5?DIOM9)RSl4rmDtqufI>OYP*~irZ%TzI>1f*uBk(UQ;Gn=I_lEP>gBTv1$9bLlw zoLV&y(_c&t2hE6@@>imI?3EDi-z<#>n_|BGHnH^aVyA05bK$^rpApgue5LjB3oSxQ z3P=|=M*neMpb`?T?k|zh>t7n|^M`KK;mEejF5`gj_PDqR^=-QCx2+6xd_ne+C!_OQ zB@g93P7&Nn+&_-1TSTk&QE)1rNnZb@o4^ol+fHPQ#aY|{EAUJ#1IxNxGqk?MH{Fy@ zENzcpbY++7xhjmf&KqH6nE!baBb;!yX>#Zzb)IyW!0aJPprXiJtE~f7x$~99V}7#|+|I1ZC(f^r5ze9=JLo(a@jY4oM>5SEDNs#K zestv!7$&Cd9)AjJ6La{zujfKMV~a)&itK>lm@9UQdJTz@?Mz^X1Q}~T_jN};TO|^g zViq{GBkI2z@5~{CFRkR&D6CDoS5H&8J40l&RG^CnO1xm2vHoi1Y!*!;&-Pw=8rXpo z2G7yJ8COZuSulUxIf;``K5qG<_S@@XFo9RiC@SRIyht!uaL_sSONc}}{20OZsdCv0 zxR2mk^u#)1>ua1Ce<Z#a0zW>SK%*ld*PGb zR};fCIMh}Lft{HcYU=SG-0Zl%i7PM`oJq5?;R%8-AeETOjN$JCa=~egFdP ziF*@s3@NW;$J3TqlMs7RdKEC9*F9}!1}iUw%kf7WPdm#lUsO-M-6y?ofPvAlH+{9x zTYN63ut+L-!{#1XAM>X-QA2NnTSwyRO$LM}Gf{RP&)qah;(`cIx;41=KPWDQY(^aI zlFox%1h!S{J@?C9zhvPb*~rcXDDaI=5}PKTLs)J>2`}=j?=GFDd1G=RG_%l1j&gkB z%%pV5C&pbOZ&N0DqqeQ@aNGL&+i6RIIq<$sm$gQU3-|#}*D(*53ehpylwS$0X5^t@ z#iiwV-4A4wXN*+R72Im~oX@88$p>4Ri+l%pb54yynftRra*xO~wS)7a*F0dw^|4En zDM)71#+%mWJ07K^pyo@cBBI+o$c*@ym1eO#c*J>j8G$Xcun(@$PS@qcD+*#zh1B#+ zf6P-ZVpi@{#ylrzj-7(8Et7v>HRSi{7n~;q*^08*H&u zQ-jtfA(yu}$5YvYz7t@@o$h$|pzjVq#fm+9P0RUI3g&De#-q`|X9(V=uRH?9yki*+ zYLvzUV@#@j`pSbxDP9;U&!#2MXgkcy7WLnNuL^hVDKXtrcor%;_7<0+P{+QxWf;20 zQ5FHQ<#oCBTl}6FKPs|9Ers!0&w6&(`GeZ~vz3D(=`b^Oh^fLYVkV?VNTCSE!h)J> zb($A<97gO%oY;{R=K=}w8?=_d)7YfGR&y2^Z^oRqO zZSWIQ(DD3Nd!jrMJ!Yd9qHMIVn=afaf#P^IMSeeF}&Pk5r+`I4#x^pRWSt}sX6Xt`L2C$%dcHXNTlDk@TyZy0>H zkXU9fx3iB5wMUUUF!!hOPmMBIne7Ea-%XjMCo_Qa8$T`KREu-e!wo*pXGq#A&XX@X zo$itm2YOnU9;{T4jo3;7H-bwcq&frtW}DU3S+l0H<^HxMsT@bl3ZP7Ox(n69s^04ShzHk+El0yta_wh9~8nW+H zo$t@7d>=z{gYEZ4d}>y@CW#zUdnzLfZhy+!GuyK@7*Sb(8a)wc|tgRPA{0bbjBiixN)SNEX$r6$nA8oBDp1ikub8DwcKDpnI?B=rhm6 ze=keqeUjMh4@Y-md=hp8Nj!g6=r3)0(~tB}VD>h$f|Q{DR(*;L-He)6k78mN0W(Q* z$2P)%=8+n{Q&nnIkncy=;kiwF+(UT2IM*9@zH>GO|88&xPsXSWO+3w-YiZi9tF?b- zHu?&3v6@*4;i$`Z%xho?rtP9FB~~HzE-~KOHe$b@7`>))eKl18pUTfRQDj)@C^Red zxztD^mzTTsJ2=WgZ2wH1v%2a@>Qm(K+2xJuH_fdxA-;qz9H`N#|)sHn>+pw z#(at{4Bss`VXw#&p{H)0zr#*l}?Fw zESI-rK3$5xt51fbvTYf}`A*>tN_hjY6wYtd!zWZNl#t>LRfPtI{pA*AGZ zSbX&g2s>$`qx*V=4YLRZ=62nfV2;grMqq)P!%80^Eo5F)v?8ON7pHzo}CTXnI-TQ0!$YDx16xN$ZkV#O<9-PoUmqQeJdl%(LTxOFU{U^?b7EH z;#4y``^2+oiln<3fq7OFRqTDo2u&2ul%~>_Mls{T--mZzUb(>DSXR;|4=?O zqQO&tc{;dT3S!Kinst6gZJ^VdalVr0UZ7I>^5{UXO$f>np3rp;5^v4S7R06g{nA~_ zOw~-9VWvHyPe|3^`0#*|F17Ed01~8d#kqQBMF}zdNsMca|FNTfe&^YeV#N%gCv9#p zQ25Cj9R9AUEPb@BWeP=m&V9LLkXI*SMOwv2fYU}7GQOI`k9-_nZyq=p@|)IT^?;2V zPBJ4UN5s)!hU?0;nCLv+IqYTiw{5Z~wY!cmFGVkueW}zq;eygO~}?5zapf(<2^>*7enX=3cZeO6}VFInJGq~BMM~?*IZ4i z`#N;N_aMqm86ypgzZVVGlqxxNP#eIIv}Uyx#8cut z<~e<%Q+~|01AXUsW^84@W~lZ_s}H1IT0l@;Rxhpak*%-TLc}v;yL;#g32;3 zlja8XpOhP3&okFCV|rJ)89ZtTLc#D(+hsGCJ8T^VzQns=^A`Dx!;Q&xN@~OLxMrv| zeUYg;(Qr{W>RbR`B7~w4DxK#%$=YmlKa3J;GY>msh2~gU9u>;m#QS;2QicRu^@bYZ zFos-@QZf)#y|!fY;Ui?sG~xGRib08fDgMuEX&qK`qGX@+W%o5iDLgNvnWmzdCcKBP zd^j)wfKi0N2@G@+A;?n9bfcn$ju;OG0Oa*LMVXeULS8ZssNUGm&QoaohmVPF_a$C9kvwbQ&mjCyspv$1rTON)Odzc=s%N`M0Z<~;HHZ^DD7PA4tc{2U^90Dz$7r2ABR4sY%`7bStH-+zd{ zx7A*x^79gecA)3`gMD(Jgd50scxgO%>4YbJ!*WIiTprDoaJl~N!sjjv;wyXH8H{~F z;x__zPN)}~aJn9`kW;&-OFUTVd6kcvG_-1Ao`-yJ4vSW}l-Nuun{+meVwPnHA2&Mx z&Mfs$u&%4v+Nl1^l=ZLcYT0m+7JR_wu>~J+yZK1M<3Q9loX_$SPluf1e97^gLJ`7k z8sOI?sC%vX#$6Y}O`jp7%p2>K6S3AjTiAL2hh?c_0d|_Vg!wC(QPTb!mP%9C=d1pj zKIxe&TP6EEP^>Ln&Jm5b@5(-tu15}QG}ZA-dJo3Fwu`e2w|C5ktkETRXoazUwvBFI z41`U0j<(PASkbSiG6{?2)N&vVyWN+jqgNpOHR^|>$akCfXGksF_l5w}YBcYr(| zVA46(BiCbQHr-@rCVuzf$d>ALC2-84diBBA2`EbszO%GtwDG`@-r>S|f6cypxRcxU zkM5<^wxQFRbgdjw>vIWJ?Vj7-^lF&FJ)?LV{pKZ88ya`U49Wn=;$vn4)-Befs!{DO z*Y)1D>T6N;(765LB#+nINqsWuj=KzUnkJ}`e9vPwIJtFv7M5O_PuItu&Y_}ts=Qv( zmhAUTh;Y+mXLVl)79m|l1lUm!|Eokmt>@&UiKL)Ea+Q4SEWbdXbt2NHEST`J&dp)r zTVcV6H43B>OWe=Vn53wWl^I;@n3PxG(KSWyX*B)|0A_C?U+!=!Ug(hR54 z3ke9xz={hw6WNO}w`>4@@S@#S+(vH6=+4Iw7wRxbkWB4AYdDBBu!ToXTe0|lq8$VK z1mj>>bsqBd{pcd3r`^73>N*WechbXqA3%60qky5k5>BK|_~zzVB=`!vJ!GyP6x4#q z^bm-Aa?OUQydI%Gx_MHA;kg``Sg}mRdLw1Qch|F-jm>u`x|Cs!ReRHuVbI_6);X}F zgUM@t_BP|0$jN`uDL*<{%?2gQbj{vw#0^;q=t{Mskd6>fZ>#W)ZwM4}C2?c_T&M*Id=o7&coCfMt=OKozeYlCo z)Qil42nsdDUuiOu35|X>S3(-!?D(In*438U#}LnYzVGeMP#B-< z;7!IXl@Ch)qswTVccM{RLD@Jsea`&Ctzny8b35@?ix18k@#tPUxv~vTstS_mSGRPRxZb}0b zzr($E6p9)zn?$7;>ohCpjk?5*3U58PjNu}G_EzwAUv_dZwoVgM@Cn_Tp&6*2i?c9b z;!CwVf-Uz-yEb&ReDesvz@MG)(80VN`%|emh8Mv6rQ@9_NX2NE^VnHBS?S=YISzHO zjYI`QLy8sRvnaRwncu0ppC2Tv#e2+3XjCLHNxstoFFo|3E&Npfkh*J~K0Ymu6hQOs zf0rr@FjIcG40ZmYeBgz#_jhw_W(zNqdF%TUH!J$Q*}CcP(=01yIhlbU>oB-iWd^eL z)qhJw;>AH+`!U8xpfWjLHJID_GlTOej>8W%NFt}|0HVxo)jrjiJf$Z1C+od2M@#c` z)YG`oWbLu&$$;J&=)t$1EkDRb9HZzW+qS;?wQY&};??n8vFQmG|GSCs7p4-k?~CPg zq7b8UcQl^GqBElni-|ROluN}&nodR5J&7M}fQU9xuxM&DQGw=9IdML_&4{EG>oaP> znFJ)E>A23qt!`C#W?F;QvovG`T(718$8NoAYA@y3EFLK|<0AHD(RJC}Cyq{9ZNdK2 zq)6998neYC9SdyXHwlm)7hH(D$(?2fvNWBYW?LN1y z76rPYQAHCfG7I^`YulW+Z+WLpf@2|c=Oytt_f8B=~2(l?=!v{0M+C`RPFMKm$Hpq0vr~q3D00V>w zUPT=-4510sw#YpNl_l4&6tLZdm~k=vLzPwVL82nLDlt)&OufN2`jCfC&nfgfkBxmC zt{t693+?qmb$1>A@s5L;YIs(EI}SkJ1Q=o20)CE_yCEJ7M2!l4W;ih(Gse6Q&%x(F z!bxCEq-rvVwbI@;$!7Orzn|>SpmZApTMrpYXbJ$GC32eS%X}zK4lz9BbCXjHur&hS zNS=LbZpqRkMhs%DbW@gofs%*CJ1*p{k6H5hQ1-oMGJghdf2E$VLvUx^*;FK6J-2Lu zrz#otI)~3R;}V+#l!*H|<-SJTs?4`?wA$eO|G+N+1P`9N0N?=34F-w`DZ)>X!T$x} zg)jZXKDrP9_{{$YgcsZY8Q}$(`N(;n2(K?&O%`824!$`46c++ij}v@izaY$h$o>ET z>SEzv4In>`VeKR|96xHC`^;Y;vKq4ifI`y$z`b8<^0g&>Ks2&itlGxjcNvpSO0-8DEvasgQSteOIzXl7`}cbOHVEDb zGI70BCL*%k)65c+_ioViMr&-xt5o=_ctUpbUe6sPt?LftNd+udBcS#&f;ncLkQU2zL?J{2uDi)!_T z__@|9r`&&}xgYL^-a)pt&G|3)Imma%b0^J94aMKKHW*!idmin+8X}FaqKnc+Cg?8Y4?0#OZ^b@4p{%Qm?B^Ous#RG$S_8M-2Alcx5 zD5le>lgRjO<245hPahZGsZ{hUd;V#$ps?bU^EsJL{k>SZd`T!PTc=nhf12SezooxMiIk=2)k_mxc5<4YY<}c2Zq|_ZQ~-%E-XFLM186@*UR+v)B-VvL*k2TzdrTKPLpmof3kwmv~?qC)uH88Cu`oOiPWxNL&{ewBZ(OczL~xJ zX#VG}9tpR1G8?Y-7;SJFmmqE)ar&LH0qN4LgY)g5a9lu!IE{{0EbL_Iv(~m7?VBnC zhJ`Egy=HCu-Tnz9Vk63-gNVp)t+(zRqKu9a855qbf4~m>&3o`-*u)_551F7s(skr* zJT4CCPz%x}K53FNd0gToNi#fy7=jI0fqVyX#QPD^q2goM!qxETx^=6RAFl}s$#IgF zkt|!bZ;~Oy21}69AGYn`z zJd+Y)^bULU=~DO|a&DfWt z%wwFK7^4?uedGXCfV_pd(yL!LiHVDn_uhX`R<2ntbsE$(SX;kbn0|33#%Hb^sRuNG zf`eAos(tfIC*zrOCFp<%$`z}ZOW6vqTy`~qamxzTFA8F0!eR-Wyhz0iznMOL`XkV- zaf=4>5ZlQYUw)yw#oxd9yS#q%kkqPI{qkEjz==FUX67@ltz&?j4}2=o<~=@}n7&0q zCeN2zjXLQuCWLs8tlzkf<3tcK#w^=!j0WW&>{F;RQ}9ILNh{@#e|jWe$0%O1g7g{^ zEaOA6^Dm@c)9(4lKn;H=-YnbheL71<_Eh=wvrnaW|L)SVZOew%ck-d&i9Ew{q*K?+ z)#ovRSSjR z|KZ_!H?vos;`jN-XxOygclrn0$mnsyRnF`)YP8ePf!95eV;ApoNvEjQTK1m$Ocrf= zM|uwSlZPMvZT|05rY8Pm{rS*CUS3{*@ik296F6R`&CF2cWtdU$t&bH7o+!pV8gvOT zeeP~OanrT~c%my8!${u@@sFOTch+ODkJN0?QK~ntUdj6S+Aw^STTeDc=V61y)2ztQh`_5( zRHJqSV?Cy*bvfE6MzR;~*UvavAJ>p;-^sP0UFS9jP&ThT(aWXFNy8@fq-xDd#>gvU zRIvnc_fON$`x^<{pk<$1KN)bnM+Zd5=M9**=A_;c=xsElfi9lD*2gywoXFN0z$;G# zIJw8=>kMF8fV)64Hukb56BZfQf2k4I_i9q!Y^!m4# z-`HB#;qEV>BCt=QTChc;0VJlzJ5-4DB;^X!4b%%1TmBEKo5T7WL~G!;u}1IVc&Htr zk%7v}+%PwaIS$7~Mn)F1PJee`$?_$gxOgrc&f!9rEMF|KM)2e4;Ys@$NftIS*yu;e zvT*5qS-NtuI+l}rOZ4`^at^?G06l|8&thqDf z#Hr)5cmEz)X=F^+%uGS^9AfmZmhGBJy@s__?o_B;RxN`Xb*f5@dQ}q#IQ8?hPH`Eu z>)a}_SHGTHnlx{yex#0F+e+^N-StMWvDlD<%nfqWZX<_C&%RxyQ;+tmte;;WpawU> zlRkR)&0bi}~ibL4lBS8H?2Zh284cS>W zxwh?F=6eh-gN$iu=3j~`uV`Z^osb-<|L%Ji0qUa2x@WVFO2&fj4jUcoQWN0%^^>t!ffuaQIV z&4-lqgkWw6eqh=49n@3&Lnp}E4Xfq5@4i!S#g1LuRK>^nQ@ z6(gr^HnM%5wCy%R%2#b9>AAaP!0?IEqT`UO&drU%5|?>ESaK-kM~@wmp8dM&w!3lj zdimjpALN}2=hU`o)3JpVD|yKabv>|e$`)$2IDYfukKz|KN80xqBOUvUy$sv+7%iRq zdK#r9Q37J-Npu<-DmQrP_x*;3%23Y)bpX0RMZbtxr^*M!gJ++a$-{{kJ^v)C>AM`xuAL z{vghyW8|r4)%pIgzARYtvZz z4eEK!`pGq+@S8FUV@Q@v2%jMtY~bVDj!meOnvN$D=ZEGiI4P03&0o%F%+C;RGyP> z9GCT**2NV>jaFtB;lt-2 z>+KRGk;yBhWACvNp0ZxIedLpGM7BB3bZOkCpCqQlOV*4Gd8J$_DfUv4@2#KTK6LBd zN%{@$t-d(a6fdKo;**P>JW&-{Zjc=mC*X~4s$$hz;%{V1fRTqRcPx6;o&h5!%EXkF z=EmIh`}Xg~_)is|h#YC&!CA)p$D~@9baz2S9`4-3=v0kYDsXb7Ld*clI$Rrf-s-PQKE)|9Is`>+AOixTzJ} z&&jlTd(_ov=1TjXqh;sOFJ#a0uM~F~>_0R_Js`CkcfEf%R@}8>i#dqRjXE&4GNl|u@EpcH1yBbM-MivUAv-YLQ32> zZ0&_PT`(~D+c(HdMFTq>au890Ij`t7BFH-2&j+zdF-M6G6J8;Pfb#?_n7m>mI~}il z59D{@Q6cJR2@LU7@6veRaVqOb0U;B^I?cU@?F+{lgG|DoieZT}7fk~xk8Ot0 z3EG|{FyE78zK2ZX7#s^dGa@=fsZYV{Pjjo2U2Kk$t=cW_Q|09fs0tJb+cup9rDHm7{ zMpOC1x|BPIICCR}DYy~zt(-a2Wx-QMUjY5fjZrlh@cfPri1&ilt6oiZ6I~2u}V2< z)1k%ArY#yKqGDO6$%ipxNBK2v)i9BpY}Bm2J^;K~{f+9yL&UygBOwgP-vfvAlMY>P z&b6SBoI2$o_6h5M^R`X8^mu}JV&R$1TQ_RlchA0EvV8S2nP#+R7`kzDhhP?B=*S_OcLv|^ z{`()ir>SOmY!@wGpii+u?zkdCmwhr^q!qtZh4V>R9 zx`)gdxqts#<*mc!!-N1Yb$?@}$Hq_8WlG@6`uK9N-Oa~O9Mf1i z`s^D@p|Rd$q<)h+LaJM}T34h`85kEbTXL2iE7a?HE9gIIv5fG|lp$lM$Po8SNrX0V zee9^wlOi;!uzR1*2ds}AFniwYgYZz^!a3@d?bW}#c$pOG=OydsmjO4Gx8|(;_0eYv%|N&reCGKQ(x_!mS-$nWq|V-DZZ2JV8Ra%Q zA?LE2a~bZWk&+Q+rzGXVdfNfEhxVWU{6V*0gH+wyf72)R$j)T>h3!8(SI*X?Env){a#Z^*T43WWG^~=#qYL?U(7;j($ zed#?%3HDQX!XgkU`bRD?XO)c7RM*0s6Q(k-4%8Mz8&piK< zl&jKET6GyJo}n|Phm*f9!%H`|RXjtcOOL_6Qo7s~{9^zwGdpsv230C(E)C0%Tu;;$ z?46BUHt0>Af9IU)ayT#9x~<<|7p`?vvzNUt{frr2w79iIt^or_1ntD%w_x3AarKy- z|9dbaZ@1yI7%5%;>cr(`E0+A*)2L>pN)@Z1$vdb-3zsd>th2mE4ubW&PfduZm59$1eOwqLOm; zh9XiavDhk`_J1I|Pky8N-^;I5lZPLE_^NA|F)J&N+8yh^mjF{5-#}<&uzGbOqC(YP zI&{D{?4E2-$aFkFlQ?3jPWN zai?zWzp{RI6c99;vJAYvP>@v9C@_YN!A7s(y z3;79_8T0nb>(EyLZnm-&UX>?H zKl!NjR^fnU$qopmu&2<@QKc{xSFc;8ULrJj3`k;D*3a_cS~r!o=yh`g8_Y6mlOIK_ z)v&YC=f+Ctl*QsQHs0umTV<%xBDxz@Xvnw(89XXR&Y%C{G3(Izuw=!O-MH6YDO*x% z)T$D0y?uQkX&v)}z#3G8&$uxP@0OWO13w*06JbaCHzvRJ(`(*T?#iRm*EL9>#o0Yhi@!K_&fM$<>~dtM z6?^Fg!{co;^rSZnE+d>j=H_sA;6Y;B*L(|e(3x|xCCgBZ8)I{Usw9;VWxUo+T~AJR zALy-=Nu0h(e53PZ#Dp|W_^wu`m1O4am2QJ3NS(%=9V^6bkUUrPSt(Pd%p=y%Zw*3Y zLSO1@1Tx+t_>GMO%5gJjAZ+_EDxv`X!)1IsHw6qH9V@Zv>r`WK{BEn+EjQ^6xd)`H zJyo_+d3mw1Si*iA7VV>7r=RMrzW88^Ypku+n;_jH-*QRcrVCAUo%Y6HEcjdhs9f<5pCK(fyUCy-<3F}8=kCI2&(W3e;I!}DT6aK9 z7Sa<~rZ;m_+yGGyp8!ww9pXktY3|m4q*e&bUvo-4f->`e%W+6a7-Vjmgc0j9?j7Xh z@^_tM%EnIvi&Nb@Nn5+C0UHY3%!^pLo_mf)oO;xSk>aui$*G_zX(>Hbe z^aW3ZZmyx0ci4>lbOUhp&U50!rqRVsy7V6Lmi3c+3*6MqrAPBi8VX`hC%>DzDWLz* z2=NG=d0FX0L8QQ=ezTtUhg$f*$(1NPhoZW%PRrfYg)CmZyJ>}LjSJ14u(3qxDpL1$ z%WQvcShj3Qg3&)u1c&;a2#WCkJDJ%2AwGg}iy$Z3h-;7kBQrr%yRlxQRSP0uN2MEa zE&Q6kfnNU^=RM}cc)zhHrX)_zuNVInt^v8ZSue)MPi%wVhh$J2k;|7bOp&YvzQ?PL z{9jW!VjZu<&F$|K1E)wxUk##nQs02?SBy}_B@E9qibP&~=oDdxx z8tPZly6pdLFh+|%>5lr4Cq?Av$nbD6Xh6J=j+B#Fb=WB;fs@tV22q7XzZa)|$f_Ye&&OA_1AF_F@dGkG-|$`RzqypMk0teLi@XpG#v6}6ZCu#5-z0_84iaV z;Y2%A3?~l6BdLQ#5wv(sHXiNrZTz(O{NVS42oLAXnt2Rsm>acMzHKAf50-~Rv~t1X zJaq@Knu#mhvV#>&a}6wLKI4JG5gd!`YOHL^phzQ{l{-Tb!s3s_?*}K58AEOpX+;#( zVtm@j@sVeC5;Dm9{GV+QgcxKakj?Flz7@mc$=&#kk4%7`yjuiEVMzBx*92H z-lnmpn~*85&WZuuwFry+HO&Ju_XRN_B8!CUgJX?Ws?P?_glH%yECxKIS{7=q-Feu+ z!`9=x`(XC(V{na49QJh{CL#QH-@l-hmk@*-v1=w+?L1@%Gu>=i5QFeP$xR0j@7H{w zb(_}8qGby-tp<66Y=ASm_Ufczb`p+wh&*7N809LyDy7Q2ETzkqlya3{{lq-fk4~RH zUBtS~dkWoqb$+u|n`Reru7LC&gImY|=tudZIwgKV!7geYFBm@z0{rc(8Wk;|VOy7%gs zLenw)p}qQd(=89KL(PY)*fL3BN3OB8vK7Or5PZPkexF!}xpkO2HNKcFa|&_~#iVcs zS*Q3exfoasHAuLu3zccTJ`wd<7x)( zC(UXj-4~fbn5;^k?&D%E0KmYkp zRaeQ$CYPF(fv`jsUa)kYoO|b-eEs#;nnU;ITW2)Wap#`x8u1=!WEBa5b?VoY@|DZT z3nhxmQ_nnUxTy3L>$Eon9EcQRZQTE{9D4H~vi6->El8{SCB-+&FXDk{#9U}UnDybiij#9s$}`=LT=Kcp(-~WIy8L3 z`uf#iZ*>rfT-2Tw5J?**8ASm*hO*u_PM^{=K!}90aPlPGP<9)8 zCtG?OEeJM7B_{8ln&POasM~h8TuCT`D2}?#OM#TakcGD$+(~_ZNS#1+X$)OqL-}QxGl!IovUE$)~)S%wh#+t17!qFm)<4T zR~(R&JM$!}H|jCmw8Gdj-+c3pYI3k6h8t8z0M0W;ESY~0iSK;)@rQC!IccxjJ>m@RIwM@#~AT;32n!itpc)jyRq^y(vLqiRLhDzY1`G#15(yW7%RIS}w+`YoDt1JYB zczB^uRJGcbF7;{P0V_utLLrx^O5y+1@1S~9sl|3TV^)^zHwwZx-+rS>>SW%N zSc^Xsi|w;caYt}#gxV@O%a6Y{32=I-bu<;X{1=C zR?8b=#p+EBHq#y}4O{h=)?J57FXsRm8<=T`w_0>x?JI{mkUBn+{E>E!X+9pY2}L+E&7A@birGVtpuSU#_^NKRHbCg!>T5ac1lW| ztX{uT+Y6D-{nb}rn!n$bqbH82!hzR-W;WGpRS{Y#Kl#knd9Ak#w@N7D$>WWN*3T_O zYBlVrdG3uGH<#0A&yK$#o<2LCbM8BE$ZMp#-@hPOlQ#XeNiR(jqf%E(P;8!b8Q?9! z@yqmlS6_qUI^w3Smto_R%yonr+15)5Rkv~58|Ho34&mXW-Lx=BlbaJ0W6R-8wOvBf z4QG(b2a!m2#)xI#M0Ra8sx}?K+4d-(B2O6i54I83IhoxUt8972N*1}}!ZsUjhftK| z6DOxMpRn@HR|UHgsGv?y*F-VR6mTj9fR6-Goz`3d}qReDjuq01iBlx$dkRnEd?7}7@ksCr` z(6a5}3L*}Kw-`dPucF~a$4B2(^P!u82Z2xvSMG1_9+ackv1sGll4poTXKKIb1$xfH zt^-XlEOEKGdBkhp0Ex1+;IR&QO<1*R)t{jWu{a93ic#1BK)r&*LQdgLM*F}Ujm^aS zYd5aevK;Cou$fRQ@H*rz$W@1B^R`W-O7)7`%d2JkmUnHO#DhSnl$l$bPl#S5(dnCI z(}B-r#^M7~y?#3hn6yaGS=e=~+4ZhOrmU9ULjt6Fy|%`FEG{KW-8gB4+I>PQJ^@~u z;T)R~>mXEkWY|ffoDhpI5Z9s66I&l12x3JDx7m3)IyVC2mUg~y6olHaX`PJm9I37l zyx3*RmzDue0|NEncL9EGLap2JR<+=SwdUAcWXYEIEru9o#ERqZFzN1^> z>^b!hx%mB$Qv9WIQn^M835;K%=ezR!%eI}D?MJ?pq**(pb+=*iO8MII+u!~{N|h?S z8tO_=4LmFL!j&UO6y`6^3ns!z0R$dxxC<^qnb0I`@6j4HrJoeVd+!;Ij~eYa-Z-gF zTD%b`6$IznbZDV5qRV<9-T~Yyp<*&N%W&@$O-}U;nIR)5Ox3dIu%y)zFnNg@s5iox z%q^0+;IORP^`V@4|G)C_cRxzgw!P)ge|bVnZs-Yl>HNHImA$7vm$yFoQR^XwxKCC? zmw7Gb7UWNV`pZodDJ3K6r>CEN64gA!di!z+iU=x$XBX}vPXO6P;0_|;uBVvLyn-3D}f(K^L#!L1R>dT>UTz)>XD!cnywbdaX4 z`zU91@9%y??9jv2Y?-Cyx4-+nwx`q5prGlJKL3!>`reSOhd+_CAOBmVA8(Y5u0~s{BES3HAC*W$T;1XvcXDl@3BJQSlym~qrfvJSm*%Qm3+!m6 z5-b9Og=hjiA!g(iopNv`(PtY~{_LA)^0&YhYnE#`osI`=g~%=3NiEtnJ7XRGmf_Y3 zWus%IBS+}s$QDMK`pqK0iAvvUxa425?e#B>5q(y|jUkJ{J8b+E>1_;QdZRUJ-B+sA zZY3|3t}2f_hF15mA=2+9EG)v)x`pdPN@mJ&h%{>K@b7WAHE3L?o%PX;VVu`!B@7(K zmIx=2)PbiL_dF?8a2zRJbUG$li%pf!S&MQtHie35yP`C2zE|geSf{vYxIIESh_qUZu&Ru#+Y;5dR6;Rg#W7d49Tr@4^JU&s1@(Sw;b5nqKmz*}XKZr#9 z38MK1IWl&rphA|Bdq&R4qb3?#r@cJ>WKnta@n_`)qoxL8hGbZA{~+D5C}T&fD^uZ>0PAaa51gEw{zy!UG%TvKQ5x*fGTS3W(^{#x ziMl1){zDwLcstk*$-5xE45G4iqGiIJM2k5tKE{4SdVf7^*s$MQr@duDU1diVdsRAi zx%Skq^_zBgN0XzW2h|Dgfmu4+g4z+cadCQX>b5FYYc3_rRFjq+2b*g-CAlk)nFX;% z+>MgqG-i?(fi`YCK!%P9o{*H5@D)x1o&mc_?!4LRWF@MNve3n;%j4GR?=1uc`)%i; z5=KUSAI265w|S4zq(rtwh=y}<@{|}&J0>F*R}_w4IF9%i8L$u*lK}TVZhrDF$Y2_6 zh&Ob!tCn5e5ut9<;GI2xqfamAKy|*351%EommiU~JO!? zbX4zllF;~t+N!fv7dNTfw3~G4?W*nAFj4T=J@fq2Qn^aSx2;qCJTPYb$R*@a;FyJQ z#IH!SM5QN9il7)=1ILj&!H5OAn9)!Hj>F*#(Qpdm6~Q}#;Y|->zJI?61>`N+)Mmi& z2yq@8C!V1>GIQ}E>E+}ryhl^m%g@Q*TP1AD5-s%{X8x$?Yl zoQwNp>C(?b1C5>fda6GVV|mH)^=+(2^2>s*Jv)x?*tOkPl>UOPjg7^CUvmTN^-9@FS}5Mr9FNW|Buf&(CfM1sT~nP@LwYox6nvHBdsMDg$q*;Z(QDoi zYwDa`#?XydwLT(sy`JmJbAz72S?Zy{Fz#WtO-5NF$EKvr+-cqZ{{%eTy?gr-W4%WA zC5x#^%f@$wP{m(3fCvp)p#!m z1vrhG^dn<8ModVTxU7v55;x!2TH_^Tik&-gHPU&3o`r))gsDp3q4!vws93x4FGR_> z6(~rkB^%F*pV?Nj7QQaoiweh_WhZ3G=JR)*P=H4u^SfeXsCTNSmBnSPm$>XLk~#m- zb#c+AH)YZKBQiE1((IY^fKWaY8Fn#B>NoFo)7Y>@Z>iI? z>s=)jFfJff2io*A>U!O#-ERw>@4|J2}tvX557VU2u z8#ZYxu5=xmUqM1R=-#{b?Vd~mMvTM z)YR;$nFd$y@1fr(BH)+Ogaz}=6@nID)__ThyeA} z<6W>l3Fk} z;>_@gA^E)?K%BJsXoz&>YoI!PL-M~5YNEZ>CxYT!f--x>jBxXj(O?<0hrxx&1raP+Rg?gtLhT!SFv4B*hmAkw=erdv*Kv?SHf``+pxuCX9#)KYAq*?9MG$ zBH2&ZLSk6F@;%b9?f3aV$K@5TyG>-?gX18c_J%NAs6;c{C)+06<{+4(1p)=)_!=P= z4&+guBR*NPe$7VfR{pnO@7|r&lhP7a>dH3{4TLE6g9h!!Az*$h9WZIKqq__35mFqj zbU*@dgg^M3prfW#r6=k8e3xSqHle`VK8H;}n|KbcyVQvVZqw+rA(-7C0uCcrgzXSw zQ6Qm}f$l>ujP@9I|GMejD~L&mDanJe31SlkLTJMf^Dq^y);jjXw>{Z*wLNGLYzKMY zMq*Z={h5vSd-mu0eLJ>g&H?dl?o*=awh7TL^*@5kl*5c70>KIr3(nH!A#MYV(h^+j zuC*JuUyzcPIMyZ#$ZCcwAcjp49+ZXatyA6YvX!ZRBVs=+aerhln{G6B+LS_kXvvTMdk!W4F}%4W*&D7lG5S> z?A7VumP>t)Yz_gZT6q$TH=CI|U3)7tcqhon2!uKUo`=JO;#eG$Ezc%WK7p+0Z$4qH zS#LH0lz4^!Wc6?kTJUfk1(6wWTICP14cfos`=n^2kT_&nu%$^lG)5(s*$PoIbQ>Ht zSYu~oQMn9vzHxHo{f2~uiAC~Py+s&(00mY)4}fM;^A^vQyajXgb0*a?%Zimb-fx_4 zD-ekX!uG?~$hL&6;lYs`IMZrIMY{xYD(Ln?*D*K&Ze#1BW(Z|~giyQT6t8G<{B7G( z_W${;U}P7Yi#!f0`XMamW-1Qp0c?lJFC~`wzHWmk8HQLC>Ji|iYK4I3s8KG2LwTUBaHohI*Moc9xSmz*=oIGY5=K!1O*Z(O&v=;HEo_97 zq9Y%1NP&)FjwzB55&|mm3^A1B4RPSK_~c2tHRA>0eTdApa6IG`-BvUoWKhrk)}y;W zkTY-Qr#9!2oFb;$N zGXaSdXPOrxmv|6tU#xB(7+k?|NkJo@qDzksnqxtaq?TeSu>`3|xQ4UmvN z*}e=lr-`KX81EeQxrQD|d-w0r zsb>cc?^B|#+ptDwJwhA=Hwpt=AnoBOHyvcSpnIRr(ynuBY0<8!KJ*4n>oQtLC()3% zK&Fhu zQX@A;o2`s31=W_eQ9^G0TUBk91aT)uFyn!2$aY07y9c3N>X=Ck~ z65pzk5`-KDh(Hnvb-xt8(cy*u6byK3)1j3iO2x$b4eKO!@6|PN!-jQ!)-7BYcJJQl zH_)l~lveGUCN^$SKe6wC9{(kAMTyqJ!HI1$DZ%Do&5y#heT%nU6ZyQ3>LjP)OYr3@=;-IRcUG3VlLoU2`LBfnirrU$LXnM=B zy3m+Ngv3*@+$atwP92lC-aaeGj~|sidv~hbp&8=bg>%$Cf0K0D*K1r`x1owv z%gL+dO6f#PuxhQ!KUJ<=zTuH0yPmNw?Pmd;tsT3zZP>L}r~i6P{RgkH%q&W$jj#rJ?=O|ZI#+K9O-eiYVAt-;KTQ|RSt3jL5rINH5N`l z14}pGW#r*I7tYItchAd-lgCsB!9CPI&0n0SMkbnBXS0Q{wP=@0BR>q6Xr%)A)(x7~ z<3WtDF6n^;BYy`C8|nI;Dj>Z(X=Mot2bC)j21SQ05G@uiL!*SFkgX^%p1z({tV7)z zOq=Ft<)#EO+=Fexmc+bP3ZxUv>gQtEmr+@{5Y$jKF}R2JIv;=hkq(7EcEW6L`*z6& z^V{XCD4)qOc8#|R<)*D2#9=#QE29vrSjiWEGDQ1D=B*j+?i0f$Ke7$7yP#yy=bTs- z-gR6~sOiXU>?m5>@eEqEYIVysQV$s+|B*xfII1SHXHAp6`}W8eU;JGnVnQ9$b_{_~ zGht~G@R2F>kDwVME#GKAiuShiwH>ly^LnFTELJ}rgk@hRlN4dk=y7`Q(N3pDyB2+{ zOZY{@KAAp#s@&z8zJL5yLH(XB1l62j{4C0+4X_prnZXB7RSJST2#}q5?720NV7WNAP9snD?KYs zUNiFMbF&S8`spXC!Px|2d&GvKpo|rRO+v~q@`er~ua+x$d2@;@AZF@niJQJtJi~Ge zZS#3Q(LE?fM)_xHvZR|=vbcC8h}-xi$y>hj^o9+4pR_KyP#7|7;Fk~z*2CC#J5G;P~a53kb1>8)CV7CTSTBsl{UhlD~T6?7ObkrC$ZkBL~)J>$8%-8+T*0GmxBW&=H*DTut@YKbp`aY1vD99}A#|Zc=f?nJ6<}2pv4lh56xz0Z_4QZs zkW(`F0@3`PzHm=H`=pd8S-jBct=9sZNO4))VIC z>sGFUkzI>%Sv#;RtJ&jF+?BN=t+?}69N}I z6la?wO1e?ExzAK3r`Id?5bhqjR%&Z&t3?}10vgA1q&DZk&hwrPh zKrD#x0_r3o1gh$uf8jZK;+aBbtKS0L9+4amaN+th^5(^V%E7ZgnBRVTL)?G*AF}h< zSF*z>2^;r)B5QWNFALY5kts8G^yBRz&u|X@dkw_ z9QZ%%gfqZ+fh~I5fjRoB*QobxJX-vx)0Ss6}hK*0uBC>i-dq~ZC zZDsrR?blQ!g2My45vj(tMwo`!7(0=Ec;LXEnl_Qp>T>7JQloU7x4T9x(dbYW@iZ`F z9~;Q-J^sa}M`wjtO$W5{NUUsRqXPPhBzU4u{=hESnd(y8w_ z@d(b;&i;*B^^pqInn+UWjBeI#6$)V!1OH{W4dOWx0cg;qPS``qQ>TOw%(IC^@C|hu z4#J~Lz5tpBrS*8P^IKYL7yk=#{Nz!cg<-b~Wd*!saZ$&P9gAD%ziqf3BJDWxxunnC z?-*}fzk_OGbd9w8i(d~bRBbHP>a@}3y3IQ{OQ${_;xsB&!V;E zO+p!t8sj%r291bRBez-m!BWu>sX^20mt>~SPJN1;4^qcmh7H!mUcYgjw1*Ot<0jce zV!K~B)`%~!MVqGTFr`cK^TnRK z;|~77?GS0EQHKL3Esz!+UCg#yS$_N5-)qY>`j6iTAAholc8x4mwx)L9rwuiPa(16A zvFU5Y#V7;=M^2Q;6neZ~`x;`*cb&&fk`X>B(%Q(S$~BssYpHZY`5YS;{TW$E^wfn& z6{{J!gf>x-Nb5JQ)!a7Z5k5MMSJ;n4M%q@h&7t|>qhoLu9sCo`c4=>Q#DZvu)U#)| zR@Qm%2yT@~G1In7j4>{~!)8j$E-uI# zk3Lp;bW&$wpj6;{LccF<4vOJwo$rp}c8TN_Hp3X8Zc?UFeR<^Z=cHhluv>wgyk)&m z1R&CIpEOCz*)9_zjB;RPTv*Z?bIxmAhf(80rz|!^%GU3~l|_raB2lqPg^t`W2so{Y z%T=pcNgdG-5#J$s9yboLqt)wH3e|KFiF^eNt=PCIO|hbHt3zq{S|hWJW7z%LPMx~R zpbac#!rW|k*7@!jer_TGTXr6qHfRK`0x~6f>N;7n=}l?a(k$S>40F!HuOr%E{IvDr zVH6MMVL+tkik6h_y`64IBnHGlB(j%^7B3t)Nq&vd9sUzZ?r z&cd&Q_ovO@zb{%8|)uSq^|uv z&2=D`uD%X9X_k>+0kQLq-84pfzdmZNqek7vHzd;3%+wqzNs#eHiajq6C8s5xhqdgn z3V0kym_Yr8NNjhur-AJaR}cVMK&HR`I^srz#vu~9b_I#lsawbYIU-HYSS{WY=S#wj zowEP*_d0!zhwo4x3b~HV?J~n?nZa?3q;0nmQr29@pa1%#^zH9@Ln0Xw6b_MaP8Waq zMR_P{Qe+5*Dq9{}9!^$>MFbX^MBx-ul8G(7e&mo*8os$iq+_q^cIV^oX|%z14u4(Q zl2X1(x%1Zf?id~vB84Zd((e3Oi;v3jcmFG8jP2Fg$eL?iNAjH4BzxgO@sG_@d#hxb z>c$lKKS@fNc0(d1B*!fv&8>`4!8>>BWVE~FxDe`Z;3f*aZ0`e!CTMr4;3POwE? z7himF87JZAL;E8$liUSD<7Fzo@;{|G00EPi%fz%zvTWP?a`L@@YTIhO35Cm~tuk-z zX-S>4M@CLakp^_^FHzP!lZTBdaQ22n^(ix@hU>)=FPQVZ5T zQ!QL$K#>zh9yWwRVIa_l(-iM4?=M_3U&9g*NmcL@$COCa9+6^8>Ma@`2CW|WF2K)C zq`9k({ucsGp1w=g?71i(fA^DFh|P>j-Nx8S>&!W?CQ{nm1F~`dr!r;wR-KQ*Cp5s%bG-VqDs~yp)++KMjgEHeKT4~s77Re4d z^U;4~_KH*DG&)*iOiw>of`=_5MvT2?@Xvr~nLD54?*6S+i18zn0w-V-(_*vGJ8JPu^0GDjVvlHUwBQD$Nt{*K^QiNu5QkIEId zag(L58y@g6(%aZG?!hySontU)ri=}qbzK}6I!AnCm^QOc5@)|=u-G` zzx(|kjQZU{LX!&m?s(lQld^Wm8z1~&IPPPan6kns3`105_|0#AFHb*n_ z@tr50dR$7pQsVOAW5n0VTCul12o(@ILDg_lj_`!@KAEih5AD^VS)>r-yW6s3vkoGm z`b|@ZTQ$1HD4cWeZ_jQAQKx$@cC5Y5#K==PXQP>K>5QNB4B?)mV#xc;?^vj5EYX50F&>^%ChG;H2ke*gRblM2mR1&K3b z=`lI+?l*Gw;(uh-u8$=)W1Vs@9)>5LdO-=)qGijQ8o&a9(lb+ho-Oi>^y=Gdwe|Mp zz?KK093}dW31<+7)FaYkQ6MmMnbkmE-FqLrCuh!{*5t_bMlLN|y;RHU3ICFj$-t~; zt()$)4u4y4>qG*#>Hv{eon56|<%Y)aY%2Adbe6VVh7>w)=}PR@Z;aGx&_@3Fr@zP_ z{_ihRqEr>>+;6;kwr4CoD$BQ>m)GC^R?f2pp8G*o@4hIrm!A+tkKtOb=KQgLqrwh(nk$ScC^ z2M+C%^Y6SZM~qR6=V9e)$LuBCN@N(3F@)_D6&?1jb&6Yt+a(f0Jv3pp5%3eVlVq)i zoi!D!YMs_MhqYU47s{T4{UmRk|H#qv|CaUpKGl$X-rBch{`$8hZO$%n9uun( zUAh=E0`;$tKBWYDIO~WTE6w1oc`$FvSP(#4QE!W(OgQEsUgo6Eh+!^$48Vn zk3Igl%$v9H+G)ZCAZvEks}Kn9LX+kVHRa%yDzCg?eSCcw7CP+Db}bErLRLX2IE(k# z4za7~K7tDg4>?83q$QJ+M_2=2AFd?w$;ct6K|5S!o#Lk9PB>|D_6|Ap=2vq3okAv< z8QgdJJEJ6gC>iq)==U!t)>gws??~qSgEHJJL3@1TWgr9&7BO6dSDVnhxlA3TNy?2*?05n0%zC8BiqvASr&|K@In*(FO&ec*vv&HeCsUWvojcJm(a+qTn z7H%YD(H^tqk(5H<5N;yufqNss5EmB{>NzEdkI1Dl?ZI zS3+Eg$+LFLAS2 zPsrm>J}0f)bdZWwY7F1`+G`!G%e^VszH|E&n?OAWblpk1LD6E*EwetpHSq8mdzex} zj9Ioh2nBIKTe+}(enfU>&&$znCR=xGk=1Kgs?4H=0J#&iqrr8=_D9sWcmM8dtkYZ< zZkC@8}*mcOxLkAvy`uV4%O!+%>qYWD~ zfq$Kj_8PjioSUHBK1U&D#k_8A%&tTD&L4#8G`+^ zdiB!l7WLi^k@lSUO0pLnQG>Q#GxKl_7vLpecvV4cV6;AbYYYz={SCMTAp-AS#uCkr8cyK8!o4p{|oZf#Vip z28H{ns$3HzH&%apusyTqKR;VL246#TJ zCP#0yf4bTFHp+nEkuo+QLx&R&^-K^K_ZY)%3uQuNuJ}xxs|93kp2?c##dik`i;xN7 znRBd5z6xf|oq0@&!y=xUDXrQySK<_T@%cOBpetd7yX))uv;T~&Li(zNv<6KUb!R4$RlJO7@4+N zyd!c|*BO{Db2P+4&G(9! zb>E0|>eQ(x8On&9@s6A$Ihs=JVYn$$CZ-pxrf~QMLlW2MXM86hX0B?Jt-B19x=p%C z?M5A?MCszHAXKec0EB|NLO&R8Q1tyx-aj&Z&RDs2=eiW7Gy~)T*a2nZ|lV4-EWf)Yzd1aQ}c1 z&F%$RAuSnSRHJa4jAQEyCB4B{q$U@=Va5r)>Ha<#i zxzXN}w1CWQe6mC&tu))-5mnKB%+^~dH)U)Quh8jAOuXb6zAZYrNUcVl%r>9#sr76g zJTP`o0IA9#-UY^r;=hAnY>#M$sNFbn34zdRj0ed|w;x=r(Tsef?+z!CpP?LUZLb6_ z^>4Ev?5!3K2IG_I$Kc>5X3%CW*e?Tzhic9QA&)`{Wwt#MPx`p{YfVz;z8*~UgG$6QS$aH|%sF-3EH$TTH# zOLP7@O}iO6eRn6J-7^?Cu-mhNA%5E5jrJ@wp~cafPqhBs9kR^X(H0tRqj$u3WAWb& zB0&I%6df0-{zg9|lTh<%=sVCD(ezD%>&efc&0FK<4b?zZZVJef^t|2TIyS~^W&RR* zjUmBke5m4hD?CGI7~|MSnpsN3>NVSLxzWha3gdmockI-?eHxRLc_4(@NvtI1L|ZZB znND*y#2aTcrn^BT+)iZKa!eKmx$7(xVq63y>77755Xm!Io?orJwC(0>I3hw^JrgB3 zZn5MnJuK~v-Q*r%*CiD~sI;}x$2HU_5pk+SU}xb$r`^tp6Yo7?J%V2z1cmt>XwkOW zVF=c=bt6YlZ-WqTY|ym3LL^#Lb4-rkxTS+2cmil=08vQjB#*spg;%r>U%3jeyxz2B zlLPqW291i5(f(PImb*(_+@qD7!jrF6Gi#KHu<6oez zD2(<`?GK@bjGH3W(xhu8A4;0)T2kUcEyFtyA8g;8osN1migm#_UOh`>leabq;bz%GV?Y|pj6o|p2 zVr8UXh9u40CZ55W(%s0L@Z@XN%sP|^9JD?WGaa4?bIo;{beBP{zYrzjR^V1I6+ zg~5VV+qWW{Ts#tG!o;~6vY?`TxL2Yo3s)10|8J2I-bvD>zlTvGvbA|f({_VZiP*9G zz=J<$=~m!DAQC{hf}!;zeA6X9YmUr1y{@8RltwB1Wqx zqG5|3|6AO2eIi|r_lih!7jH=+C`i0%!o)nShwWfAH`j5K&3SEZx)M<$W~lAtr%FVC zdLjsC1cp!f`9}8KZMc$1G$rio8Yt`cek7X@e0mjbJ^Yy_klbw|0d(QQT{PS$UE-!~ zl*q)T>QE(ta?kOv3PoDzOiWs&*Ni6uk9p(P{Zxs_$yt7P=T-b%a3zuYxdqA8x%(u0 z(d*a5RXabF$fTurok*E8S9Kz%!Fg<)j1QkJxhszuf+b1Dyn~WC|Ijs&{P8V^K9acf zmHFWevR?ZP9{X?W(7$Z3i8OiIHc6Ya)9mdr>La@m66a~%W$0Zc65uvA_PaqNqh+X9 ziqYWa>v;y42Y)k2l$UGkrb>jv6Oo)gXQXxLUoJo-&xpA)%qv-iE=lw^hdrf9oBmpw ze>aH)^f$7}*_{ds7pdE{`z<3L2o@0c)3{YnS+wZE3uoLCK&0-2{G@dGTJloq%D03x zf1;V~qmMs-SBVrHGgJGk7B5-JV8z?SO6L0NXsA6ZX6iZX(7#N`nZHQ}ISrR?JqJqD z7VU2dt5k0&; z=#>!~85|NC9vBiF?jPbG>}${`BqAy#H8?VGMr?f4=G2U&|1csoI3iHf1~f=%M~$yQ z0;XQRju|1e6k;gl1V68wu;{QE0U^GV%x589{+=N|fu140fnMg^fg!nhvwapU$gO2v z+OO~{{5){@qr-pBo|9cVVp2qzh=`yvOP4Mho|Hc2OT!GB;6yMPBqC4h1W8f_@yhqe z8t@PC$41#jA}l9FG^F3G!L72uy`~UW5Hd1MPGe~up6g^K+sM)7c0^g5+}9%m!1zTx6htqz_Rw&8zamS-# z!p0RkS>spu{{vDolL8`R!UK|065b}gmTb&R3q3@U_Z%4Jz?d*i7Nj7Hg#_d| zzf@SXXwhTQQ=&^7TP1>p$)d|=3=4UW3Xg(|neP@v5;qGX3!I|4n?({mZ7ld+!S57& zpW}lxFCkHsx~_uX;Tj5FEC0Xpn!$qi#69XJVBw`_0OQ$`(qcU9HN$W)8i-1YYN?XV z*lGnC4K?ygNrnW2!EELt&ytcUGQeQEk>iF(IS+S!Wx@pa%hDBog$D?dvXd&uB~M;E zIVtvi7Ei(5yx`)qu^@94WDwHSrzB0j9L>T8$wn@SEOr~ol(tcGFiDclyi}WTGf3@S z!N0R+X6lfGg5Tk|`R5|P)0{)o3oX>^Nu8p}yIeE(!+bLPJ_|CVGFpM>gyf}W9dt;$ zON?eqH_FP?E;OoSLG`hqB(v2;q!!W4h+)|Oi7B?f zI6y}?ySVS9_^1_hFfX_`3NnkmfOJ8b9iClYnIhRRgN4*|*l06`o%_mS)zQdiLE|l> zLj{BJD2KB#Bir#ABPn&koA0M&BsuVk1ZPl-e+pveCFUuJRC5)E^q#&J7WRD`FFQWx zD{!scYocL5M#xZ)$@8+GD@>-Ur;%td84}H*N;>R2RUa+Y5hn@-Pqq}J0IHyxXsd|W zT`(7;C~1KSV=;ru@Aumz&Sh$~c_cnHlttQ#KIPVu^ zV6Fp+W?zGS-a;A5od2?gUH}VYiYpnYAQtxh+rfgz<2txbuA5DUsz2_L`@NjWu8?F# zU9{Ci>@pb4RuOIWP?^heaG(NGD}~geFo0503I#wIZE`})j`4xxi~Z{CxD803mehAj z!lZ)`?n;#`U&0u|g0^J2l40xx%+3#E(5@6lVb~-%Coe~9dHJm)z7wE?w~4N*i@%5N zve*rH$k>4~6_=Qw%3HQYIotPM=i9O z3#kQTQ8GpOFMWTh+jbr0{PEx+1NvD@c1S!`s_Pq- z1Oh7q8I{Fu1cNHW;$Sz1d0-sWq9nsGEGQPfgIQ;28w;3q-lANYw=mcI?ZDjmv-Pu_ zxihp)Aiv?a+ygs4$7G;03mR`+h*|8m>f~nyaFx-G`efTD4mIjhJc)bA_r9?}&3&;@ zJ-p4m6^7=!3`DhmZ^y4_D!@6|Oze$?bLV5AW5}nkVG5onjdDVxf^?Dw)vh>Dc;3|P z@r+=6m=lIA=;+9gui;57z+7B6Qp>irkXqCr+Kko5Fcno!PKMdW`;1*Ra%BHsZne?f zfZW{NN0U+$B4HGpd2IE_-rcWa70KdBlvka<2X9gvH)Nj76sA*2BEp>%C#$G-G((fG=kSP>sFcb zFPEjOmgu!Gp$f*Do-<8tE~FG{Dmy;Ly=`l#DrC-!8l;lYViG&74(!{r_vB{akqEH}-MubMTrUUoz*mV^8+;%V$=uw*WILBO0`s zkmt*NBK4rH?KolcK!UasV_1LlHJ9gO984xE!~(fb+!#w6aJHpQ{%&y8#596TPvAB^o7~iNbsDd<}EYm)6bB)x=nd9iw1JiLFwJD4W2va&FjGrStD8MWdv)f}g z(3u$NK?4k~k;Thm;o33E2OGNqgPcW!isPs^?XHW4no}F8J+*r_P^3&@Fz@lV{eRj6 zSPcjjdzfQ@RHWM~6tC?31BdieI|aLiMT+jEOmh|EV3bcobxPOv z){B=fPzk_-raw8%gvZI-JYbl`cC|uSh{+BH5pBuiW7HycI|7xcPuLYOFrGLVapl_O zI((n`?hN9mDe(S-d(HWF$+jI^WaH-b+AVXrk$eoOWU@7Fj zp*yQ#8ru3W$qhzv?5O>9;ZlU%wO1#z*xO6{E^VYurNTvb^}seVAX((yEM!~>jJ_z4yHeHiTB~ip(x8&R`HZ^ls)2eOr ze;Wn{f2!BGwqCRS3S*n|Nu#Fq9gJu0jpBcX0@22!L)SJAX=oNS3mb__!yFd6?V&5! z&ckk?18tGeNS;fQ%%L{IV9=lV8Im7ohOG)B;bAHm)!tZPW*D6FYuAXbZS}f(4d`~f zSFa|2wU+2F1CpjD9ub55~@h>c#^_g|a0NdN@We>KamqvBt;DaZjH)rGp)q1edvpc_X!_M(shIgp#wIy@aJ~)4Cgor-hkXWfv0d>=GvAGyaS*GpKdmMvq1p=Hc=% zkU}h8^kg0?I~Jmzg^g~FhmOTgtcY0+FygV}N9C=z&dS^8-qMNtCzOE>>xeZZ-j;2f zRCQbh1FeLC^3>CYO_rHGRlRH2JM4@wb8ka*dg8Dsn52SAgmgiLvb%jCEy`Calg}tj zp=UsEsaIdp_YAZA*r9XV_0?)sNivHpp-Y!8k6VxKe;S7Q4ts3Ckbcn}yR=Q}*1K~~ zhc0b@fU%Hd^fl6kROZ>z)2N^%vsFgu&w9W{%4aU4I@>ldjN~8WV;Cz+Rc#oJM)fci z42iUIFqNYhI#QECD@f6v{knba=`+s9y40T^;^N}|l9D>*I1FShTgG!idd*Q-6vdXA*h;4Qwb}4R}9g2s*!$X8)c=C`C^?1Utdth3m59-+dgZm6a zp4Hie?_4;qf1|>oChkA9PnfKRdZ!X-or8g}z2?lDrS=cDPk3~w5@Dcu@a&#EYacdLv!MPDVInofoT^Scg06Qg8r$JLk2R0-Q&Aw2< zUNMY=lqp`Sn7sJ%3yP)6mXw;ctL>>(w_4lb!(DG{9?7pzI3%Ve)*0+Fp!EQkzMHYV zus>Bjw3v%cx1iLr`(Lv0!dN&nQ2+fyebtc>Vm4ryPSroNN!yN!&W7$dSD-!WXq!&W zPwwBp|558Q?maNyEMwZ#$kdFaAFpKxA%%zmEim>6uH|>$IVYce_Nf~FcxTvI*dbsd zb{m`u+$eSs3!L30D9m3U1O_K|)zX!Vbu1*R+eaUNr1dg|3^gVbI;4>8 zgXs%ux0Yi2)9wh1ok_VNoPW_q=sbf?%n5Q%n$4HwOUMea@ix-jNC0~?Q zZCid)y;kMa={eK7T94vaxQ{S%=FDP)ocm4c(Yxzn7z#JI_9!jT%^t?Wy9ZOjJa}|% zRS)>ie^}>$Xv~8oD zGRy+={O$A4bh18@h~e!F$9)}D4qM1Dk;4{pI1`qvT%-~RLlx%56|K^zRYP?PqqbG4 zQBhU4(niXls=ZL6s67ATbMpKP&;3;Lm6t#7*0a-1cWgg;^upuYf5k%a@ZrOEt*=8t z@CxwiWEko5Uj4iOXvfT0SGJ={C%aiprM9+_R%C1>rp4?3Z7Ici#O04Ig)@neMAMdy zjP0M)-a6IYh4l1fH^V^R=S!mk>Ksgj>zFheq{7D+Ka%hM@tqp}F>#SH*z5u@k&0+b zokJ24XCQ!wErc7Jgi`FRg-hqFnuZ$3=x3U#qQO5x48qC8i3Z#&+ht{~dI^A;rZ~7&Lr>qy> zm_<6D{a1A0=z!@m%x9{Mm@rjF`ew=~|4bPdoGrc+bAB2hI^(QY=!|VM=WW`yegDZp zcRJ=MCpV|*&=F4a1~~Wm$!02~6%HiZ`-|z|NTG5J%ppnH!$>MreHaRlA8pmKqtI9g z0l0gPIX{2-{9@K=?i|vyrmnwC8d;77n26E@bp)(iVWh=b`TqOw<-?CY)KnUmVNR;& z;tIvFz|9d4a7ZGXiGnq5LtY&t1aVHh^X@x_fj*ZnzxqNx``c&6F8V;uoqJo=Ih+cr z&h6c)Hqpi{>(!w^o*UT>I1uPDkI3eM;G!mGgZfs|VxZ?W!KN~e~Fmu>2 zr`wuyYy<6+JVNJ4NaAYAT6|36v$spY8P5JzF1;X7euVu@LJc~85I&gHNKdS|M=v=uKm7- zQCN34xL_*V6KLC2FcskxvQe^)|K*(T9bH%Ms0a`Bm%C!XOB1{>|4Z6sH^3>}}U zt&Hv2rL>Ri>l!9~TtZ~H=VXaV$_vO_v-_44TJg{g8{;-{kW0V+qW+PIfrrml{ji~6 zDmHdPEU12$F_cmHa7eMHy7lT5Y#sL2ATu+$R9Z&LH~G@&3fqXF=JHib)eZg6fBqmJ z8=HotPIJ*JE_E1_F%AjBq0({jNDg8{6rbVwo407LW*y*EKoWiP%{PWAzckY5Q}xoJ z=GoF{-+?`97ZGG#X3op>kdfx0kZnM`f}klbY+^oTjTCy>NFi(>hVeb|)Z-o@`OxVuwN2qY?G+eH4->^v3MBCNATq$l%d2I?JM$ zbC8ZO?K;p~1`QASE+uQh?p50lKW#n!n}+E4=zjh|-fyd;!g6@2lrr`@427d2I6OdK z5d!VI7?sb`aO_mApwIwk>u@&*J9cd8WUF-!`>23gXN-C>qStR+D<6LRq5SZ}4|43p zQSlF+ptF{6Vd7~a=!S!VARE$%QUbgw1Vl;g!PAD_gY-e7!AM_x`Gva9aWL4iqC-ax z$lm>Xl<9~mkxYuMMSdF|Inr5hDBz7ll_TE6z{Dq>eq5e3SfoUeH5V>ixTk{?3uC6d zHD|R!@QUr{q)D4T=DMm$$uiY-SpG||RQaDq206b{p^g+UUD>G8WfhAQD`PgdvQnZ{ zC8=1wiL~zQEW(%vvZvvy88r@2P`w#ryEuP$A# zmW}~#*KL@@q^*>kC5M!;nDOipI>V@e$wEWwKCU6!Sh{_W(b}Dy0pBA%BE>5%?zR$H zjp=a&^TWYVmn0Ng6uFn!_b?PrEF_cWPu8e}9Tj37qHsvgN`5glGv#za8|gCDE_b@R zo>}zYefOPVs!i&Cgoy~OAuTZYNd173$Xeina4_JeCTQxgjowiPf|0)c_FJ`+@Bp5F z#}Rl{Pu-!tvS;ruO*tYxpIrn;2JTA|ED^iJg~&ocox>i2iHa64y2EX>+pE?s-50o7 zW?~qGN65@;4utrh$Mh{a&Lwi{W(iMTXP(t^86Tc2Zk`E7jhi5?yAG8`E&J&B%j$L7 zO5@gj)Lu%NwOwM<8I+M@?5Zi!*A2$>)zO+vxu;Qiiw=Wj;^b*ZR&C#Y%j#cf=(xu{ zechL1L)p`oLF&x#G9xVT3KP&Lq(UBLt$NjeY|^COwH;TP)6>JrX2`db3V7`Z!cvC7 zg8%NjZ`IK-e2kk)BoGykK$vYG`37o;*Y7Z^c?V*$7JV^2P+qyB5us*+^g%6)~~XQnGh&)f_a zSeyo@pR9CJS#cNPe{i6 zLy|aak4(zian*HQ!ou#s#>>CU4D=wwU}O9;q>oFGwCg_7FjRl-?B9LBc!@|@A`yv8 zWwhT^88Bj^VL(44>BdNlj?PlQMQ^FqxU)Eqm>`Fbo$P3l=9XYe>ZAypkq`uwd^lpC zLE`P_DXrVL$hXVUhDdC-etJ1fSvciSRx|Ug?yd-}w6~jS9m3VWvxqE^*dg*>U6(x%l0W^6r;E%IoL; zDH{)bF7r3MC9_tXkXdG--znyL<4zd<9TjLPRNZMuyx(rKX7Y0^!q)^06bd%MZT%{y-^fpxo)Y*W&vY*1zj zbacUmp|GJyEWpu)biz|yrhI8>-=*y->!+6>Ic>^GO;$~FCbGZG1RJJqoG{T&jiiPUXSOXEejy0MLLFg*6eqtd-+w~wq__}SpzGn3={@iTYJ z?h~KO+n@Yb_MQ1wR_^>r7HxQ25@&3c2@yFm(mPp(8kGqg=9zeBINpISV<(IAm}nj1 z<2o)*hI=LHEK4u5nEhksO1P00;R#D6IL>Ghi7N~)m#_r$45n?6RHL3H=j@P}0{3w9 z_kHR6;i>D5iZ@dR4vUaZea1JBcZzVAFt|OgBHD{dfj$Xp;{9e;5{Ucem=Er9suS#%1|(RceIcDt^~l*QU+L9%yLN4NX(OMVmlJ|&XO~Xc%mgD5 zltoHV14KFx?r`U!1JwzDt<-x!4|RXzwS#l1<)1VqM&0C#mo1bXySJ-n?#nN~P)0(s zVJ{I!Lgjn={9Ed^BQ1z(*JUf0NKklyrXC^rh(=Q*ghV1|&UP|@UAuPKcj8 z*qnbqw|f5!^$Sm0En|$N>gyJ)_wC}&WZ|jO$2C|T8%^2{keUrTDKouVv5o|U#N5#c zm^pblz3g5cAof4Gq9g@Sn2D*u=3b>ng)r+U4?UEaIwhoFIe9_JM6TV6HOrJC&c1m@ z4{B%f;sPh*0QHXY1>E117-M&7rudfi>Xo~A@gsFM6jbjnesa;WlTJCZ8jL+fO3R8cql-9TK~#a^x;C0?nj!>*V}R1E@>h@Bn1BqKn6gq5vN!9XdEDBJE%gY_lE{=*=Kc##!7S{auSEO1 zTa_V0;ungWk)8vGN64rNDdIXdPRF3O=rBa;H0~;uYBZD5HQc`B^ z5dYYP;yZD+^mPqV2~n+XTY0&36=OR-!!9hp{q67NxuPWv1C*2EcL9r*C?my6yebtc z*O6B%m<3w4x|Awg!~9)G%2#cyHcDM1xtg|jlD0iYN%w)i(tlW_N+tj3JoUsSWN(z- zE`ic*kdHWxijoOYb0jitqu$%iKL^n9{rK!H5^AL1aPJgVNyi3enBxaY8}odTqLphl zm(t~G%8M_RmqyJx-Vrkau~VYYP)7&i3!s&B*PccKRxT?q8)l;Tvr3h66&^~QnpjTz zwk5`@3))uoY;PW!4pgP0h7mAjp~FnLsc{b2@g$5jg0i&Qojq@stTVqkeB_Yk)nOz3 z^Pm6JSJXW+zi~P^ymv?B;OqNk?Z(wA)ySYg^0jK;OdE*cIYBqI?W7l9df|ba-gd8< zi5beXm%XlYls&_8bWCr*p&=S)sokivl&MrtiW-UZSHn;pI`_P*)Az0iyI(u#GS(|% zuG8=d(!7I{wCOfnB}AVg!A25I(gfGwxWzJU{$82BaKH2)8Z5254U^tO{AIkccOs{5 z()+vlX8~@N$>#Yc&)RA>l{v~#<3qD`5GsM(hAn#=25+TttD?nTk@}5W%kq_LCs>z! z+hDgPV~tZT&!$h(G^IKvN)?k*rHUD5N{lTx*=p{N_w6$21T*1$*s?)h+rLLW8aNzK z@yGzjWsNJGrWQnv=_<-^sAHlW;>5}0n)Qu}hg2fV0jY!&Pyk$Wpp5Hr>?#48#5JzLxEf^ zs~&^>RIOu>?C=Tc;vG3x;-+nqh3n5qM(%ED)yYMgw|ACa&i>*TJ^!{;J|uP4f_>(B znCBjpEuNv%#dTb~Iww#&k(Q;))-)3OWhwbeC8LIoyklmHii@g|iV94R|+TCL9CgF5!5fHvqU8%^ z+s>_;S4U<8j0Ar5)mO?~?|tx|oHZ&Q9z2p)DIlaX(I}7MR!&qKbwLuC#RbU)6Hh`a zy;}a&hSvQ(Fz_ogU4qP6Yh}pTcyTpq-blYp4a!EPu9Z0}PRRN_9~m1bNnO}n`w;h7 z4c^`=GlA3Q?UUr0TMV<#Q8zi+=3V-YmnLlnNVPg`jeS>3)!ia5lrqw(%^fpSTvA*` zc!aK0FcaoX(-w`i3W4;sCM_E@d??m1lRfnS@l}waQ1`H#=uk?t65NBRcb74fI|HsR zdGRQvfSE`$!prW!1=gw&*ibr+)3P zhK(Lp)4IP027YCxOOTMhvN`J4NdIXvHe{Cg#w?WBjE&}bydgV}eks{T-K$==jRsD1T5sCj**Qq2}-%~X{qpD89! zKK+8!uG{pEnTdu$Msr&LBf(UODe+oBh*ON3xaW#J=TP(b(4OW1LtLru;e??56|O-R zJ6Yk_PBt^CWD51ucES!dFHcjAPMta-fBV~Ks^;0TrB6QnMBc?-I{Sut`e=AUb4euN zsBy!!lpWV2&IeWVsyWm=xW7lQ?xznNJMgmwXRignGSekkx$#)@$rjvWfC-b zp~l17^&G9vkn&X;%8Mn+%3mJAVfC~$Zhq&I2{0O5xC)%4N$Sz7Yt|=>^g{6>4x4G= z!i9f|Po6a0p6K8ZVX^t0S79hRtkP^A2}TmDU8jW2L`5q}f&{iW0WEIl%%80}d^i_y zHjwpjiJ2~HZXQz0u9iiL<>byZ#~Gu&A+E(t^_tW>?HB6zD>FU7%rtN1{^ndK&tgLK zA_+}cEy=TAlNHZLge0z&`02YOclBuvHox)Ve?*hw6TiKOr#LK`|br*^K8kqW6yS3yMDDf&lGVR z;jGN6+2JiO&km=#WBJPEe`Tfzl$lPQ`=no3@;V8KTPdMQYh`lwPRUtzO12#OyPWyx zN7?(v=SFh0(;#r2CS7Il$S4U<-Jth)1^}W2E1+Dw!%& zDRU_U0*Hx^JV{O+i2JYLL_D2_XQUJ{sF?VPLSH-7JSu4ms(K^@@>@!Iab+Nx;QhJ)Hbh6Uk36K$Q>e#j2uW_aa zjF}D`y;x!Hsv~cQC9gNqXq`-)x>*uu@0B^L&&syfzmm5<`%&Kd^amL+exf=B$f9W1 zW26L3TB7%N<7eUc4lePPJKmL@$G(!8%Z|&G>D$C3I9t=28Z_^%L1Z#O{`ludHGuut zV^7J!!$ILcAbHF`krsHpX+<4yV!`wkk1)+iH2q-`{kW0zzuJSt1K zzAp#P{vhvv^^?5!)qlh*I9VQh;yEc%s){siJ5a_1WGU0#EF+QRyZ!agG(&#T#&eP} z|DXiM&eN<4)VoSGn#+qXRggdb^+{!<-~I0Q5+9$m%W=hb2ImSG;-X?!uu#j#70!G6Z^ZRQqsFz$`G1&c>ntoz==1=|svp9W;?>c=jAQ zdK)z6^y#OcXkH$#NGmP7FsdFCD71n8mi3xQi`#M7C|6bY=(wq+=~h)OQy`2j_0z_! z8xyU|{@LMPGZUCPdxr#0S|DzoWNoKvjD{V#Ikh}ySFYQ%hcxftY?v%uM)_ySm>@^1 zt&x7T*vi)b-w_7R6!(x>;%V;Dd*VXzjaef8lb1`dVI-I+ZpLoOSa?JhZN4D8PJS!r zKL1hv_RpVW{~H&jYRzWy```c3*fN!M;g2!b7n!!nJcsK!9_(kdRm)0FfA~*1dj4Os z*c^Z6(&J`RnI@h3cu0emeWhZxrdksJ=f6CmjD&hOdh}S?zJ2>`XN}u%=FFZ)Ql}=r zrNUuu&Oe5Ya`|tO;?HZM^;l2$J=WI>2P0X6QMJfuxFn^*@<&kGsvik|#FyyvK-U+> zyC9u#lhe|eqCS|9?n84I%vYUH13eS7+x2Mzo#hSO?oY&!{BlkCoxk4x$=`cdO10 z26MAtRnQDorw05Y7`0v;u`m*v*dmZN46lE=;>ve4+4!ya@dcwc`lZhI51z8oc9lWH zKTP{t3WxIwWAZiUCz!KC!}jq)qDZ4_9Eno2D=p>usQXEpMiNy*va@O5y^d05f5RM3 zC}3xi&rZ!HQr;ONjywKd=cK(jMzrPZF}WVyw2?Q_Q1_s2TdQ;CHuM8oA{5W9qchQ^p9xkb0v7RkNbpMdA&LN>Ef*HsjR<2D*|` z@ej7w$d-Tkd3O85r1mt2ZAk@JWAK14u;jTcml1m@ev)!IE!ueOX&YsToGoCm+hv^+ zAgFDk9&St@5qHh8V!bODeAVuvo~Nup>b`i#_4}mB9Nm23S>Mr~K`_YAgTIo!RkDnX z_(>VAihQ^#Y6SXVjjP>0{({$9a;f9n&1rcWJ-T4@E@TtrwuQ`qayrbP`~80Q1<=u% zl8*(w>nEO6jdf+E8K$Iny2BrgBtOVeNjqe7KzW>6lIyX`^KpEjV0TvA7`k|isDjR+ zo88tnHS0j&Kzl!W3Qa(I;9*L%pnV}*KTBt2i|3o!jz;cZVNcedtBX@7RqRP{rdvsRqH279hS4VgK{hCQ`I~d&Wj*r`a6XpTotdlU&sG)cy?ll?qa5x* zA7_Y9YY~t&AVAgASLS*?!?QbwcNvAzcr4xTv71?U*e+r?`aY!8aL+Beb~Q^8G|@q= z_{Nm}qVQ>9HR)x(Nl23Y#j^%Z2Bi#Nu{MPU#?O<~jB&nMk7b8-Pg*rwGDRz)Bn8tISMLd!+ygI-&CA?s^ww`NvgWd_%33VTdR;q$yNK@S zhPDJ|+>D_&<}JAd&fs^#dt;$mTGVELf1J2#(VS}7sYys2r~i)Z?>BJwdNa~I7S!3_ zTu>1o3EKW)@VIB`u`tU3wySiQ2QfMCBmP6uLXx1Ny~ED$Fl3$SJdK>uYY2SCmhbLv zU1%#b9Fb94T`&dAojg2DK9k@kIZG;o` zXg2fm^+?|Q!)|qJ@-|%toBn5F9;daka{Ij;12S84?gp`#&QPWHImL<<{p6Wi9gp#I z>m^LbRPtqxIfUE}UwuAVE%tFvb7qh~S$8UxVo2z&%ze(_f4@c1W%tLjoV|z^)k5U! zJI4)~9~qw3dj-nB+){FSnAonpG8e-$FTD0VuLWUugO+f6_=Pe88%qLZIf+3h`+09? z^T$MFX}^>4I>%uf$#84IlgLza`=o9P*;v z#QIKVlTr0j;m%Rh&qcgi&5SVQ8kgau-NRgwPCu3((mOs%0~f|wJ#dL-t7t7$`%%32 zpP*n!e?L2y*qA9^&G%G&kIL2Ya}75mdj(s7+lohu(Z4IQ$xpY)klJ-MQGYjAL`Xkj zMb9WLfXqWvCf-AQX2!omfbPXgWG(q8_3rX-Aq8V*$U293vnLKwD53 zG`3Ld&O6k{%*M;#aD8CK;l^>g6CK=zlV@-Epy~N5cuKD`c&@Om=GPNXc-gimRj@=n zcb=+kbPi`W1aWsFpl^-)pE0C|o`1tvh@*A&PfuX(wCNzKMSVtm!l) ztrg#T(O3D78a!rWbJBza(*fo>1x}0vUBT{Z84ftE7k)##6K}-79eMtGBWQ@DU6u;)ABt6e#|=W`rs%*!riK#M7N3^#;u z#7n)7Y9p~cZN-MYLmS}x_5)V%FSWy7xpSd@^tzy`L4p-ij1SFE21~S)hDmCj>oRlB zcwj_w4WVgGwp5pd?C+8I>hfTHHQxT1H6TJKZLj-A`uh=8gs$sT1YOrn+4&wW<&`D^ z`v?IMMQ6uXV>C?EHp7lpBNlTiNlB{jN0kfksj4gV4~&%?WGLxXO5VpXsE7tPK2-{? z`xPvc0`6QfdT}Bv0(YAl&zA4}9LX;nDN?bKQdK2Jbr^p>wVt(@_{6NklID@Nezfd( z%DZgS5{iPc`fdHe$2CWrGrcEWvjN*dpGhPlh;~@kDFmITss_v%L&TaTnok3?5DY#W zvW`->+fV4g1_tTf%kFg6-@MDy!kZ{R&24H7i&|kaZ;keY9qOHeWH~XV6PMejoTDk` zH|k}iB=jS}$@SyAm0_(EOdMTfnCQF`Uhkf@ZQHhO+qP}nw#~D)&f2zZTX(4>6?d?b3e;FlN?>Gbr#1-Ok$FtqwY18Ejb za(KR6sLM|2mBKGsq{v5wz(wVtuYI3G?!UEl) z0@rW1fqTt5>-n@u=F4Mc*Sn}!xnam|Okhvd;OqVpEa>fGzKe*27{VgYLUcumu!UQf zgHzI|7-|F$BQj3Iu+MJ7tl~33l&vv9UzAF0S|x%$i>(kkLm)jYwMd$6osu&jR2Y%} zi-<-JE*EXsT0R}0_p)wkMoW383VK6YQ9Ag`+tXPdZfg)%$yCf$XUds&|JB+78VI%qHM5wyCpzoo3HsRqFkq7aguE!&{9 zGdjuTI^t{fX5xvKh!1;`EAIeeDNy$!Vj`Lf_n8x2UCK@9pmshpiDTr!6Ss0rc{A+# zvA`@Wc3(NfV1<`A(~loLa>&=&B_x_kS)p6)qW^c8wQPQEWzdWp_4PjNXn`?q4r2Tn z^F`_5yr2~?h(oXE2D|hMr_}-GiU=WRoo*y?HT`*677V3lQ|BfymHnl~$Cr<)vaf0@ zJuqk$eO(f+t2ti*YnvB)jDM$>k`>1jZ*r4ULLHMT#-_cTH;3i6tQcE)<@u&MHOtqhAKoeUBVPKmndbj%%6EUs zSY6c-ygGiNL+qfu!eX@2yE9`-=q7!=-6n1TweE?2XEfMW8j~WqUT3qA|RFC zM(8;kg6eo%u`Tl#Yd@RvC*CzjxC^*yFgv=kC{St+|!KiT+tk^yb#I;eg6 znj76>vrGjFYv(zy4T6$0ofjNIEzudW*3Tjm28XI*#Av*QM4}?W6A&Q*B6zL8d$%wu z6T*|l;;x)Tj-pL5{ggPAH4pFjeJj9Uccj+PXwhEvY?zL`@VaFt`Hg(fD~5Wiss>Or z-vi@q!cloz_^ErnR*01d6jaX^rkNO98}Lr3x9o=b>Vp5lOi`uuJbP^UYs#iFja%B} z65(kKj!BbART-~xO$fjHSjjGW6-T9H$tDwO>Z}`#dm9xDntG92tG$cl`nk}g%%ul9 z2kNGh_L}=?$4~X_>i)g6)EyYu%3iXAlhy?CAzp`Y3M}HOUI+_)L)I%K5TTsvZucHB z-A&WVk$Q9#$~ce_MqKalZ|M}c17@QQ%+`)tw4oUhjOvgzg1mu4sj4LBCQLJsaz=M{ ztf0^&QmxTz)NuIA_7~ztWp@xQtYt2u0fZjpTENOJ?iUiPaUhaxW!ODjOEB){35tt( z%le~pg~v? zw@y>ht%D+=+!l!`NTT3Gm80YXPsn#GXI?~weS6B3-&-Xi=y|+bipn_e*Y|woZUYkZ zLe>K`mn9`nFHlw`m_`5Pt63xSO&dEju8h6wlPps~G|T1&mRy8vvIrS_^YqfkY50(3 zDsE(gvbHJBmkPGomT0rai`N!!sYL6m1tbXz+0^j7HNg8!VMuymx;x7AX+izh0fW&# z@e25+WHUqiz7_MZiSv*FZO#S<_w@<$Z&C&^Sg|6AjlcA)xd@Gu8DnUkz-=gNZ6>O6 znes`JNM7O`iZ;>^fxF7rDBze8t@r0umOM-YXhc#L3(T&#jD9_JY5J^bcTG`3=d&x4 z&rbN-g!h2M;E}PeWOFb(pZSwsOWy{vMF#k!S9r$rSl>-mqpEg)%-EElQoK4dZ!wm0J%=3Aojpu7 z?}7}f9d#8QXfWY`aY`IwlmRUKxIEp{{!~<8fFGOi2kj{mx1hi&wLnO>?MT+sABCa6 ziF5_8S2NhdWEeFwx+qUgp%;eOmtHxhMdF&vWF{4bZ7+^`Er*jj)CUUx1b+(IGh4*Y(XmF`GIVH0D{L&fIPRmOdTu>QY|SJKGyn*ON`S%s$mYfV=`!Wje%AZk`uhfScA55Ec2RBvuVn# zm~zdoV&QVmq3Ydpv{aNXb?zu}lJUV5#nU59hKPLNKc*-tD9?fw0(wypJm9i!ZT7lp zoI#`uw;VBiXR)Bf1hec;Qk}@yqD)r{xK9$^lb))hS z8SSNzAa45rRqGB$rs-Pec1BN>b2urnc)os8zNhtdY*d^o#0qlI2l^43~qT9ZaMVUJ@A!HYUyw(v`TQ z%X%O#{C$lsGJbtIF$mVuqX+Nh-Kp#d__VZ4kzQl=CI`vbDTX@w3y6FNYwx~bvZ5$` zY#(uRYVA~=I@Yyl;GE_4kbr=x!tq31xOT9ZpRlUg{$H7AmI`5ipQ>!ud)988iQ`7G zl!K9Zr_Qx2^M*2I-fW=%UvL7q!2$1C!?!KR8!Jw$slG#GeLq+`RI(TK$Ay0qyDCVkE zdy7kdr@+h6d`AD&HgMg4zP|u4U*P8f2$Dl>dlZH_aM>a~Ja--jm!H&F&q$gX@`M_3 z)8*VTb|D{4jke@SeUam_FsfVaaAx&W{0S8z>5PWXmD)4O%shGZG(H?s(=%o55(b~) zOGRRXfAYu2(WxwPe=fZ}O=^da>f?ava^KddSaqN4w4}_K8FQ1*BE|Tw|6uVx{U!s! zM2V-)$cnf!FDYKgaK!h*gB2H@NKr=dz+=qI!;k!zoM?i&?9< z4fBj%)1xdxgs>vSKgyxAbA6_)eZ@1e+BXQ{^(m%I4Jm}iGoDp=%GS}+WeMY9mgQ6a z018s1Tbd})FUYMtY6sV10iz7lOh|>C(P2?2E#|4|!*oiz{G-TX!}kRE5L~|1$_nyw z<7tN8t;+c~8ppgyIZ>w=MJv^I+iV~0olsu`X}gz~g-+|Hlx%9%jXp-@cCN;Td4|HT@ zsiM0!tnl`NZ^SW-1v+TQIUqR*&sSwaHr$g|OquP`L*R}!LK`+&VP;pb%%iAMwUHOp zD2h||QeOeuhOq^CDO{W)tddv2k+~se0WR48AJ7uqkOXf=_II~>qECcDmudoN_UgXD z;zB)<`L<793NWke#9xj(366gp=`3XTnya}B+ZYUDQ6H^G58m2-ex;$xX4Lp_P(Ye`<6O}U(@#!Mfm|GZzI3u^$1P*+LltHf+&5))0+oK~WbNamkQ?5d)5thM*HhbS}c~U7pw3(d95|b%1x#x{H?F8?}*OB}C^kbtA7T z=0=?4w8-_|L%F@uJe`)ELQ@ zWf$WIhz*lPm(`Lb?Vx0cuw+kQ`@=koiXL)fH?^c>{xX4E5=hFtcyP0tiwkl)R+e|y z;9Tu?;;IGx1dobtmiWLVCf~;7mSjW7W+rL*QO}@0EA%r~;lGcsv6liSF9)ab^f_Y4 z;cc_~Zp|14?7HQm4aFKexlz4~Bf_YZXSo~ZvZd$g9ewfEREU05v;VBJq_%u@v6GXpGa4e{50hJpoOZZ`$rTkC+gf}E}Ek}9bhtc1sV z>sa%di;&4RFe@Z&OF-JUvdp@{CJ#QzF!B0@*{c9Dh^P*5KE1O$=XHF=Pq*9AIC5|S zHl?A)F>L&YtT$gdhts_i$^X#_Fkw1${IT)A2+)d1-d{*_8cJ4^F z`FZFadV-E=$=x|8W6VcbD;#3-?()cCXzvDpUai4VN6S6~J{{Y!&OJ zl0({u%ySRS6vz`4m`OqbeuvTnl@kIFg0XDW-po@isZI0vM7cOz+@q@Q0pCf_ ztFQ;r5mLmd(@hWOJm|sWNE%8Dcv>Pn&D3~$)Lm?MZbdF9zz8l<1SfyH{|H5u;LDtp zL%8x5^s&vjtisP7jl7TgapU{~npWsQc#EKfWXdJBtu-+$f6EvlJ% z!y_2%#+(;ppAk0Dr^}V%_zjS+wr`5_XjvrnxAw`LXN2<*Fni$^4vN;M((Y@t*HYkx4XdQwna0eiuRUNeQU z;3-P#`X;qdblRe>5f`P}iTFzNB3h=>EOXSb5iPlacqfju6t2K9Gy*vZ!-YXoFaxg% z^&_c`#$BO%!Z&&2W6DR6ZYiPfkJoiSl}O1nZJXx~+&kwV7g}$alPMFzQ+uZ`%_T_n zovZ+_fRJY-KiWjr-B2}3?tk7BrdAc9Li}YsPg)q+pyG|Cz_)Ktmq^NWd?$2}ZNM0( zSD7it)|_t@mmq1R+c(~AaV~hqr5E>^nl3D3phcLfh0UWdeS}@hNZX7~IdjeJc_Xo= z*p3df@C#V>P62as7{=0NEt*guzU6&c;>EXpMGraOoqrskwqS6l?{rl6;whs;a4Ah{ zK{}xvG?4msP(T2a;L!U_0_SU=&~2Qo>ufGq{PY_nPJEd_Bc)tb+IN?($hHx#*oun> z<1KS~RCk4gJ3zLJ#3cph5L{3qkL8YaLL+@r5%G(j7D{obY+-&Zm48@u63Vg1Se{(G zNU>Zq_&CbLein1&PBsUq+e%1%Kfcmyf=$7iZkGFgkY9;56=C7zFuLTPQoI1_Lyw7| zJC|j|hP5s>>z2`pJtAF!Sj7`NhUXDK(4-YP<%~}4{uaLd^ue%I@Lg7|bje6QVN#3;$L~Q(NHj ztLS7q@-Kb;Xucor3;*&c5Ev)~{_M>S`>vkH-9W(5_~@*3+|Z=t%)juowa<`*v7>)S zYVf7e!A&3#kdTnXpxm=+s2P?j7!-lQNA8D%B@&{HmlJ^gf!(umk z=b~6pRftK4HqQ6+D#GqXILt6Ab$P;0fZ?DxXA=K@G%vW1*jg$-+*R*aqAs~XgI0Ms zQ(uNYO(Mgr(H;7|K283xm_0cTNx3tEpv+R409SE@ zr7Ja`Sn9cImD^H6*=i6@n6jHdDAg-$MGpaQzg%=q?6>fB8ln?w%%cL4!TJK>0l-3g ztY%W9WNe|p=b-Q~$jOrTUKZL?(NHQPi{)wC{}z|76d0>I1%HsfCZ6Y`Y`494ba15Q z;dIMO`S6_(BLB4q?rF!k5mN%1I4WYhO1)T=Zk;~Eg=1wG_r*t*Op=JVOhp;mXxOVB zlYe=#!NslsN4uCiXr3hVAR2qXQxLVPz%~V;n~N#mTu!p4)8vR2TmO|DYfiIhR)-!H zrUa`e(fU{D1jS$^@_V4CB)^mxt11_t3^b*uOOzyTKleF&8Jh4aetZ&YUuR9Nc6E!U zsFATO1XZ#WRW;!(dNLX-hd{XJywOxSD-C}`;XA@cLTcF5Z#~`TXpUow;9sxQB3VJ9@mq@dHe0`Cz$nNd^^%TivpK(X3eJNUtz-}PG z-R!T^9i6 zH%b{_MVEm$wI&J*Up!Pk&sSVq<2z_OorIIE3cRR3y-0RtmM0JY>)Yh-F=@r0CVxLdWYm7geq@Zqp13W4kYt$(F z6WyOX*DYve*TQ7Ynpip=ys#(d|LA=-MD5%7P@x3{<%0x@OzF!3fuh5lPFqAbs2*6jMG z0`!*LMVBvj%e_BN;VtR$udMO>!^3Ze=fw62+b(5{9Tk?~OR&-xF3t}4BM4tFbXo5F zf>is;ATDt9>B4e~;k*r3g)UJZ=a6S#jSKV9PwKZ775XecQJYR)3w`kiKfjelNb$}G zL!8s&vi-+KE+t#1B3_l9w^kbfJOaBkP=U4W!J6yqPHxNXl)#l26i&q6d+_dWW(P@&jU6JeZQsEW&K^6Nja^>+(lw- zV>LIJk-94@M!Zn^h=XfaN=*R^TN4z6wKB~jsH!n(v)<}5dUs=OzQSTmv@++Ll|8aa ziEZ1K~mT%oUCV3!bQmC*zbO!ZHAuq z@@ph|Q!WJW}g!s9NH`?(ixeX`bn8QhORJRcG9#{|G znIz0TKGJ*q@hc>8l-E9CiI$m?2S#2!y40S%8j!}BnXs56dE<&wDKblEx&x>xofNC& zYH3~8-VDsQf(sx`11mIVC8%9Qg@b~9%y*J$H-Dq)FAP&R9*^P`ZT75f`E#@OcYAOh zBa`EPMUJ2;WQ)wKL4n{~1(TdI7oGw++)Ih6D$>tEPurC!jh8&6={)R^4!Io3w(3Km zqEyNo#)d;I0=|NE{{{il13VSPk?#|}n2E8SC@xkA+~8Nfs1H*fFh4H$v&Jysfa^~) z2RBA0N7bfA4}+OYLzA`2_chNqKTjd4Lgw;gemjuQ{ zi)lHqoWe51?r7m|#lz%Ynsx&;I=YfZ3}1g%76WfCF&v?hbZ*7BZ!zJWvJv~m^rZ%- zt`KNC6})(h_=runI$S*-S0XX*+;14Oma8!9k06(&)DT~_BAkh4F`8tSv*F7P()#6c zo;hVw^8*KpDjI3<<>sQeO&q3b!vXzbFN}n>4W;F7+>zYzUaSXZcu%(yqsN@U8l46Cr+~EQtY6uhvj3I3@xD zPk(;m*}Ow~Wq(q8|3-maGbTxow%3@rhuyVW9&n9kdCv}Z%*yZf+1^iB@v2m=Wvg*q z2-q1{9T&gQT~l>?m->*t8EjIFqX(6l6S*erG`-)Rtr+}SRctNQUOmV!kuaR}C+Y+y zyk)&a1baLwF6(g0OdRy*M+L#3-TIO42+Hj#Nr()pDw+F{{^$s8kwK(t5wml zPg#QOUI$Brti}{b@V!pKB;1Y6Jo>P|E5KH?Kq`_}+G*|9hDu}IXUg;R2~%FqpB%Lt z)tu=hRW(Vj&kiC-%=PUrU`LX$={0g64v3xFw?mMvB$Ew3rvs*flnHT&{+OuDYm7ru z$#Qmu-4ag@TS&=k_HiR@-yz;!+h#CZZ=|3ivgqJ>(&&bZ`=cNvwR=XJc`*Q9alMi~ z?~r=1-!l&yNzyT1(01BZ#biT}{+F=Mm{i}jv9~RSyKk6Km_t?STO2;u266Q9=?%_+ zoT$@q!j2Ne&3>ZDRY^1#b3$;9>G|;Bs4%#vFav2}9f^4&7&DxJvQ|?-@IFM)Qp#<3 zVP)e_*_lY{NI}{2#oUpX1oVy&r{!A;{|SB?W`D-CztdBLH@pV((s$Y`lnRUWU~Vj! zSiy~D1ZKqyuC@2`ggs5pLZ_Kf`(T@iRn5ouV6b87EPeanOAB0T-n^zXAqK8bHtAK% z5Xt52;$ozao~)DQwXt&L&gz@bd`brdRjikyk%$Zr1LM9z3_P9-xHB~2fl)3vkERn4 zToae%PE@*52OqB&R5u`6ix--YmHREc-I}_ozk5okF_FvrT{9Cfgn&g-E zJy+caTMHgONABK~G|#i5#&qMo}?sr#({~% zEPdK3*WIns-34vZIBkcWvAKgXcE*tg%J+tPotca=$pvja#0Wh(!px7~eU2BVCo*z_}} zfK+xD*Vi<=jZyk5uluY_4eHR?k~16pQRsj58)UJo#YQw{@OJZ}U5KF|%{v9x#97$P z{^1#|4r|a+pS*g$I)2tqHN54s`|;E)0oPFAR(nCz%gt40x>sp*7U}kKA;xypE83LF z*=`Kc<+srGkOWl3R?X=0MJNuHP#4~^kGL#L5w;z4{N!YE1jP~W_^_?PLVjUpao;`i zkGcSk#8|3azSlco5ZUN!{UN(Ro#EX{bAABV_l+xxnkvDkQ?TL8C?jp;`{sk9_2mP~ zV6AvnAC(beG{Lzb2Ql}VPeK898R|Q;-1tf6g}FSqKDDg*D9v3dCfYrZR2vfqyB$LW z>BC6+KAmJIK2CWD9?AX#xrv)5`k5T`C@=3&g z$36w)PFf~~7D+D=eSBc4xuLxL!A2H%8VwWLsIclVrM{QDn2_iqak9=s;`1-E0gY7m zY-`=(3yZ3ZbpUJg=ti+)MPGLrip#<1xlZ`x66ixrNYA5h%0|&Kz0qGfeIz6FuUvU6 zyD_Pgou%PA$&MFsJ1w{MiI@dRL>Rat*yEZpW9E0Y72E=CI@Q`vFjtIJ8$(ms6omRA z3q4K#EugL8f&ouKq`ZqALq%BO_e(QRi{d)(rziXRAW{*y^hF|>JoqtdY_DM(u0qXt z)DO;!?$r5-JX?To`V5E`n%t3S8PX#!DsI5pP&h_I5LjV+cv zyC&?Fy1MHhU8i<*^dR+1CLYq^vC*6nah*Gd}H znh}A8Bmb(>VuS^)3kIV&ta=&0FNR26I5bA2&`v;^1{Y>{^JlumSc&S03#!W*JfaEs*{Dn^q-;ewN)e7P zD5==NrtgGVi3jf;*9!iYs-SYrGl%H7U}_VBba4=OV`pT*A=%8+Z0~r<%}`4Sz$NQP z@^R?Xt$t4$9~qI66Dmf2i{g)-y|MU?cPuFkcPw0#Cqmg`T9$}c%CW$MLE*nRme&?Z zS@ChC@VqqQWg`ClU)i{lM*eHHUjkoA@+fHSzPsEiE{)Ox5%eqG1ZLXGLq>AKNX072 zOp~s~+U_^BBl0tO7-X`VUQc5afI^YQCD!%L%~s7hItOTLl_aN|va(KO9gJlL%1|#% zyWR4o*Hlz5?ps6*0tZni5*KAX8@`V?*RU^W3)nV@fT%b2Y0{GHjucpwS<|*gZb5TI z#;Z;rfq0QYp&Gn5)#ETVY_aY_xP-)C=v^O7D(fRj;++J#YedB{H1Vle8SST=6)hJM zp>qAH3d`OQIsj8dK*}9=D=c2Qa@%7`Mdcb+F^`6pMMIzz2hKyb83|$9p(r3Zp(CKlt*`YQIy`bqzhQ$V)f{-iBw@KDjC>6%~P&mJW%H(xti7(58^+Yn{c zmx(P^d~EJ7<5V?`b&T#+8{>FBnG%k}Z+6=mT1W24*CfQX^7FuivbuwJzMr#h!pzw? zCx$D{=pv!b73MSsf9$!!bq)Gd;IJ5BOfcY=3^E3RL;VIjZ0rOsWM z>uN3eN%^(GbJ=9g<)EIx19NmW8&2tb$Wa2 zfER)qL^Xy-{!;RUdDh$%y_MWM(Nxu8d}A-gWPZH!?S|uq` z1qZXHNpDFPjyhS!n$qSyNf_3oz0Q{>{9!$G-{1(MLNd$O?8Dw?l{oiIISQPq4!;*^ zQ9iLUcp$|Dy~+3W` zZ&^)XX@f7ZH)>(sW;7o68>a%L0PWb;RtTMvGFV4K6Yw5cKuDn}urGu!3dv;6j~7ra z&6cRn!+c;cN)kmksPlhxQ1kOM_rI(&U z61t~vQuZnJ-zNxgz`AUy17BXq{XR_`-QiC&auP~-pdN1U>b{4zr7xIWZwsivA%Z_f z^pr*3PZ0aJ=O<@Jzw>?^{sMj-)b8N$)ds{Z7Wn;K?!;ws`Jw;(yW`_CIC!N23~d^} z8$M<$bB*~31x+vt8@-zfjjjQ5JY9w7U=7diR~o-3y+wdqREY%#Cmi{c@R9F{&jQAa z**5HOAb8kD;3$EPyOy+DM7P4O!5xkbCoH>CD7+3Q-7uhc1bs{3*ahFdhu89(yMAsC zQSk5;-?35y0`S1!h)fzJ;UI7{u+ z%>5|EJS|a$Khi1?_MbJpOpG(W_1`6(3lICUStt6&hR|>xUvU%RUr-vHV@q>+WcU%7 z!q7q!pJ%S1kGh<4S`uOy$L4nt#QRuaOIPK1=FytNouT(KRDKwVAnmGn7CuaI%tPlY z?r8{6S$I6nUt(aTl=&Ha8SxC?BK~5V%JyRF$I?%A8Qe1*V*s+9O2x+*%dYv-ocC_h z)}g=pcl<&+JINMgdeE=i1Z0h#R^(>=ISg&X$)MU-WJc*-0G+V8;WEC~8mLZE~o?M7r`fsMY+A>eQi@OD#& zOU+h)j%+dbqM%6`jKnG9psWS5TVIq9xa*$NAD*K78=O^@0ALc~L`-k?;@cUhrSBU+ zBA2f~s9R5|i0wuM1V9i@<4(`1(i#Zv&?iygan@y9)utL%X2oBX0Wd-?CQ zuk<^2m4HWp`nLeF6rSvc#IM@=fpwTofB;~0@dj(dGZrAc#xEU~)gnOX-u%Pi0Lm5U zj1Y$@-b=SKAoKuE()QogFnHdlKcAHjsUBPU;L$`qKu1Uz?66;xRTZ=<&RYP)*ux3NHLo`13ks0ZiLlJ>eR7+(ic(>k#jxep!gw&}QBP z0BKuz->ZUWk6nQ1N66$lN{#yespVF+A9(=KS5)&4v!Tz|xZLVPn`*NZPXjt)&$h*# zt5Mx{`tfvFrW5k(!~xTH9(@FKz9z7uG%TLxTYT*DGTO^X#(rhkc-`!7$4L0NYF7 z%t5-L1;BOUYO|;Z13>qEn{4DPl>qZ7 zf1?8CqH*?D4M%hG#{%X`C2OOMQ@_e@+*T%3Lg@o6W2c$SrXsV$f)!K^iy{5$vCXs0 zS5pswyKt#Js(|@5&8Q314mhXZp{s`#*JpYKMz+r*K!;CQRuD8`TW^8^P0rr~5IYXQ zNrFb$zSay=hlN-Oa2mA!m_13ip(FsVBDxNfx8XnY+9c5NLVstaaD}y)m=pjfKyBh3 z;*XX?0W&5yn%J*H01g1p`QfCc?*_LDNbY%)uVD@9Z*c}T2l~c!_cv4bKVRc8FLcv7 zf)5w`Kby=(@4!8;k9E6;kJ>iaINz(GKMzuDn`?MD(c6HfdzE$~Lfa=lSv^1CF`7!+LZum4zmh%Sq0&w) zTalsO0x%hSW?pLoL~Wf4oO+!@tM7Cgx-;AT zqto9ze1O{i+t8OT%)pNKUu;hPR)*F0+k0sAC%!RC>1`RnoA3O%qB%oaQ(t}z0$@_D z33e-?Kgm-)TcY1~^Gl|0tc-`gU>dHUzE~KJTtU>GHJiT`nz1W!T2uIkN3e`IuMeus zhh19xKM~A8K5SN2gk8qmQ6&(SurS0fn}!)opq&fMe5*KTzop-;JzP7(ipw?M{A))VXk3EfDO6 z_v>FF9oa@!?FT=DP(J<6?%u)pB*V#PVvJRojh{{^4zk@-djSuqG<;(Vzv9e0AIi;OlSLpM1H7TVH(`&}BIapvQ6&FPORrbWH2(9SF$ z!NR25Z$G@wkGHVB)SCO5Ix420t}!3Q0Lnle=|+L!5W-(@bZ;&E$%0ns??r)WXA>xG z{$nd5WLp+*0X(3U0)1E>g&_&yZvj=PHOEE`1aINBuQeC{fXR3z>WG#3(2D_&H~(7z zE_@tBv;z-e{sc+z@o^67fg{c>?G4vOX_~ZS=mju0gtSQy?wWPIWtjG%2YtspR1=Es z=p$5`Ms6qa!=_ND@H3_U( z`CBG!Fg}AhO?be#!6o9m(`U|49zcS_escgbNB}*=`HO17{_xmGXu(x(847IxZGIx} zbtjAfz}<4yg^UouKnD3i{K$TzteXHv_BMKMS3^+UD5x;A`0xaJg0eOiY z#{fKwpt%>k>D72dDtg`hGae$I7yR+vKe_emJPR59?f~?n1^VnXNMTzl?`l0`9NE13 z=rFtJV=L3Z^Q;KgRpg}4ezigIqyk6wUUCKnYei;)Bw9Y(!=Uy+WIYca7ZIqgKXRWe6o9H2fQ%im9^ji z#|4ozYI~P$VJy193Zv4>u0q#K(w`;AW=9UJQqMk;LDw&d;H_6*12iI8spsy@qVH=t z!F)UO;c;I@t}7W!pU?}1sh7!F4G)0@ZaFe&{ncahNDloo&7q(5e*N}qr+38C?YaL3 za>>oF8^?APdl#TLOYOgY_5n>Lxh^dU?Xx0bKcm1`pN~To?gBOdbXWD(A@wzgTYD)> zfa7xRnpy3!@6h1r^+Ip87tH%|zgXmMrhc397I5!j*8R?V`*Ql3M{sKdUwwk4#=Xh; zCj0t6v_!N$2FS`aR1ezuvDN%Od`_}E2Jp(ILhB~I%>`xsGKGB&8Fn7WNb5~n`&!>v z&u_GS25=%_`iVaBb9$4T<~cEirB^A>*_Ax{ZruMK6F~VcVfJS~SZM7Y{?VBIJ`~*f zF#!bH$L7ULFa0U|Em)QONgUT+&&p2U&xImyP!s?$xZje|>DRBg@9g9PZr=p$bf4ZaaJ`bp z8a(umuB%5KP3QRFuRbgaK~kWEK0nT-yxiB*U;pv)B?V~`0k&PT#{4R<_91ZrcJsZl zg{r->B{BW&yS>3&J?OZv=erZ1zud=ahaC({P`r9@T~%JMYAvDes&V}=-Mp{ojdPOMez1D*vgck3npdI*XlGyF~!2V%RYC z4%})F-3iNda5hsGeO%NPfrEme6J@Z2N>>8cBCxh_wmC{C75`???5fP@Ng2#rR3T0G z+5tH4QtB1YsQCRD%w6hL#i%|Wppj*F8ZQCMUqy|xWWb^k){z}#0UYqxR?nY;f0X9uANNW!Y#meU~V4lP#O4gf3| zjgL*-Vr+1G7=8^3;|4nphR{+LtJ}x_c_V`(g`>JSY`*i^; z+YE>2vUcC9eb?_TvXN<<9(whyNBsO}C^H0F6F1;Y;6<}wI^3_Yb=RP4y{^k{NvOi^ z`H42W$X5|ZI;IB3*8`Eh0cWzf39J8s0a*tnI;k$wHw*923rWtvYPo$vu0MZo@6Vg8 z)6$|}u%Ax=nZ294fsJEIzR&QorsN->ukY9waD+D~u*V->-boSEFp0LQxlo6%#IidQmey{p_<|&f>$}z0UtoR0%=h4=V9ifquIqRg~W#< zmU1OzN`@c)>pZs}MAn}{3RW1Tp9%ma62T-aAq~c`SYxWQ22;JqkIt-o`lO$%|7R)u zWcm!c76=WEAAJs;;4E#1t}nAlsz*u(U}BFG4bt2WL?n=*Kas2V&Nls((mx6?P)jb@1KpR|;@YUn>E1m?D#w~;7YHlm(K z?G~p!orIhYo_!4Z7uV>Xuhp&xqHO&jSvTLfyNJszX2#~>sUl1QX=&hFAV%HF(rm)_ ze>~+{jg0{el#x2T-RETJM^wMpbaxz_f$7Tv=_~*A+jyUnrW-H`tZy{byD3_s!4t{b0uPYC&)Oym_!}j_Uzxv*>raB` zZ)FDn>^Hyz%U{p&uf%!+0x_P(otX8t!2;@VombqA>YE}ax}IX(18!Ga<8x?;Y7C!3 z=r5W9d;mZL$V-7kFeM{Bgqgwu5cI?S(!d~)01yxm02-B?GJx`;`XF2Y0DB?;0PX+) z0LFF}Gz|1KEc9%QG@??B;u;d_G8(Ql3^ep~#s zCN_4qPR@=7&K7pIbPB?X_%!&!zpVH&2DS!fCN?Iv&j06DGBRwRr0X5HZXK? z!nd$>GI4aKHMTQyzv?n_E}3ZI!{)--XtDV{sg9_U{dc+1awR*W(eU=nd$R5Hyymtu z^8z7+qP}n#%|m8>wA-T-#I5I=l;q6 zsk#=q>r=HGLQTWVYM_vPp08wAeLC*|43wt^fVPP1xO!8mS=HN zjKrdRW=E`s@N{dnIyHhG#qmW;3f$WRF7R;*Jy_ar$o~JbjvU?31DesC{S%J zm1?;!>vU{^DKf^+t+|Zo0P!U8v!a}WD7EAg^l+z44`ZAc6uaDu<>Yg6Dv1t8au1tA ze^0q{Gp@P@c=$-fkGE;oJ6@zRvo`ZY20xir2rI)tIBMDqgk5IzAeUF~XsI@e%d7CS z%%T%!eY>)$lJ_8U3oIRJ5S;iRi^NW8Kp05&Q+MHAwryfg+(&E6e}$}w&o(^6>w;R0 zR=@Nq+|DYki5=Og*@AK!DoFOPc5_J$g!u68&&kQZ| zO4sCKoc$K~mZSNG_sM1IzHU+Phtvh@1fO)GtbR5?8)d|pvC*#<5VVjQ%eSi3tn%!< zuden#$;ObBo}?$4bmue)@3HSck52POq|LSt;B-}nxkVE1J3 zz$cH($AS-?6^72~3l8;wlF2#~;mAevVyEzHA}LPSU?H=n79xf@{w~Yok%Z3U9;e(Aj zbCOlH(FELF5>ENd=|Mo*Njt1(;$$H_5{wpCi#9I;?x?lN7>`|~T<&0eWSQiw!aRaf zFNSo*()U~F22RDDnUHie^o@2YR2hk-oDon3uJ$!aU9EhOap*QnUAU43LLu+x@-|9N z6NTt)9F+m8aB~NiYrEMzgmko-v*PPiVS43IF=&Lrxx#^d3|3Yb_Qc6U#E5B~Xz#Wb z(UNU8s-^NN*msCENnBSXkoZ(h8Lr3ip6EN@ zj$KgxG31}D3+M+Idr>4%WSejZkOMqWkidtI1AO}@Gf1xEjnM7C(%peP===|J6b}i@ zj@TJ^AUY9x;t5RDIqYM2fF&80qKnE3&Ik28=&v{@*x$yo7-c6uTBtqj6Cj^PvVaqRM2gs^4`pkm#v_TyJnO@9XkH z>k3z(Y?9Ehj^5YgFpU*JXPXV|1sy&49CAn2bM2sAJ1yu&Pn&M&537CqkV38JO}_KA zT}cXoqPli32;-YHXlus9dl(7UI=k5LjaPf0`okf67ZZdySN+=jwmG=)uy;BU;>XVX zJu{u1f755$V&q?qhd2Im@)*lzNmq6n)X49v@a?Ric;Q+3PICl;H;u|oBurc-(;I?M z_BGv>YujS|{R2Sy=2Dx1O;XqSb)%UdlC6kfuwucjm}YbnTbpgGTAs68(t=PohtM$S zk|i7gFi0B#wmoZbCH;AHD@DmP=1(FhiAh)3?i z#hhE;5kVU2AQL-1!~fRX6%<6%c0RqUbyH)TOn46=?46=T>zW=}=`gCKcM)D&Hd%f| zE52LatdxO24yOa@tlbyLP_}f?!v2DgLd!N^ma8{pP~tpd#BE4*-CKWf`+|rcm<}0f z2OhWGM{H+Q9#G^OgB?3Ng%Dw1PlIO$pKI#H#fGvW6sZ5aZj(9V>8e!K1$nR-w+SgM z1n$!t`^9h~2JZK9d)uaP{|W{=u3-phADct74%Uz8v`2f4NMd7t!AIK4CP~B z4Nh7>$Zr!u@Op9c?(lmd)wj#FbE=VYcsUo2HAN4vHV z5EZlBqAVXfVsH&c(X+OVd9egn&F>42XN~a(NEqOHQYHTgw3FJ%n;HAlCORADRW-5A zwNp&bfcJXOeR_37zQrxvvq^9I&YUzI2MY~Obwn0#9yF}8@IC)vfQ5Lpsq zW`Q9_9ghQo4d^QDi(qM&bM;oIpUIAFzDv}#+k)zdNNzy1YEnBnWq?+$)O zAH(|u`x`5h9wY{|WnflcuFIhPzBm_&oqecjsl%LYVm|7DMy8By<<>_z?KL5sHhn#| z95T7G-8M*uFS9B)lEs~aKk;-8)zIb*eT1sa-Ht5-PtzDmp{5m_dn-DjR{1@&Tw3s# z$skG^EkSshGw28&p2Q$p8v0_4OfEWqV0SL;8Cx7xMJmdRhY?wdq6?y049`t|{a_3Y zu1q{d_amkhqBs58pejHWedFE&?(^tOOR`-i<_c%844)Y zX*h21i+n$*c&+Dny=zxv3OrJkxz8L6YRAc!+-YTDBmmUWS`~!HsSLNXr5yH0;8RkB z26)J4I~>fYJJiz;AhytM*~<$+kv)quq({FBm)N=GlZ?=wda_AUP+9VATJ{xS9;Yei zEOcoV>93rYf;JM==4QO!5sc?;w@kowl#i9!V5Phf-C-B(`+FBUxytKRiUYa6sZLf* z7>-bMEzKMEL;iXbkTE*@6s`&cK?@MQFKj$z!<;6O*yC$gfX|&FFS?eHc)%scF02kl zdz_2mfn{}x-lCPGXd3Pw<(UbMtGQh6ebS@HR*9Cg$Zy~Ml^2sL|HUkWw$jdyCfzYx zy0T{er^mTWP;LE=f>@R6!|4(tiFF;!>F$;Bo-!inuVpewmr>-0UxP*OFJJynfXo+8~Rfn(M1U&qQEXUA5L?Sr)3UgP1s?NGv$IkUW#H9dG@I2eYUYzowe# z=2L(zzR!I8r76j9mhQV^dw6ygz!?FT5VE%LiCTIr*uh+=T-Gqn&Wt4XU%|e_{AFz8 z##MHoP#-4EaF-59vmYP!QFlfP)dJMKc@ntW)c(#hUG871?WzL51#f3<@#2#yJQ#(l zIR?z_t*baZko7xs^N&19KUJgtdd8cI@*uc&jXe^)%?S>>z1{IpWR`HqekVc;t$Xe~ z-R#n``_F{v06hvyo7Vx0FuL4s)@LfN$!dH8RQpJAY#=5d-iZKK(0D~|c?L)163p-) zVOmF4sf*?W{Xt%#3qVHw+nbXrhD$5za8M<QvP&eWOtHeW$z z3U({r%yxJEh+M9wJN~(nA|ZqY<<8*8*lBr2Dxl3D4)gomT;+55`ML=KT*Sjrv5Wo? zmN^2E+H)tudp&|6%^2aPCutx{bV@%jKDO#LWw%#(Qvwk+s=Ja*EPT}&(2HH;N&_1U zp#P{Pkj%xgEPK6lW`J2R>~SE8FS#In*CvIt2o3v}t1UB#YgCqLTwk**ZsOCp1&+$q zR*;jD#9pJfVun;4)UKY~(=cJWyM-G`hJ0{B;TkN8N^i_f6(c;BVG(|wWW4oRi@!SD zn2c}5crU&|#}>A@J_hTX2sA?3DIc?tz`_Ey+OV(@%^Y3JR&^w?nptYs9>kuYyk~(F zy3e;8^IN?8Mh&ax=H6_+7mJ7oFS*%7q3vL;7gYFs*`)w{KZxDf$(y+8JuAKLHJIPR zwgDQ_AsaNFo{ZZFr8lsXe`6i2F$kQKl&eS_q%7vXFV+k19$~Vq%GS@EIMt$fcEM~O zjc|$9QTYHRJCU9YUA^u~4{r*_cI(77w_^oJhw8ianjp1ZJbsOc3{6UB?<3K2;cs+! zBU*=|9N-7P6dUUZ-Hue+YkzZWjMUv-zi)4GS+tXqO1o4N-p4~rD6)tF7QQpu*34izN6 z+BZ~6xIXx6R-f!XUyWUPVqiEy`}t|z#h#H%{n)_2on$sd&!Oypz0x6KQngt`f0l|= zSvtK^Qe5{ujedB59B$iJnD@)NQggV{ZNphIp+?^mI}dfpIad-ulGF zyu|{3wVoXK5W42DEzu39L`&izt!goOQicFAcB*R8>CpCR zr9x|b`11n;sO|&l9)eVJdN!&xQ`Pz>L)*T0s$hAT)8LtMOQ%Lj0eo7)>|2rQkkqvx z(M9%op7bvV!(;KWI|2))(~NQ!XGYEeC?Yxc$ZBAc&`t4YoiVy+kJ7OL@4oR zJ#Yp!)LYUa^~rt_B;KUAdmUVLC0V5f2+=j{vTwnYDy%&VeVRUhOb1w-5u+Di>qhtK zACWiL_6aviROA-ro$)qvE6^?WfwJM}am!K;Q9Rid@(EA@tk5q%!9sX~Qp|h{LxGDx zOUP-``x%P3sm%VBS(xHGcUSD8cxs^$Jtyk+AM!VtjdPA z5IJW9_MwQ`PR-a>pZ;o8s9Bf#OAd*JI&DeJ(64M9ShfVMZcmotslAg&zx|w(!lfRF zEAWtYxH=YyZH=b5icKO&JHrM~$|>ilDdxUP>sx<~Du_LLlmmzgWg*VSZ7;m>T#I~q z7&=X?9<~x#lOOpj@o4gQJG6b5dn5982t#(rUVP!yaRz+Nvzz*H{#0D0b(kV>kO%5% z__)HjNoo^L`7PT#Gt}Rfk@{a%N1DU9l{9qrJ1T_+T}hCo57FbFbQ@gL`ninDw#&H4DZ8IL ziMaP!II=m0o;RnxIWM;JZMw2o(P?b#Vw^iUI1Fdo?DL0fOmemr2_)D}V-_lsd?gZU z?*}I*;~--Lg!@I}63BvXSQ9<5Jvohl*-52uqr$t#3b9E$tsGJZHzbVpH5<6Cw*raQ z9w{J}d>$KgXHTINIRl>=7bhrvq&NSyaP}xS+E3e4K+;T|msJF3UPXxuD3%z+pc`Zp zN{1vJhnK7-97$H&$EAnVL&#bp--nbWy z(?4r3>Fjk*e8i+hw|?*tinX}*=1HqIWIlZv)O+Bj$H65@wA+2c7k?BUZoRKIo?!^i z2v};xkb5sBmUe%+guI1rPazP*unQ`p{8)&b8)s}OPXM8X)~-0}QI(77*=I~oZiT(V zS1w0@XkB5gtY&F%588%GthCXAY~8cxeFgfilJgg*=9`58f-nb$hk&^3@j{wLD`qSH zE|mVhkuo1&%@hCoRGQOn0Ccl0c)OQJ5R$)Zohv+W=WTDZuj4JTF`pSO?W%ZQp+rUX zhkGjFqFv1#37B%gwJuZbx8kdW19`8#v)+^#+%A6gp^k^+=ekhu{M@A%|8Hj;DAGel zAEO`zKRFyW;B-83m$K!3Q+Cq)MzM8l2?bXKRA)8o%lk#M^)#`_NFZnQ<~6C2T;VR2 za>Y=Fyu9ZK$?;wrWf~+IRcT1LO`P!HF4wQS?7VKGN=1n+z%10<)*;X3O2pcf~-M3s36!T^SL zsu;mlP6}|kqAG&N2VpCKHlu^X3_NmY?^3kIB|mh;-p#}I;3SL_oK4LnU<6xv-^Pzz zOkS=8bi_P^(gSACpYbSal6KF;gyI3^+`!MYRB4HSHlM%E&OFCs=B#*N!hy2%q}k+j z#DRpRT^+Yz0(nmBSR(}9P=A#&C`2n1KN6Eo3JD8@=13*diw_y@suYH0dYukxCk?@UJ#;23_I&>)D6{woR**KQw}5*j}zG_-s1o`kHYX~OfGm^jxNZp@56 zS*nd|Oy;9J^E-;Ql~oa4v{k9tql)@BPlNRmU7jyy8%`joP_f>6GqX03sW9ER0h8y0 zv`}O=j6rLTpHv9vq6U(Z;d#h`gg5pQLt2DZwbVKP^I$D78Y)!|vqIFZ<6vpj%haeh#yNkj&c4;~Jmjof%_T?K=lI zWqt+8Cy3L33Tt3BCZneAxa}Kq8;}0R&!ywa6$7Q1Ul!4JZBu#yqN9o%+h~a8Qwso(#oP-b(9vrZ!Sav ztjx+hlsrZ&BYeI%>ujU$7m{=gfJCkNxCjYr)pH^kj}j>PKoCs%KshSC`p94|kpR`Y zn4o$BF9YtMrRqFNelzQD$(dlRCJO*-+f8OmLw8*An%?xx5GK8f<(&8;>qfIQX9KI7 zXU}FdA8i9vC7*k7rT8B!XThHH`n`o1@3atw#bpwAed;PY+JLoMuj)nK>efLix-kIr zloD$4I)7mBSUmE5%%PO#y|4MKrl=(b{t(NjY<0En$6qoG zSSM%a@{WhUB57Bd3}GOBehaPx=Pc5#7!Qh7B}QG_ZtEldruOmv#iqAN%KA6FMfr9R z!uadH&oZ(l6_;mfSUE}c@2!8KY1qKAe1fw-Dt-xgPevhkBh+nIUa2_@*vRJ6@OvxP z6_Yh?k-P5+CkI&K9zSfZGp8-xU;z*BPdqfTr|}M7o^1bA;7-Mwgo(p^F94zHBYRmN zPU4D)t59b&5(3B}#Q91RAoJ8D*1>O?`{*?7^0cJ@5fQv>YM#y}W(N0_u~0HFomxWtlx!8wvaOs|~lR=$+0K=GwU zcnez+04rBOp3!8WWcEb-XiM~)%+Vpfam=xydH!l7^k8Y9iXTOz3eibKf@?u{1U?UG z%M!1g;7n)-?1YG_dl2qJGtsnn>T8pBb|QCyYno?Riqoa0Uab|~(hyX5KGm zr{ojtRGFS>@&4h~kkcpqvl%;S?oOc>A=|9?uZJd+IgWh1^JsPnVu3nes8ciz5g`WJ zKrL>_#T(in(Y4y-`EtG7eVkjXE*HP9nF0V6#~J|Do^)2AwOtL_ z&4}VejSRuIa$T93*pqRR`?p~Hnv!i6%c*qDNkO)AI z0u@Cy_nf`e^H%-yz%$k6sh52m?JuK@*9eHP{j;zG7Oe(69l$jU)VCu6bcCKIl~ z9(R_H%sS;dpO^v`?BAL0JUfOKK>Axj;#r7iIZ@OGIP=XlE1lzCOYFX?csQJRU8&}5MB@u~-rKdmjFNC`*htNl&VgR8VCvi7ASAt? zY_urPgZZt<)N8die)bT`?Q9bZ_sd4nAjW$yZSE8%PG#OnVb#77JGY){ zv46Ikg6HOltxK22-*=+lH&U^#Uz)%f=2HRn0~{p4PbFeE&W{tNQ@%8NrQR z6@F2MDcFQ+?}C#QN(%wG9TqjRy58*RG|!`7?Us{DXNHHW3uENlO;ZWj8dhGJLHsPs zQKeJ-h8tF2@mDh}hk!gK>&-dBXk+R0MEes2?_~YSv`6tQQ|$?~(8w}X)6G0W?^bZA zL1da@rezt89;obCoJYTcB;fhHOf?gu$EE~Avr!n-aYKF1alzEkN+SF62wS@mZdzOY z8F55McvC`Ry3rgZIEa+T%`=_)a`=yd7%~o1C7mZzp z@{l|-FxQ{p(W59A2v>SjEXc8_-nzg0jStcX)g1@xnksd_zELw{$U`p89bI&FlAEZ> z*rX25lVA~+B4Z@&dZRqaC&Q@}viq36YmaQ0ihaR14;@{kUrjS#zb-L5VD+I9k6d6; zArKJGeCRD~ibcnLG?$Q$-wwbqb_tx_V(Ag#+anrOfhRIJArKjX`dmR5HmtBXDttuO z*T*V)`2o*bY}TvVP~!u~-Og1%WH;D)Q<1G&UE%pmW~DCJc;Gg< zG*^Y-0>ke{8H2J&gk<)I@Ars>C+3;{rDhKc;HA}6Iuy;(w*$A!A%=M%_TJUSKN^l} zk>q+C9;y$)Y3z=?lszGFJ&dh}s|?^iG6sKT{6({XvGNDnx<$1ZX%2@;S^12>m^aehnc_r+j!DhRMwfqFnQ%a5McT z*O_;gm7-lODEAO6yd~$|q&z)=o0sJ|g@re2##hqNRu0ea=|n<+-?S&bt9zEF^hZ%7{2`ewppzOB7p) ziA*+2DRn06!()^zKE|-~;qc08jB>0iwHYFixRP9H!lE#5(VDNp-~d+6RCT_jd_slZ zC{uuRmeD^*<$XjmKeBEy6x~9nebQ-eEgC8g+7X_#Zrpq}7=u?N2)kt)8!JctMv>q5 zn(1z`^|0&{pzL^75~uUHeLOJBk7?!c&U<@=y}os%zBRsT!r4CQpiZI&8_BC_67WAh zcx!VnK4dlSf999+#t4z*90^D3Ei{@sB)l|~XAF?i6_k9x2#dVBbwljB4?zk(u0jHH zDDSOeuv<)EN-O0`CfLapqMT0@qWDM*0DVXdAbCjyCcQ}n#&CJ_E@eE2P-INRi3{Z{ zSH4` z@0=j4I#yNUp2|hdyEk4nNfp!L>a5x}kW?3LE!R^~#+#uxKC}o-fC#1RVnOTLHH(a` z-MkJN-6|Wlow~Jdc%66#NB7rjI}ELZ-)bv&#lW zB@ZW&gVeh`gHq{0`iS^5E7R#j73Hw`s$1F|;9pt!+$I;U2`kyTXiwSnniyRbisL|e zOvZMaoOA-hT6RziQ6-e3xqFjTAtqfc1d$2QdDreP|59P(GU~4?@)U*L*cM@r9t-tOmTU^vL{h1b zMVhOjpK|g#&_?}KS%acPQ`{tKu+QrmLvNPd$tYk$mQjd{hJ5zu0r5d0anO``45cSv zGs%)G`UT;oTA+q6H0c&2P?S%1M*ur@(-Msj@}hU3^B@Cyu5ndvPR<9#B3IXA_eVDk zD!|?~1k*7YRcPCmMzqPw)a|4 zy#9S3p_(wdWqjIfIR-?k5(^GRn*k%*aPOJa?5Zmvm!PPwS0uWCKNO$e7j5(9b;u5z zTY-I{T6ZYZeDUg#CJ8fi9H1|}APt=kV)AtFJI?=Q!G#b^J;ynYeTl7;PBmyO^CXbF z%g#l5B62xGTm8?V2TZt5ys1tK&b|l~jZD;E^0vQ}I~L_$Sy#FiM_Rp;>h5)>M82-5 zV~c*tRyH16%{i2AZm!qH#Jv{`wE5STmVrm5oDPleyLSD->+{0E*cWM0C0=4vlJ{|L zS#X*;P77$cL1UhL1RMiB6SI$FJHx9ZP761L;zWAMxV#Vo9QWtcvZAH5#X8L+ko(T4 zl+N~$_*-}zljxVwO^h#L8y5!^j$CrI7c|c6(H#}+N`X{-@764Suosvl*TgzQqHG&< zmQI4$?XbHQvgx)~q~>pcLAdSs8|0+wv^${HT7c4v(c_WP(c{@>`wAnY6)As68)&!> zl26UpfIOYLtxeMNWA@W{Bp%OcoimMX)2=RT!9mMR1NKd_lO6#Ozg9I4Ik$-dylH&xfm-2%MmLO3Xymyf|K zF*XGA+T-=wOy1$m1@-)k_yf3Kf0Ca0!BY8S;9CRHm&9*O^>kK*NoQTI-7y3MkxgQT*k9ZmMFKgU{ z3o zAl`=fPJ82XuQ#3TGU%EUCEUu$$Bs{UbT&m`9bOLuwStzNp^c@!M4&Uk(-Q#dv2ACo zgY}(Fn6unC9#r9dY^hLiF;ysYHy=LDj%b-z1KS`X@B2a_kbMv$@Hl7Nb9ze}In=ZR zvU@UQl5ME^{qR!EkRn$AYBAlZeN+9GD(3M1kcK&xMyWoUZp*$5S!I#Cb~s;wp#5i0 zr*v=#a~1fCapTX3)$;2U^t$gb0^?y*gSW4^tHcGnmDgP8<#s@c7#M(>R%wh4k!h5X*sSJkck#v@8` z?d?nD9WO(g70e|X1Pz2kqWy2CJs(c_O&9naA1vO;Qn4zfC)$(lL*E45rRR&kd2nBB z)Q6}8OBq$G_KRrYTb?3?UHiJMmPJm#EiMHy`hH-wIP zm~Rh5d7zwHt_J9PI?dsV1a}{@z+gl)@Vvr}HzRs`f65xPl=BAXu5GA~q5HvdR+CC40+LSVo;3R72qNFsd;AX{Q3p z5YJBkywwHrc#6GEIb--|$-k#qqxXvwtvecAASvtoi2-osb|~Zg9Bjq@;_h z$K;{^bBmte(z(9*&wUW$dH1AxuZfh$)b75WyZCo;iA};Tb-07SnMXs74{Hmx8LczN zMIam|r4(E*_X+L`%KMrxajn$jAf6%KDRWUS_RLEe#d8yYP4TZYGH?$%$wP_G(j23* z*~(JA$@3|v-x-4oTvoF2d zpqc8c^(w##Vxk(?PyoNSs2k+VNl}VGEy)7kldF2he^oEq=qVqymDLwI{cByf-BM$u$t^-}dk!!Es!Zg)a5k+sh#N3+>5-bFHUDz7 z_Y97fc{M_6D+|MY8Jc4tk4(atwwk0K<=Rh1lVvMNjDQOC(8?x879ffeH)@xd$<^)X8Z|WN@_$+ z-gI1qYqXbb7kC1{uPYPP1n0315O5%-L|`C6us8aI)#ah#(Z#v>( z?cps?zkH}ZR*!~&1t#XlzR&ei%4W19b86`J528Q7oPYD>@Q}IctLfJ6AOn%t1VBO# z$8uY$J>+$Cy@>7fPhPmd)nkV_pk8q5FKc z`}@of&p+*P{cV%C9K@nq(M8ob5cb{JJm&m&ecu5@m17v8In`_%B{9!xUQGehqS!6a zVDS&`3RZJe*H4N;5i@z>Tjz1kU}+tBqTZV*tJ0tju&Zc(xA~wWnAk?K;n^eKtr%h0 zO|d(%ah7&sbXdgdd8c;g%X;OGm`!eXWfO&RQxMbf?JkwdZp=HlJcN2Ej&D*X1c~s- zC7zj_e9pUZ%+~he9|3zZxuJrZg>(yaX$W21zG-gHS)Jb521`_3ihLOc)LD!yy2<*LeW5w2FI+V}g7ewd#dH83Qsu%Vl zRCWBJ`5m~qebm#}PjX#m!fx^_!^e9fg1;zePNzX<<1FJo)U_I%D4sd1?Qez~_#JeF zJUq+x>CU@ourZ>TC1vd~gitlcEAWikOhdVpw`m_Z`B0*>E{NTbIEtac$3~+91xTV# z6y)TlT$sgTXgWS3Qr~Z+)iTlbK$|QPc5aRihD#XC&=A=Z%-QH69y{F!Ysv)$od%_& zM55tDh)dI-Cx~|JdhO7}vLSaw-Iy_di%-3cl60c0jQhnE_S`FKE?MeB>M#LyuuH3k zUFX+5liV!^KD5)5XAdLQS3B&Hi(-=b$Z=gc?JDI!dN{G})jU=NVq)#@tMeyD0Xq;c~yoPD@v6Lgj&r8-%)Ame0% zrX$DESQ?uLw$r1Wj`KZEB+~Z*4HM}b)*3*)vJf|r4jfos5Th3%hm2Z9YG22WA1;+N z$neo}YG>rIFms&8INvyRLqBC8tvc^k$^b^PhU0I~z?cRo5Q8Fu$-x3O760sH>KG1k z*la0QX=KcA_0<>}{CYbdsqt$T%s1p}PNA&&jKe=i+}p_jkqv>d6zK_7{b?j~nKGlK zTj7CVRwd6IkFrrD<_e^%KywdgeuQ-xQxRu2m}`It zeKfeK8(l;dBU3ERc%6w%Z>wIII7BF6DtvKjUn5c}`*jhLtCAuW#(_V5cgkXvPa`@$!7+?O8WNFD$UqSPO|FhI z+tC~+JAa+-2^*t)ylxVv|BWUq-%3%K+%{qwt|F=o8}Ib%hA6zBnrJ@r@)}`Lj;btt z`FpI4N7)uI@iB(-qe7}M#7ry%DSsC%!=1vc0X#83=?Q#JuZWB~dO8plxtRI7QtU`7 z1~`s(_1qOB_|P~D>X=vAheFYB@{0kU@!e1BpTDSh__Hio4^mMK4#12Y zfWea^%K%6V0+!`iVe8C&F{Z?26({l&afHSifO~s8OT2%&^OIyb8yV>a$K0V=OYd?B zd`j?sbGi!W_^jXzd`j@7uB~xaU|?x{8#OePQqlMHg>I1cT%ny|^h-R*0`K$Dhj3ZF z3@oX%6he9t(@BjnpE#wDr1#oxG4wh85js3>eLIWHTy}LQ5!NHta3!LL9~c-se194O z*N{fD;;hsKhZz+cAoZQ%1o*x={N^>9ar!G_H$nN-J zbEOsAtEANi?0z z*nrI<^ZS`LEaW6ktd@+rme-1K3zT}Xc=8JrjRR~eHZa6eVvInXY`EK4JBnn#wyOG< z!&T6c?&e?2$#|z~?!$sgJ*m^(tLXMBX9px@4$>R|L*PM~!q7nCIY zHm99fxH6Li5WooJk&xTOLM-+0wmIQSrDx${azu#IjuaxhhY<75&3=LWn^p1#ajr%P z)Quy+H4vfrK^8_qVe^Q4e*-qVWVvKMi6fHvMP+k6hzFgUJ3BbD>Djz=H}!H%+9%%5 zX@ia!BIYBc74Z7e-;tFU%j*=Vm%6);ZE%n`iC+w*3I3)S;18$x5b(6;`V&_{@*WIUvMOU5G ziuXx?U{cZ?s2O#2yQGSA1yfW~5+qZra4|Df%qB{V5r+&TGEK5VHBmb~_E8wZ%x7z2FQpq5e3}Ki2@Sxc>ivI{ECu3tZ}B04%H!90r|a!W8W`t9L?!Q zRTSH1_sGUPz>SG@#fH4Lcf+%`(hQr~W#FlUx3=SD1B+{Oyds;IT1%HwwYG3(z=WTV zqr28A3HsoKU3!mGaMtoZ-vDuLn~k5ZIs^%E|EatOWYXOR)juaqegmC62`;*C!g|-y zFE8S*V@0FYxZTs}7wmd(Hs|1k)GS!2#?ZeA&Cv?uoxkQN>obY%6GB;t5U^4egm{;B zvvih#pgSm6{swhQ;T3|Z*+hqQy$CLmdTEVYv!A5}iNi}uqKc9tYsX^ubP|L35_mRK zEaF&mHZc5oC)IJ+Um<{sTc?C3QS>~KgERe;-8l9O& z3N}lpXn^ySdN(2Krg*1y0nG`ByE_0{9i?Y|Rcm*(@u-V#jUwAwNT8KHC2W*)Z|k>h z?j93JmPsUVzc8`AsQeKR3kJ`))P|0x>DKSk^P&(W++91Z^4dHk=4`zgjEz4m|r!~TE(X8(kU0{DN= zU;M}5{Kv_WfRTXWAAHObHjXCt&OeUkAFDGZovpFyzmlRynL;2U1q2Xh0tB%5CsG!U zfdAK`{=cM{2q^y5VJ&2CVq|G$;o$ghX|)*M1; z)&{n=KMrm>M_0#x-EVmJ!TyyW*|mTH0OX@!uipGU@x*!2$qyPyhfh{S#Y+?Ei@PKXUvru%P{8 zZ$kIm;g5}#@xQ7ustH#b@gwy+7ytmnKj9Nr{-5FhSH>GzIGWJ8T3h`qI)B1F$NG=f zyFU@g{|Ozc=0BqU=s{~?WBTXcN%D^s0-XK{l%wuHg8uip`M+Ha{!gj`*xH*o{G3_; zT}FV;*4EMWU-$bTFOC0Is^I@yj4%-YQxgCGM)BVjE|8Z3{W;120I)x65$MmiGUCtH F{{s~^?c4wW literal 0 HcmV?d00001 diff --git a/src/test/resources/oai-ore.jsonld b/src/test/resources/oai-ore.jsonld new file mode 100644 index 00000000000..063241a1054 --- /dev/null +++ b/src/test/resources/oai-ore.jsonld @@ -0,0 +1 @@ +{"dcterms:modified":"2018-09-26","dcterms:creator":"Qualitative Data Repository","@type":"ore:ResourceMap","@id":"https://dv.dev-aws.qdr.org/api/datasets/export?exporter=OAI_ORE&persistentId=doi:10.5072/FK2HYIXMY","ore:describes":{"citation:Contact":{"datasetContact:Name":"Myers, Jim","datasetContact:Affiliation":"QDR","datasetContact:E-mail":"qqmyers@hotmail.com"},"citation:Description":{"dsDescription:Text":"This is a sample dataset with a few files and lots of metadata designed to show how QDR's OAI-ORE and BagIT capabilities work.\r\nThe metadata is solely for demonstration purposes and does not accurately describe the content!","dsDescription:NoLongerUsedDate":"2018-05-22"},"citation:Keywords":[{"keyword:Term":"preservation"},{"keyword:Term":"documentation"}],"Creator":{"author:Name":"Myers, Jim","Identifier Scheme":"ORCID","ORCID":"https://orcid.org/0000-0001-8462-650X"},"Related Publication":{"Citation":" J. Myers, M. Hedstrom, D. Akmon, S. Payette, B. A. Plale, I. Kouper, S. McCaulay, R. McDonald, I. Suriarachchi, A. Varadharaju et al., \"Towards sustainable curation and preservation: The sead project's data services approach\", e-Science (e-Science) 2015 IEEE 11th International Conference on. IEEE, pp. 485-494, 2015.","Identifier Type":"doi","Identifier":"doi:10.1109/eScience.2015.56","URL":"https://doi.org/10.1109/eScience.2015.56"},"Time Period Covered":{"timePeriodCovered:Start":"2018-05-01","timePeriodCovered:End":"2018-05-22"},"citation:Notes":"QDR has adapted some of the OAI-ORE and BagIT conventions from SEAD and DataOne.","Subject":"Computer and Information Science","Title":"OAI-ORE and BagIt demonstration","citation:Depositor":"Myers, Jim","Deposit Date":"2018-05-22","citation:Series":{"series:Name":"Use of Standards in the Social Sciences"},"Grant Information":{"grantNumber:Grant Agency":"NSF","grantNumber:Grant Number":"1424191 "},"Software":{"software:Name":"Chrome","software:Version":"current"},"citation:Distributor":{"distributor:Name":"Qualitative Data Repository","distributor:Affiliation":"Syracuse University","distributor:Abbreviation":"QDR","distributor:URL":"https://qdr.syr.edu"},"citation:Producer":{"producer:Name":"Bagore, Locoai"},"Geographic Bounding Box":{"geographicBoundingBox:West Longitude":"0","geographicBoundingBox:East Longitude":"100","geographicBoundingBox:North Latitude":"50","geographicBoundingBox:South Latitude":"150"},"citation:QDRID":{"otherId:QDRID":"-00000001"},"Geographic Coverage":{"geographicCoverage:Country / Nation":"Åland Islands"},"Contributor":{"contributor:Type":"Data Curator","contributor:Name":"Myers, Jim"},"citation:Production Place":"Albany, NY","citation:Related Material":"This data publication is archived as a single Zip file, formatted according to the BagIT specification (https://tools.ietf.org/html/draft-kunze-bagit-11), with metadata documented according to the Open Archives Initiative Object Reuse and Exchange (ORE, https://www.openarchives.org/ore/) specification (serialized as JSON-LD (http://www.openarchives.org/ore/0.9/jsonld), integrated with BagIT according to the convention (http://jenkins-1.dataone.org/documentation/unstable/API-Documentation-development/design/DataPackage.html#package-serialization-using-bagit) developed within the DataOne project.)","Language":"Nuosu","citation:NoLongerUsedSubtitle":"Preservation of DV content","Type of Data Project":"example","Data Sources":"QDR Website","citation:Characteristic of Sources Noted":"teaching materials","Related Data Projects":"Dataverse","Alternative Title":"How to pack your Bags","Alternative URL":"https://unavailable.org/1234","citation:Production Date":"2018-05-23","@id":"doi:10.5072/FK2HYIXMY","@type":["ore:Aggregation","schema:Dataset"],"schema:version":"1.0","schema:datePublished":"2018-05-22","schema:name":"OAI-ORE and BagIt demonstration","schema:dateModified":"Tue May 22 13:51:34 UTC 2018","schema:license":"https://creativecommons.org/publicdomain/zero/1.0/","dvcore:confidentialityDeclaration":"These materials are not confidential.","dvcore:citationRequirements":"Please cite https://github.com/QualitativeDataRepository/dataverse/wiki/Data-and-Metadata-Packaging-for-Archiving .","dvcore:conditions":"Only on Tuesdays.","dvcore:disclaimer":"Caveat browser.","dvcore:fileTermsOfAccess":{"dvcore:termsOfAccess":"Broadly available.","dvcore:fileRequestAccess":false,"dvcore:originalArchive":"qdr.syr.edu","dvcore:availabilityStatus":"posted on 05-22-2018","dvcore:sizeOfCollection":"small"},"schema:includedInDataCatalog":"QDR Main Collection","ore:aggregates":[{"schema:description":"Available at qdr.syr.edu","schema:name":"Handout 1 (Management Intervention).pdf","dvcore:restricted":false,"dvcore:directoryLabel":"Handouts","schema:version":2,"dvcore:datasetVersionId":55,"dvcore:categories":["Documentation"],"@id":"doi:10.5072/FK2HYIXMY/ABZMQI","schema:sameAs":"https://dv.dev-aws.qdr.org/api/access/datafile/:persistentId?persistentId=doi:10.5072/FK2HYIXMY/ABZMQI","@type":"ore:AggregatedResource","schema:fileFormat":"application/pdf","dvcore:filesize":99014,"dvcore:storageIdentifier":"163880ce3e3-e73e49dca91e","dvcore:originalFormatLabel":"UNKNOWN","dvcore:rootDataFileId":-1,"dvcore:checksum":{"@type":"SHA-512","@value":"ae249017710fa0b0e62440ee62f43c3f0e44fa4936a42320db3c5b2ede29b31c81bdb793531fb970a7e22ae1c37f81c947ab2bd178dfe121604626e6aae97514"}},{"schema:description":"This is a file from the QDR website qdr.syr.edu.","schema:name":"Handout 2 (Data Management Checklist).pdf","dvcore:restricted":false,"dvcore:directoryLabel":"Handouts","schema:version":1,"dvcore:datasetVersionId":55,"@id":"doi:10.5072/FK2HYIXMY/GNCTTN","schema:sameAs":"https://dv.dev-aws.qdr.org/api/access/datafile/:persistentId?persistentId=doi:10.5072/FK2HYIXMY/GNCTTN","@type":"ore:AggregatedResource","schema:fileFormat":"application/pdf","dvcore:filesize":78408,"dvcore:storageIdentifier":"163880ce3d5-a1941ddb87e6","dvcore:originalFormatLabel":"UNKNOWN","dvcore:rootDataFileId":-1,"dvcore:checksum":{"@type":"SHA-512","@value":"8b3db45486713b1b3a4603e03a0f64c2596afd39bab0ebc429340a85589fb2a0b992a3b833cd02a49b0dc2ec41509fc0a5a1b9f3eaa3d2f76817af2b96244ae7"}},{"schema:name":"QDR - Data Management and Sharing - presentation.pptx","dvcore:restricted":false,"schema:version":1,"dvcore:datasetVersionId":55,"@id":"doi:10.5072/FK2HYIXMY/2LRK1L","schema:sameAs":"https://dv.dev-aws.qdr.org/api/access/datafile/:persistentId?persistentId=doi:10.5072/FK2HYIXMY/2LRK1L","@type":"ore:AggregatedResource","schema:fileFormat":"application/vnd.openxmlformats-officedocument.presentationml.presentation","dvcore:filesize":1032481,"dvcore:storageIdentifier":"163880ce687-51cae10bf0c6","dvcore:originalFormatLabel":"UNKNOWN","dvcore:rootDataFileId":-1,"dvcore:checksum":{"@type":"SHA-512","@value":"b057b65cff5cd893ed4b18d0e1414db169b69b03941fcc2f2b5d96efca5932db04968a52ef68c5781415447b141dde2866319f429b10db8533741161fbb5c098"}},{"schema:name":"QDR - Data Management and Sharing - Syllabus insert.docx","dvcore:restricted":false,"schema:version":2,"dvcore:datasetVersionId":55,"dvcore:categories":["Code","Data"],"@id":"doi:10.5072/FK2HYIXMY/RHMACI","schema:sameAs":"https://dv.dev-aws.qdr.org/api/access/datafile/:persistentId?persistentId=doi:10.5072/FK2HYIXMY/RHMACI","@type":"ore:AggregatedResource","schema:fileFormat":"application/vnd.openxmlformats-officedocument.wordprocessingml.document","dvcore:filesize":17889,"dvcore:storageIdentifier":"163880ce80e-f7f8cfdbb10c","dvcore:originalFormatLabel":"UNKNOWN","dvcore:rootDataFileId":-1,"dvcore:checksum":{"@type":"SHA-512","@value":"bde6f69b1db246b51f1c8aa257684007c2067c66aaf8669c4e169d0971cc49ce0517f2a9e3af2128f09ef5696e6fedd7ac6b29e865509fdbd4bd5ea5784d7aa5"}}],"schema:hasPart":["doi:10.5072/FK2HYIXMY/ABZMQI","doi:10.5072/FK2HYIXMY/GNCTTN","doi:10.5072/FK2HYIXMY/2LRK1L","doi:10.5072/FK2HYIXMY/RHMACI"]},"@context":{"Alternative Title":"http://purl.org/dc/terms/alternative","Alternative URL":"https://schema.org/distribution","Citation":"http://purl.org/dc/terms/bibliographicCitation","Contributor":"http://purl.org/dc/terms/contributor","Creator":"http://purl.org/dc/terms/creator","Data Sources":"https://www.w3.org/TR/prov-o/#wasDerivedFrom","Deposit Date":"http://purl.org/dc/terms/dateSubmitted","Geographic Bounding Box":"https://schema.org/spatialCoverage","Geographic Coverage":"https://schema.org/contentLocation","Grant Information":"https://schema.org/sponsor","Identifier":"http://purl.org/spar/datacite/ResourceIdentifier","Identifier Scheme":"http://purl.org/spar/datacite/AgentIdentifierScheme","Identifier Type":"http://purl.org/spar/datacite/ResourceIdentifierScheme","Language":"http://purl.org/dc/terms/language","ORCID":"http://purl.org/spar/datacite/AgentIdentifier","Related Data Projects":"http://purl.org/dc/terms/relation","Related Publication":"http://purl.org/dc/terms/isReferencedBy","Software":"https://www.w3.org/TR/prov-o/#wasGeneratedBy","Subject":"http://purl.org/dc/terms/subject","Time Period Covered":"https://schema.org/temporalCoverage","Title":"http://purl.org/dc/terms/title","Type of Data Project":"http://rdf-vocabulary.ddialliance.org/discovery#kindOfData","URL":"https://schema.org/distribution","author":"https://dataverse.org/schema/citation/author#","citation":"https://dataverse.org/schema/citation/","contributor":"https://dataverse.org/schema/citation/contributor#","datasetContact":"https://dataverse.org/schema/citation/datasetContact#","dcterms":"http://purl.org/dc/terms/","distributor":"https://dataverse.org/schema/citation/distributor#","dsDescription":"https://dataverse.org/schema/citation/dsDescription#","dvcore":"https://dv.dev-aws.qdr.org/schema/core#","geographicBoundingBox":"https://dataverse.org/schema/citation/geographicBoundingBox#","geographicCoverage":"https://dataverse.org/schema/citation/geographicCoverage#","grantNumber":"https://dataverse.org/schema/citation/grantNumber#","keyword":"https://dataverse.org/schema/citation/keyword#","ore":"http://www.openarchives.org/ore/terms/","otherId":"https://dataverse.org/schema/citation/otherId#","producer":"https://dataverse.org/schema/citation/producer#","schema":"http://schema.org/","series":"https://dataverse.org/schema/citation/series#","software":"https://dataverse.org/schema/citation/software#","timePeriodCovered":"https://dataverse.org/schema/citation/timePeriodCovered#"}} \ No newline at end of file From f2f11891a0172e02d620b44a86f24a7772c91c7a Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Thu, 11 Oct 2018 10:51:53 -0400 Subject: [PATCH 011/241] missing import --- src/main/java/edu/harvard/iq/dataverse/api/Admin.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java index d6795de6c37..647b49be777 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java @@ -11,6 +11,7 @@ import edu.harvard.iq.dataverse.DataverseSession; import edu.harvard.iq.dataverse.DvObject; import edu.harvard.iq.dataverse.EMailValidator; +import edu.harvard.iq.dataverse.EjbDataverseEngine; import edu.harvard.iq.dataverse.GlobalId; import edu.harvard.iq.dataverse.UserServiceBean; import edu.harvard.iq.dataverse.actionlogging.ActionLogRecord; From bdccdfede5a06d201523a5eba86b7da35f6754e8 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Fri, 19 Oct 2018 13:51:55 -0400 Subject: [PATCH 012/241] prepare for PR 5192 --- .../dataverse/engine/command/impl/SubmitToArchiveCommand.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java index 289de37339b..1a1b280b6be 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java @@ -182,6 +182,9 @@ public void run() { JsonObject jsonOreMap = (JsonObject) new JsonParser().parse(oreMap.getOREMap().toString()); //Generate bag + //To do: Change to this when #5185/#5192 is merged. + //The archival copy should include contact Emails regardless of the :ExcludeEmailFromExport setting + //BagGenerator bagger = new BagGenerator(new OREMap(dv, false), dataciteXml); BagGenerator bagger = new BagGenerator(new OREMap(dv), dataciteXml); bagger.setAuthenticationKey(token.getTokenString()); bagger.generateBag(out); From 756fa24a10ec145c0a443ffada7b53c704549599 Mon Sep 17 00:00:00 2001 From: Thibault Coupin Date: Tue, 30 Oct 2018 14:47:03 +0100 Subject: [PATCH 013/241] #5245 - fix global id url parsing when parsing OAI --- .../iq/dataverse/api/imports/ImportGenericServiceBean.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/api/imports/ImportGenericServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/api/imports/ImportGenericServiceBean.java index b5554816c0a..e216dd74594 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/imports/ImportGenericServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/imports/ImportGenericServiceBean.java @@ -411,11 +411,13 @@ private String reassignIdentifierAsGlobalId(String identifierString, DatasetDTO if (identifierString.startsWith(GlobalId.HDL_RESOLVER_URL)) { logger.fine("Processing Handle identifier formatted as a resolver URL: "+identifierString); protocol = GlobalId.HDL_PROTOCOL; - index1 = GlobalId.HDL_RESOLVER_URL.length() - 1; + index1 = GlobalId.HDL_RESOLVER_URL.length() - 1; + index2 = identifierString.indexOf("/", index1 + 1); } else if (identifierString.startsWith(GlobalId.DOI_RESOLVER_URL)) { logger.fine("Processing DOI identifier formatted as a resolver URL: "+identifierString); protocol = GlobalId.DOI_PROTOCOL; index1 = GlobalId.DOI_RESOLVER_URL.length() - 1; + index2 = identifierString.indexOf("/", index1 + 1); } else { logger.warning("HTTP Url in supplied as the identifier is neither a Handle nor DOI resolver: "+identifierString); return null; From 1e8645009a44c5b19c30a82b4fe8c13967113806 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Fri, 2 Nov 2018 12:17:25 -0400 Subject: [PATCH 014/241] move db update command to 4.9.10 script --- scripts/database/4706-udate.sql | 1 - scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 scripts/database/4706-udate.sql diff --git a/scripts/database/4706-udate.sql b/scripts/database/4706-udate.sql deleted file mode 100644 index 089076c4822..00000000000 --- a/scripts/database/4706-udate.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE datasetversion ADD COLUMN archivalcopylocation text; diff --git a/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql b/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql index 38c511816ae..a2e0123205d 100644 --- a/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql +++ b/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql @@ -3,6 +3,7 @@ ADD requestor_id BIGINT; ALTER TABLE datasetfieldtype ADD COLUMN uri text; ALTER TABLE metadatablock ADD COLUMN namespaceuri text; ALTER TABLE pendingworkflowinvocation ADD COLUMN datasetexternallyreleased BOOLEAN; +ALTER TABLE datasetversion ADD COLUMN archivalcopylocation text; INSERT INTO setting( name, content) From f7940d150db3fa8facc1c43d6caa8bfcb8cb8cfd Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Fri, 2 Nov 2018 12:26:55 -0400 Subject: [PATCH 015/241] uncomment change for 5192 --- .../engine/command/impl/SubmitToArchiveCommand.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java index 1a1b280b6be..b31b8998075 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java @@ -182,10 +182,7 @@ public void run() { JsonObject jsonOreMap = (JsonObject) new JsonParser().parse(oreMap.getOREMap().toString()); //Generate bag - //To do: Change to this when #5185/#5192 is merged. - //The archival copy should include contact Emails regardless of the :ExcludeEmailFromExport setting - //BagGenerator bagger = new BagGenerator(new OREMap(dv, false), dataciteXml); - BagGenerator bagger = new BagGenerator(new OREMap(dv), dataciteXml); + BagGenerator bagger = new BagGenerator(new OREMap(dv, false), dataciteXml); bagger.setAuthenticationKey(token.getTokenString()); bagger.generateBag(out); } catch (Exception e) { From d05d0744908f7ed0a0c0edcc5bc8569fffb22886 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Fri, 2 Nov 2018 12:35:42 -0400 Subject: [PATCH 016/241] and remove old code... --- .../dataverse/engine/command/impl/SubmitToArchiveCommand.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java index b31b8998075..96afe704f06 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java @@ -177,10 +177,6 @@ public void run() { new Thread(new Runnable() { public void run() { try { - //Get OREmap, convert from javax.json.JsonObject to com.google.gson.JsonObject - OREMap oreMap = new OREMap(dv); - JsonObject jsonOreMap = (JsonObject) new JsonParser().parse(oreMap.getOREMap().toString()); - //Generate bag BagGenerator bagger = new BagGenerator(new OREMap(dv, false), dataciteXml); bagger.setAuthenticationKey(token.getTokenString()); From 88243f553b3d78ab7bddcfb83b14172ec7e234a4 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Fri, 2 Nov 2018 15:40:17 -0400 Subject: [PATCH 017/241] support friendly ver in api --- .../dataverse/DatasetVersionServiceBean.java | 67 ++++++------------- .../edu/harvard/iq/dataverse/api/Admin.java | 10 ++- 2 files changed, 26 insertions(+), 51 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java index fe392f5132f..baa3a8958b1 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java @@ -146,7 +146,6 @@ public DatasetVersion find(Object pk) { } public DatasetVersion findByFriendlyVersionNumber(Long datasetId, String friendlyVersionNumber) { - //FIXME: this logic doesn't work Long majorVersionNumber = null; Long minorVersionNumber = null; @@ -163,59 +162,31 @@ public DatasetVersion findByFriendlyVersionNumber(Long datasetId, String friendl } catch (NumberFormatException n) { return null; } - - if (minorVersionNumber != null) { - String queryStr = "SELECT v from DatasetVersion v where v.dataset.id = :datasetId and v.versionNumber= :majorVersionNumber and v.minorVersionNumber= :minorVersionNumber"; - DatasetVersion foundDatasetVersion = null; - try { - Query query = em.createQuery(queryStr); - query.setParameter("datasetId", datasetId); - query.setParameter("majorVersionNumber", majorVersionNumber); - query.setParameter("minorVersionNumber", minorVersionNumber); - foundDatasetVersion = (DatasetVersion) query.getSingleResult(); - } catch (javax.persistence.NoResultException e) { - logger.warning("no ds version found: " + datasetId + " " + friendlyVersionNumber); - // DO nothing, just return null. - } - return foundDatasetVersion; - - } - - if (majorVersionNumber == null && minorVersionNumber == null) { - + if (majorVersionNumber == null) { + // Must always have a major version return null; - + } + if (minorVersionNumber == null) { + // Minor version defaults to 0 in the db + minorVersionNumber = 0; } - if (majorVersionNumber != null && minorVersionNumber == null) { - - try { - TypedQuery typedQuery = em.createQuery("SELECT v from DatasetVersion v where v.dataset.id = :datasetId and v.versionNumber= :majorVersionNumber", DatasetVersion.class); - typedQuery.setParameter("datasetId", datasetId); - typedQuery.setParameter("majorVersionNumber", majorVersionNumber); - DatasetVersion retVal = null; - List versionsList = typedQuery.getResultList(); - for (DatasetVersion dsvTest : versionsList) { - if (retVal == null) { - retVal = dsvTest; - } else { - if (retVal.getMinorVersionNumber().intValue() < dsvTest.getMinorVersionNumber().intValue()) { - retVal = dsvTest; - } - } - } - - return retVal; - - } catch (javax.persistence.NoResultException e) { - logger.warning("no ds version found: " + datasetId + " " + friendlyVersionNumber); - // DO nothing, just return null. - } - + String queryStr = "SELECT v from DatasetVersion v where v.dataset.id = :datasetId and v.versionNumber= :majorVersionNumber and v.minorVersionNumber= :minorVersionNumber"; + DatasetVersion foundDatasetVersion = null; + try { + Query query = em.createQuery(queryStr); + query.setParameter("datasetId", datasetId); + query.setParameter("majorVersionNumber", majorVersionNumber); + query.setParameter("minorVersionNumber", minorVersionNumber); + foundDatasetVersion = (DatasetVersion) query.getSingleResult(); + } catch (javax.persistence.NoResultException e) { + logger.warning("no ds version found: " + datasetId + " " + friendlyVersionNumber); + // DO nothing, just return null. } + return foundDatasetVersion; - return null; } + /** * Parse a Persistent Id and return as 3 strings. diff --git a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java index 52bb8c8407a..b3a9424b6b4 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java @@ -86,6 +86,8 @@ import edu.harvard.iq.dataverse.userdata.UserListResult; import edu.harvard.iq.dataverse.util.BundleUtil; import edu.harvard.iq.dataverse.util.FileUtil; +import src.main.java.edu.harvard.iq.dataverse.Long; +import src.main.java.edu.harvard.iq.dataverse.String; import java.util.ArrayList; import java.util.Arrays; @@ -1279,13 +1281,15 @@ public Response updateHashValues(@PathParam("alg") String alg, @QueryParam("num" } @GET - @Path("/submitDataVersionToDPN/{dvid}") - public Response submitDatasetVersionToDPN(@PathParam("dvid") long dvid) { + @Path("/submitDataVersionToDPN/{id}/{version}") + public Response submitDatasetVersionToDPN(@PathParam("id") long dsid, @PathParam("version") String versionNumber) { try { AuthenticatedUser au = findAuthenticatedUserOrDie(); if (au.isSuperuser()) { - DatasetVersion dv = datasetversionService.retrieveDatasetVersionByVersionId(dvid).getDatasetVersion(); + Dataset ds = findDatasetOrDie(dsid); + + DatasetVersion dv = datasetversionService.findByFriendlyVersionNumber(ds.getId(), versionNumber); if (dv.getArchivalCopyLocation() == null) { SubmitToArchiveCommand cmd = new SubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); try { From 8c36213b12eaaf85215d35d8244b16719a700103 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Fri, 2 Nov 2018 15:40:37 -0400 Subject: [PATCH 018/241] initial admin doc --- .../source/admin/integrations.rst | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/doc/sphinx-guides/source/admin/integrations.rst b/doc/sphinx-guides/source/admin/integrations.rst index de4e15efd25..13b11c1a4d2 100644 --- a/doc/sphinx-guides/source/admin/integrations.rst +++ b/doc/sphinx-guides/source/admin/integrations.rst @@ -85,6 +85,34 @@ SHARE `SHARE `_ is building a free, open, data set about research and scholarly activities across their life cycle. It's possible to add and installation of Dataverse as one of the `sources `_ they include if you contact the SHARE team. +Preservation +------------ + +Digital Preservation Network +++++++++++++++++++++++++++++ + +Dataverse can be configured to submit a copy of published Datasets, packaged as `Research Data Alliance conformant `_ zipped `BagIt `_ bags to the `Digital Preservation Network `_ + +This integration is occurs through an internal Dataverse workflow that can be configured as a PostPublication workflow to submit the bag to DPN's Duracloud interface using your organization's credentials. An admin API call exists that can manually submit previously published Datasets, and prior versions, to DPN. The workflow leverages new functionality in Dataverse to create a `JSON-LD `_ serialized `OAI-ORE `_ map file, which is also available as a metadata export format in the Dataverse web interface. + +Note that while the current implementation generates the bag and submits it to DPN's Duracloud interface, the step to make a 'snapshot' of the space containing the Bag (and verify it's successful submission) are actions a curator must take in the Duracloud interface. + +The minimal configuration to support DPN integration involves adding one Dataverse Key and two Glassfish jvm options\: + +\:DuraCloudHost - the URL for your organization's DPN Duracloud site. For example: + + `curl http://localhost:8080/api/admin/settings/:DuraCloudHost -X PUT -d "qdr.duracloud.org"` + +:DuraCloudPort and :DuraCloudContext are also defined if you are not using the defaults ("443" and "duracloud" respectively). + +The username and password associated with your organization's DPN account should be configured in Glassfish: + + `./asadmin create-jvm-options '-Dduracloud.username=YOUR_USERNAME_HERE'` + + `./asadmin create-jvm-options '-Dduracloud.password=YOUR_PASSWORD_HERE'` + +Once this configuration is complete, you, as a superuser, should be able to use the API call to manually submit a DatasetVersion for processing + Future Integrations ------------------- From a86f9976d21f9c46cd6787d0417cd03f7fdd40b4 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Fri, 2 Nov 2018 16:03:40 -0400 Subject: [PATCH 019/241] need Long --- .../edu/harvard/iq/dataverse/DatasetVersionServiceBean.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java index baa3a8958b1..16a59e1305a 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java @@ -168,7 +168,7 @@ public DatasetVersion findByFriendlyVersionNumber(Long datasetId, String friendl } if (minorVersionNumber == null) { // Minor version defaults to 0 in the db - minorVersionNumber = 0; + minorVersionNumber = new Long(0); } String queryStr = "SELECT v from DatasetVersion v where v.dataset.id = :datasetId and v.versionNumber= :majorVersionNumber and v.minorVersionNumber= :minorVersionNumber"; From f2b8c439fa3e69320fa66458d46009584b65b62d Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 5 Nov 2018 11:45:31 -0500 Subject: [PATCH 020/241] use new permission Conflicts: src/main/java/edu/harvard/iq/dataverse/api/Admin.java --- .../edu/harvard/iq/dataverse/api/Admin.java | 37 +++++++++---------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java index b3a9424b6b4..d7099b1058d 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java @@ -1286,29 +1286,26 @@ public Response submitDatasetVersionToDPN(@PathParam("id") long dsid, @PathParam try { AuthenticatedUser au = findAuthenticatedUserOrDie(); - if (au.isSuperuser()) { - Dataset ds = findDatasetOrDie(dsid); - - DatasetVersion dv = datasetversionService.findByFriendlyVersionNumber(ds.getId(), versionNumber); - if (dv.getArchivalCopyLocation() == null) { - SubmitToArchiveCommand cmd = new SubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); - try { - dv = commandEngine.submit(cmd); - if (dv.getArchivalCopyLocation() != null) { - return ok("DatasetVersion id=" + dvid + " submitted to DPN/Duracloud at: " - + dv.getArchivalCopyLocation()); - } else { - return error(Status.CONFLICT, "Error submitting version due to conflict/error at DPN"); - } - } catch (CommandException ex) { - logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); - return error(Response.Status.INTERNAL_SERVER_ERROR, ex.getMessage()); + session.setUser(au); + Dataset ds = findDatasetOrDie(dsid); + + DatasetVersion dv = datasetversionService.findByFriendlyVersionNumber(ds.getId(), versionNumber); + if (dv.getArchivalCopyLocation() == null) { + SubmitToArchiveCommand cmd = new SubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); + try { + dv = commandEngine.submit(cmd); + if (dv.getArchivalCopyLocation() != null) { + return ok("DatasetVersion id=" + ds.getGlobalId().toString() + " v" + versionNumber + " submitted to DPN/Duracloud at: " + + dv.getArchivalCopyLocation()); + } else { + return error(Status.CONFLICT, "Error submitting version due to conflict/error at DPN"); } - } else { - return error(Status.BAD_REQUEST, "Version already archived at: " + dv.getArchivalCopyLocation()); + } catch (CommandException ex) { + logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); + return error(Response.Status.INTERNAL_SERVER_ERROR, ex.getMessage()); } } else { - return error(Status.UNAUTHORIZED, "must be superuser"); + return error(Status.BAD_REQUEST, "Version already archived at: " + dv.getArchivalCopyLocation()); } } catch (WrappedResponse e1) { return error(Status.UNAUTHORIZED, "api key required"); From d40668b774df3b983426e61dd0a4a8c8c825f186 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 5 Nov 2018 13:36:08 -0500 Subject: [PATCH 021/241] further documentation --- .../source/admin/integrations.rst | 33 ++++++++++++++++++- .../source/developers/big-data-support.rst | 22 +++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/doc/sphinx-guides/source/admin/integrations.rst b/doc/sphinx-guides/source/admin/integrations.rst index 13b11c1a4d2..2a7fcaf9532 100644 --- a/doc/sphinx-guides/source/admin/integrations.rst +++ b/doc/sphinx-guides/source/admin/integrations.rst @@ -111,7 +111,38 @@ The username and password associated with your organization's DPN account should `./asadmin create-jvm-options '-Dduracloud.password=YOUR_PASSWORD_HERE'` -Once this configuration is complete, you, as a superuser, should be able to use the API call to manually submit a DatasetVersion for processing +**API Call** + +Once this configuration is complete, you, as a user with the *ArchiveDatasetVersion* permission (given to the Admin role by default), should be able to use the API call to manually submit a DatasetVersion for processing: + + `curl -H "X-Dataverse-key:|" http://localhost:8080/api/admin/submitDataVersionToDPN/{id}/{version}` + + where: + {id} is the DatasetId (or :persistentId with the ?persistentId="\" parameter), and + + {version} is the friendly version number, e.g. "1.2". + +The submitDataVersionToDPN API (and the workflow discussed below) attempt to create a Duracloud space named for the dataset (it's DOI with ':' and '.' replaced with '-') and then upload a version-specific datacite.xml metadata file and a BagIt bag containing the data and an OAI-ORE map file. (The datacite.xml file, stored outside the Bag as well as inside is intended to aid in discovery while the ORE map file is 'complete' containing all user-entered metadata and is intended as an archival record.) + +Since the transfer from the Duracloud front-end to archival storage in DPN can take significant time, it is currently up to the admin/curator to submit a 'snap-shot' of the space within Duracloud and to monitor its successful transfer. Once transfer is complete the space can be emptied or deleted, at which point the Dataverse APi call can be used to submit a Bag for other versions of the same Dataset. (The space is reused, so that archival copies of different Dataset versions correspond to different snapshots of the same Duracloud space.). + +**PostPublication Workflow** + +To automate the submission of archival copies to DPN as part of publication, one can setup a Dataverse Workflow using the `"dpn" workflow step `_ +. The dpn step uses the configuration information discussed above and requires no additional information. + +To active this workflow, one must first install a workflow using the dpn step. A simple workflow that invokes the dpn step as its only action is included in dataverse at /scripts/api/data/workflows/internal-dpn-workflow.json. + +Using the `Workflow Native API `_ this workflow can be installed using: + + `curl -X POST --upload-file internal-dpn-workflow.json http://localhost:8080/api/admin/workflows` + +The workflow id returned in this call (or available by doing a GET of /api/admin/workflows ) can then be submitted as the default PostPublication workflow: + + `curl -X PUT -d {id} http://localhost:8080/api/admin/workflows/default/PostPublishDataset` + +Once these steps are taken, new publication requests will automatically trigger submission of an archival copy to DPN's DuraCloud component. As when using the API, it is currently the admin's responsibility to snap-shot the DuraCloud space and monitor the result. Failure of the workflow, (e.g. if DuraCloud is unavailable, the configuration is wrong, or the space for this dataset already exists due to a prior publication action or use of the API), the workflow will report failure but will not affect publication itself. + Future Integrations ------------------- diff --git a/doc/sphinx-guides/source/developers/big-data-support.rst b/doc/sphinx-guides/source/developers/big-data-support.rst index 567fb99ec7a..3abf9f308fb 100644 --- a/doc/sphinx-guides/source/developers/big-data-support.rst +++ b/doc/sphinx-guides/source/developers/big-data-support.rst @@ -282,3 +282,25 @@ Available variables are: * ``minorVersion`` * ``majorVersion`` * ``releaseStatus`` + +dpn ++++++++ + +A step that sends an archival copy of a Dataset Version to the DuraCloud interface of the Digital Preservation Network. See the `DPN Integration documentation `_ for further detail. + +.. code:: json + + + { + "provider":":internal", + "stepType":"dpn", + "parameters": { + "stepName":"dpn submission" + }, + "requiredSettings": { + "DuraCloudHost":"string", + "DuraCloudPort":"string", + "DuraCloudContext":"string" + } + } + From 886f1fcc8c32db4ba361e1a115f82dfc8288a010 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 5 Nov 2018 13:38:13 -0500 Subject: [PATCH 022/241] typos from config --- src/main/java/edu/harvard/iq/dataverse/api/Admin.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java index d7099b1058d..6390132208f 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java @@ -86,8 +86,6 @@ import edu.harvard.iq.dataverse.userdata.UserListResult; import edu.harvard.iq.dataverse.util.BundleUtil; import edu.harvard.iq.dataverse.util.FileUtil; -import src.main.java.edu.harvard.iq.dataverse.Long; -import src.main.java.edu.harvard.iq.dataverse.String; import java.util.ArrayList; import java.util.Arrays; From 0f543f2e17371296d45b5599347f46b358ead86d Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 5 Nov 2018 13:44:01 -0500 Subject: [PATCH 023/241] missed Long to Stirng param change to support ":persistentId" --- src/main/java/edu/harvard/iq/dataverse/api/Admin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java index 6390132208f..d3d4b567a01 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java @@ -1280,7 +1280,7 @@ public Response updateHashValues(@PathParam("alg") String alg, @QueryParam("num" @GET @Path("/submitDataVersionToDPN/{id}/{version}") - public Response submitDatasetVersionToDPN(@PathParam("id") long dsid, @PathParam("version") String versionNumber) { + public Response submitDatasetVersionToDPN(@PathParam("id") String dsid, @PathParam("version") String versionNumber) { try { AuthenticatedUser au = findAuthenticatedUserOrDie(); From 86b7652706a0124cc08e7625e7f6bf3bda6a8937 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 5 Nov 2018 14:39:39 -0500 Subject: [PATCH 024/241] give admin permission to submit to DPN --- scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql b/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql index a2e0123205d..5def4df16da 100644 --- a/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql +++ b/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql @@ -8,3 +8,5 @@ ALTER TABLE datasetversion ADD COLUMN archivalcopylocation text; INSERT INTO setting( name, content) VALUES (':UploadMethods', 'native/http'); + +UPDATE dataverserole SET permissionbits=16383 WHERE id=1; From 39dc688233596a739dff9bd4efec10aac0c6bd08 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 26 Nov 2018 13:27:50 -0500 Subject: [PATCH 025/241] revert per IQSS --- .../dataverse/DatasetVersionServiceBean.java | 59 +++++++++++++------ 1 file changed, 40 insertions(+), 19 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java index 16a59e1305a..46a719aaa32 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java @@ -162,29 +162,50 @@ public DatasetVersion findByFriendlyVersionNumber(Long datasetId, String friendl } catch (NumberFormatException n) { return null; } - if (majorVersionNumber == null) { - // Must always have a major version - return null; - } - if (minorVersionNumber == null) { - // Minor version defaults to 0 in the db - minorVersionNumber = new Long(0); + if (minorVersionNumber != null) { + String queryStr = "SELECT v from DatasetVersion v where v.dataset.id = :datasetId and v.versionNumber= :majorVersionNumber and v.minorVersionNumber= :minorVersionNumber"; + DatasetVersion foundDatasetVersion = null; + try { + Query query = em.createQuery(queryStr); + query.setParameter("datasetId", datasetId); + query.setParameter("majorVersionNumber", majorVersionNumber); + query.setParameter("minorVersionNumber", minorVersionNumber); + foundDatasetVersion = (DatasetVersion) query.getSingleResult(); + } catch (javax.persistence.NoResultException e) { + logger.warning("no ds version found: " + datasetId + " " + friendlyVersionNumber); + // DO nothing, just return null. + } + return foundDatasetVersion; } - String queryStr = "SELECT v from DatasetVersion v where v.dataset.id = :datasetId and v.versionNumber= :majorVersionNumber and v.minorVersionNumber= :minorVersionNumber"; - DatasetVersion foundDatasetVersion = null; - try { - Query query = em.createQuery(queryStr); - query.setParameter("datasetId", datasetId); - query.setParameter("majorVersionNumber", majorVersionNumber); - query.setParameter("minorVersionNumber", minorVersionNumber); - foundDatasetVersion = (DatasetVersion) query.getSingleResult(); - } catch (javax.persistence.NoResultException e) { - logger.warning("no ds version found: " + datasetId + " " + friendlyVersionNumber); - // DO nothing, just return null. + if (majorVersionNumber == null && minorVersionNumber == null) { + return null; } - return foundDatasetVersion; + if (majorVersionNumber != null && minorVersionNumber == null) { + try { + TypedQuery typedQuery = em.createQuery("SELECT v from DatasetVersion v where v.dataset.id = :datasetId and v.versionNumber= :majorVersionNumber", DatasetVersion.class); + typedQuery.setParameter("datasetId", datasetId); + typedQuery.setParameter("majorVersionNumber", majorVersionNumber); + DatasetVersion retVal = null; + List versionsList = typedQuery.getResultList(); + for (DatasetVersion dsvTest : versionsList) { + if (retVal == null) { + retVal = dsvTest; + } else { + if (retVal.getMinorVersionNumber().intValue() < dsvTest.getMinorVersionNumber().intValue()) { + retVal = dsvTest; + } + } + } + return retVal; + } catch (javax.persistence.NoResultException e) { + logger.warning("no ds version found: " + datasetId + " " + friendlyVersionNumber); + // DO nothing, just return null. + } + + } + return null; } From b3b439e4b9b4ec89f5ff66ebd6bc4954696b1847 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 26 Nov 2018 13:50:37 -0500 Subject: [PATCH 026/241] adding comment about unused method --- src/main/java/edu/harvard/iq/dataverse/DatasetPage.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 828e94d1c2b..d2d4786ea7e 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -4351,6 +4351,15 @@ public void refreshPaginator() { setRowsPerPage(dt.getRowsToRender()); } + /** + * This method can be called from *.xhtml files to allow archiving of a dataset + * version from the user interface. It is not currently (11/18) used in the IQSS/develop + * branch, but is used by QDR and is kept here in anticipation of including a + * GUI option to archive (already published) versions after other dataset page + * changes have been completed. + * + * @param id - the id of the datasetversion to archive. + */ public void archiveVersion(Long id) { if (session.getUser() instanceof AuthenticatedUser) { AuthenticatedUser au = ((AuthenticatedUser) session.getUser()); From 1e74756ce9de7077f949709e55edacc3eee45494 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 26 Nov 2018 13:53:32 -0500 Subject: [PATCH 027/241] remove superuser restriction on archiveVersion method --- .../edu/harvard/iq/dataverse/DatasetPage.java | 33 ++++++++----------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index d2d4786ea7e..4455405dda3 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -4363,30 +4363,23 @@ public void refreshPaginator() { public void archiveVersion(Long id) { if (session.getUser() instanceof AuthenticatedUser) { AuthenticatedUser au = ((AuthenticatedUser) session.getUser()); - if (au.isSuperuser()) { - DatasetVersion dv = datasetVersionService.retrieveDatasetVersionByVersionId(id).getDatasetVersion(); - SubmitToArchiveCommand cmd = new SubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); - try { - DatasetVersion version = commandEngine.submit(cmd); - logger.info("Archived to " + version.getArchivalCopyLocation()); - if(version.getArchivalCopyLocation()!=null) { - resetVersionTabList(); - this.setVersionTabListForPostLoad(getVersionTabList()); + + DatasetVersion dv = datasetVersionService.retrieveDatasetVersionByVersionId(id).getDatasetVersion(); + SubmitToArchiveCommand cmd = new SubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); + try { + DatasetVersion version = commandEngine.submit(cmd); + logger.info("Archived to " + version.getArchivalCopyLocation()); + if (version.getArchivalCopyLocation() != null) { + resetVersionTabList(); + this.setVersionTabListForPostLoad(getVersionTabList()); JsfHelper.addSuccessMessage(BundleUtil.getStringFromBundle("datasetversion.archive.success")); - } else { - JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("datasetversion.archive.failure")); - } - } catch (CommandException ex) { - logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); + } else { JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("datasetversion.archive.failure")); } + } catch (CommandException ex) { + logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); + JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("datasetversion.archive.failure")); } - } else { - logger.warning("Non-superuser calling archiveVersion()"); - // Shouldn't happen since button only shows for superuser - FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Authentication error", - "Contact an administrator"); - FacesContext.getCurrentInstance().addMessage(null, message); } } } From 86c7ceb42d762f0fa1f30f261a25e04bd7e36715 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 26 Nov 2018 13:59:27 -0500 Subject: [PATCH 028/241] remove archive permission, use Permission.PublishDataset --- scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql | 2 -- .../edu/harvard/iq/dataverse/authorization/Permission.java | 3 +-- .../dataverse/engine/command/impl/SubmitToArchiveCommand.java | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql b/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql index 5def4df16da..a2e0123205d 100644 --- a/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql +++ b/scripts/database/upgrades/upgrade_v4.9.4_to_v4.10.sql @@ -8,5 +8,3 @@ ALTER TABLE datasetversion ADD COLUMN archivalcopylocation text; INSERT INTO setting( name, content) VALUES (':UploadMethods', 'native/http'); - -UPDATE dataverserole SET permissionbits=16383 WHERE id=1; diff --git a/src/main/java/edu/harvard/iq/dataverse/authorization/Permission.java b/src/main/java/edu/harvard/iq/dataverse/authorization/Permission.java index 5f11dd93986..7fd7a40587f 100644 --- a/src/main/java/edu/harvard/iq/dataverse/authorization/Permission.java +++ b/src/main/java/edu/harvard/iq/dataverse/authorization/Permission.java @@ -50,8 +50,7 @@ public enum Permission implements java.io.Serializable { PublishDataset(BundleUtil.getStringFromBundle("permission.publishDataset"), true, Dataset.class, Dataverse.class), // Delete DeleteDataverse(BundleUtil.getStringFromBundle("permission.deleteDataverse"), true, Dataverse.class), - DeleteDatasetDraft(BundleUtil.getStringFromBundle("permission.deleteDataset"), true, Dataset.class), - ArchiveDatasetVersion(BundleUtil.getStringFromBundle("permission.archiveDatasetVersion"), true, Dataset.class); + DeleteDatasetDraft(BundleUtil.getStringFromBundle("permission.deleteDataset"), true, Dataset.class); // FUTURE: //RestrictMetadata("Mark metadata as restricted", DvObject.class), diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java index 96afe704f06..e44e0d17ede 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java @@ -46,7 +46,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; -@RequiredPermissions(Permission.ArchiveDatasetVersion) +@RequiredPermissions(Permission.PublishDataset) public class SubmitToArchiveCommand implements Command { private final DatasetVersion version; From 0aaf875d8590a68bf1e21663ca83a47ee389f31e Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 26 Nov 2018 14:31:02 -0500 Subject: [PATCH 029/241] attempt to separate workflow docs per IQSS --- .../source/admin/integrations.rst | 2 +- .../source/developers/big-data-support.rst | 118 +--------------- doc/sphinx-guides/source/developers/index.rst | 1 + .../source/developers/workflows.rst | 126 ++++++++++++++++++ 4 files changed, 129 insertions(+), 118 deletions(-) create mode 100644 doc/sphinx-guides/source/developers/workflows.rst diff --git a/doc/sphinx-guides/source/admin/integrations.rst b/doc/sphinx-guides/source/admin/integrations.rst index 2a7fcaf9532..270bdf4a7c4 100644 --- a/doc/sphinx-guides/source/admin/integrations.rst +++ b/doc/sphinx-guides/source/admin/integrations.rst @@ -128,7 +128,7 @@ Since the transfer from the Duracloud front-end to archival storage in DPN can t **PostPublication Workflow** -To automate the submission of archival copies to DPN as part of publication, one can setup a Dataverse Workflow using the `"dpn" workflow step `_ +To automate the submission of archival copies to DPN as part of publication, one can setup a Dataverse Workflow using the `"dpn" workflow step `_ . The dpn step uses the configuration information discussed above and requires no additional information. To active this workflow, one must first install a workflow using the dpn step. A simple workflow that invokes the dpn step as its only action is included in dataverse at /scripts/api/data/workflows/internal-dpn-workflow.json. diff --git a/doc/sphinx-guides/source/developers/big-data-support.rst b/doc/sphinx-guides/source/developers/big-data-support.rst index 3abf9f308fb..9e4308ae5f5 100644 --- a/doc/sphinx-guides/source/developers/big-data-support.rst +++ b/doc/sphinx-guides/source/developers/big-data-support.rst @@ -116,7 +116,7 @@ Configuring the RSAL Mock Info for configuring the RSAL Mock: https://github.com/sbgrid/rsal/tree/master/mocks -Also, to configure Dataverse to use the new workflow you must do the following (see also the section below on workflows): +Also, to configure Dataverse to use the new workflow you must do the following (see also the `section on workflows `_): 1. Configure the RSAL URL: @@ -187,120 +187,4 @@ In the GUI, this is called "Local Access". It's where you can compute on files o ``curl http://localhost:8080/api/admin/settings/:LocalDataAccessPath -X PUT -d "/programs/datagrid"`` -Workflows ---------- - -Dataverse can perform two sequences of actions when datasets are published: one prior to publishing (marked by a ``PrePublishDataset`` trigger), and one after the publication has succeeded (``PostPublishDataset``). The pre-publish workflow is useful for having an external system prepare a dataset for being publicly accessed (a possibly lengthy activity that requires moving files around, uploading videos to a streaming server, etc.), or to start an approval process. A post-publish workflow might be used for sending notifications about the newly published dataset. - -Workflow steps are created using *step providers*. Dataverse ships with an internal step provider that offers some basic functionality, and with the ability to load 3rd party step providers. This allows installations to implement functionality they need without changing the Dataverse source code. - -Steps can be internal (say, writing some data to the log) or external. External steps involve Dataverse sending a request to an external system, and waiting for the system to reply. The wait period is arbitrary, and so allows the external system unbounded operation time. This is useful, e.g., for steps that require human intervension, such as manual approval of a dataset publication. - -The external system reports the step result back to dataverse, by sending a HTTP ``POST`` command to ``api/workflows/{invocation-id}``. The body of the request is passed to the paused step for further processing. - -If a step in a workflow fails, Dataverse make an effort to roll back all the steps that preceeded it. Some actions, such as writing to the log, cannot be rolled back. If such an action has a public external effect (e.g. send an EMail to a mailing list) it is advisable to put it in the post-release workflow. - -.. tip:: - For invoking external systems using a REST api, Dataverse's internal step - provider offers a step for sending and receiving customizable HTTP requests. - It's called *http/sr*, and is detailed below. - -Administration -~~~~~~~~~~~~~~ - -A Dataverse instance stores a set of workflows in its database. Workflows can be managed using the ``api/admin/workflows/`` endpoints of the :doc:`/api/native-api`. Sample workflow files are available in ``scripts/api/data/workflows``. - -At the moment, defining a workflow for each trigger is done for the entire instance, using the endpoint ``api/admin/workflows/default/«trigger type»``. - -In order to prevent unauthorized resuming of workflows, Dataverse maintains a "white list" of IP addresses from which resume requests are honored. This list is maintained using the ``/api/admin/workflows/ip-whitelist`` endpoint of the :doc:`/api/native-api`. By default, Dataverse honors resume requests from localhost only (``127.0.0.1;::1``), so set-ups that use a single server work with no additional configuration. - - -Available Steps -~~~~~~~~~~~~~~~ - -Dataverse has an internal step provider, whose id is ``:internal``. It offers the following steps: - -log -+++ - -A step that writes data about the current workflow invocation to the instance log. It also writes the messages in its ``parameters`` map. - -.. code:: json - - { - "provider":":internal", - "stepType":"log", - "parameters": { - "aMessage": "message content", - "anotherMessage": "message content, too" - } - } - - -pause -+++++ - -A step that pauses the workflow. The workflow is paused until a POST request is sent to ``/api/workflows/{invocation-id}``. - -.. code:: json - - { - "provider":":internal", - "stepType":"pause" - } - - -http/sr -+++++++ - -A step that sends a HTTP request to an external system, and then waits for a response. The response has to match a regular expression specified in the step parameters. The url, content type, and message body can use data from the workflow context, using a simple markup language. This step has specific parameters for rollback. - -.. code:: json - - { - "provider":":internal", - "stepType":"http/sr", - "parameters": { - "url":"http://localhost:5050/dump/${invocationId}", - "method":"POST", - "contentType":"text/plain", - "body":"START RELEASE ${dataset.id} as ${dataset.displayName}", - "expectedResponse":"OK.*", - "rollbackUrl":"http://localhost:5050/dump/${invocationId}", - "rollbackMethod":"DELETE ${dataset.id}" - } - } - -Available variables are: - -* ``invocationId`` -* ``dataset.id`` -* ``dataset.identifier`` -* ``dataset.globalId`` -* ``dataset.displayName`` -* ``dataset.citation`` -* ``minorVersion`` -* ``majorVersion`` -* ``releaseStatus`` - -dpn -+++++++ - -A step that sends an archival copy of a Dataset Version to the DuraCloud interface of the Digital Preservation Network. See the `DPN Integration documentation `_ for further detail. - -.. code:: json - - - { - "provider":":internal", - "stepType":"dpn", - "parameters": { - "stepName":"dpn submission" - }, - "requiredSettings": { - "DuraCloudHost":"string", - "DuraCloudPort":"string", - "DuraCloudContext":"string" - } - } diff --git a/doc/sphinx-guides/source/developers/index.rst b/doc/sphinx-guides/source/developers/index.rst index a1fb4dda581..ed5c80f4e48 100755 --- a/doc/sphinx-guides/source/developers/index.rst +++ b/doc/sphinx-guides/source/developers/index.rst @@ -30,3 +30,4 @@ Developer Guide geospatial selinux big-data-support + workflows diff --git a/doc/sphinx-guides/source/developers/workflows.rst b/doc/sphinx-guides/source/developers/workflows.rst new file mode 100644 index 00000000000..4b399903932 --- /dev/null +++ b/doc/sphinx-guides/source/developers/workflows.rst @@ -0,0 +1,126 @@ +Workflows +================ + +Dataverse has a flexible workflow mechanism that can be used to trigger actions before and after Dataset publication. + +.. contents:: |toctitle| + :local: + + +Introduction +--------- + +Dataverse can perform two sequences of actions when datasets are published: one prior to publishing (marked by a ``PrePublishDataset`` trigger), and one after the publication has succeeded (``PostPublishDataset``). The pre-publish workflow is useful for having an external system prepare a dataset for being publicly accessed (a possibly lengthy activity that requires moving files around, uploading videos to a streaming server, etc.), or to start an approval process. A post-publish workflow might be used for sending notifications about the newly published dataset. + +Workflow steps are created using *step providers*. Dataverse ships with an internal step provider that offers some basic functionality, and with the ability to load 3rd party step providers. This allows installations to implement functionality they need without changing the Dataverse source code. + +Steps can be internal (say, writing some data to the log) or external. External steps involve Dataverse sending a request to an external system, and waiting for the system to reply. The wait period is arbitrary, and so allows the external system unbounded operation time. This is useful, e.g., for steps that require human intervension, such as manual approval of a dataset publication. + +The external system reports the step result back to dataverse, by sending a HTTP ``POST`` command to ``api/workflows/{invocation-id}``. The body of the request is passed to the paused step for further processing. + +If a step in a workflow fails, Dataverse make an effort to roll back all the steps that preceded it. Some actions, such as writing to the log, cannot be rolled back. If such an action has a public external effect (e.g. send an EMail to a mailing list) it is advisable to put it in the post-release workflow. + +.. tip:: + For invoking external systems using a REST api, Dataverse's internal step + provider offers a step for sending and receiving customizable HTTP requests. + It's called *http/sr*, and is detailed below. + +Administration +~~~~~~~~~~~~~~ + +A Dataverse instance stores a set of workflows in its database. Workflows can be managed using the ``api/admin/workflows/`` endpoints of the :doc:`/api/native-api`. Sample workflow files are available in ``scripts/api/data/workflows``. + +At the moment, defining a workflow for each trigger is done for the entire instance, using the endpoint ``api/admin/workflows/default/«trigger type»``. + +In order to prevent unauthorized resuming of workflows, Dataverse maintains a "white list" of IP addresses from which resume requests are honored. This list is maintained using the ``/api/admin/workflows/ip-whitelist`` endpoint of the :doc:`/api/native-api`. By default, Dataverse honors resume requests from localhost only (``127.0.0.1;::1``), so set-ups that use a single server work with no additional configuration. + + +Available Steps +~~~~~~~~~~~~~~~ + +Dataverse has an internal step provider, whose id is ``:internal``. It offers the following steps: + +log ++++ + +A step that writes data about the current workflow invocation to the instance log. It also writes the messages in its ``parameters`` map. + +.. code:: json + + { + "provider":":internal", + "stepType":"log", + "parameters": { + "aMessage": "message content", + "anotherMessage": "message content, too" + } + } + + +pause ++++++ + +A step that pauses the workflow. The workflow is paused until a POST request is sent to ``/api/workflows/{invocation-id}``. + +.. code:: json + + { + "provider":":internal", + "stepType":"pause" + } + + +http/sr ++++++++ + +A step that sends a HTTP request to an external system, and then waits for a response. The response has to match a regular expression specified in the step parameters. The url, content type, and message body can use data from the workflow context, using a simple markup language. This step has specific parameters for rollback. + +.. code:: json + + { + "provider":":internal", + "stepType":"http/sr", + "parameters": { + "url":"http://localhost:5050/dump/${invocationId}", + "method":"POST", + "contentType":"text/plain", + "body":"START RELEASE ${dataset.id} as ${dataset.displayName}", + "expectedResponse":"OK.*", + "rollbackUrl":"http://localhost:5050/dump/${invocationId}", + "rollbackMethod":"DELETE ${dataset.id}" + } + } + +Available variables are: + +* ``invocationId`` +* ``dataset.id`` +* ``dataset.identifier`` +* ``dataset.globalId`` +* ``dataset.displayName`` +* ``dataset.citation`` +* ``minorVersion`` +* ``majorVersion`` +* ``releaseStatus`` + +dpn ++++++++ + +A step that sends an archival copy of a Dataset Version to the DuraCloud interface of the Digital Preservation Network. See the `DPN Integration documentation `_ for further detail. + +.. code:: json + + + { + "provider":":internal", + "stepType":"dpn", + "parameters": { + "stepName":"dpn submission" + }, + "requiredSettings": { + "DuraCloudHost":"string", + "DuraCloudPort":"string", + "DuraCloudContext":"string" + } + } + From 20d6f982a1f5acfe7a9b3d628ee2c05c3e85d188 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Wed, 28 Nov 2018 11:03:29 -0500 Subject: [PATCH 030/241] updates to generalize archiver --- .../edu/harvard/iq/dataverse/DatasetPage.java | 4 +- .../edu/harvard/iq/dataverse/api/Admin.java | 4 +- .../AbstractSubmitToArchiveCommand.java | 124 ++++++++++++++++++ ...nd.java => DPNSubmitToArchiveCommand.java} | 62 ++------- .../settings/SettingsServiceBean.java | 5 +- ...va => ArchivalSubmissionWorkflowStep.java} | 0 .../internalspi/InternalWorkflowStepSP.java | 2 +- 7 files changed, 145 insertions(+), 56 deletions(-) create mode 100644 src/main/java/edu/harvard/iq/dataverse/engine/command/AbstractSubmitToArchiveCommand.java rename src/main/java/edu/harvard/iq/dataverse/engine/command/impl/{SubmitToArchiveCommand.java => DPNSubmitToArchiveCommand.java} (82%) rename src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/{DPNSubmissionWorkflowStep.java => ArchivalSubmissionWorkflowStep.java} (100%) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 4455405dda3..0c5485789a5 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -88,7 +88,7 @@ import edu.harvard.iq.dataverse.engine.command.impl.PublishDatasetResult; import edu.harvard.iq.dataverse.engine.command.impl.RestrictFileCommand; import edu.harvard.iq.dataverse.engine.command.impl.ReturnDatasetToAuthorCommand; -import edu.harvard.iq.dataverse.engine.command.impl.SubmitToArchiveCommand; +import edu.harvard.iq.dataverse.engine.command.impl.DPNSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.impl.SubmitDatasetForReviewCommand; import edu.harvard.iq.dataverse.externaltools.ExternalTool; import edu.harvard.iq.dataverse.externaltools.ExternalToolServiceBean; @@ -4365,7 +4365,7 @@ public void archiveVersion(Long id) { AuthenticatedUser au = ((AuthenticatedUser) session.getUser()); DatasetVersion dv = datasetVersionService.retrieveDatasetVersionByVersionId(id).getDatasetVersion(); - SubmitToArchiveCommand cmd = new SubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); + DPNSubmitToArchiveCommand cmd = new DPNSubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); try { DatasetVersion version = commandEngine.submit(cmd); logger.info("Archived to " + version.getArchivalCopyLocation()); diff --git a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java index d3d4b567a01..f2972476447 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java @@ -79,7 +79,7 @@ import edu.harvard.iq.dataverse.engine.command.DataverseRequest; import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import edu.harvard.iq.dataverse.engine.command.impl.RegisterDvObjectCommand; -import edu.harvard.iq.dataverse.engine.command.impl.SubmitToArchiveCommand; +import edu.harvard.iq.dataverse.engine.command.impl.DPNSubmitToArchiveCommand; import edu.harvard.iq.dataverse.ingest.IngestServiceBean; import edu.harvard.iq.dataverse.settings.SettingsServiceBean; import edu.harvard.iq.dataverse.userdata.UserListMaker; @@ -1289,7 +1289,7 @@ public Response submitDatasetVersionToDPN(@PathParam("id") String dsid, @PathPar DatasetVersion dv = datasetversionService.findByFriendlyVersionNumber(ds.getId(), versionNumber); if (dv.getArchivalCopyLocation() == null) { - SubmitToArchiveCommand cmd = new SubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); + DPNSubmitToArchiveCommand cmd = new DPNSubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); try { dv = commandEngine.submit(cmd); if (dv.getArchivalCopyLocation() != null) { diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/AbstractSubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/AbstractSubmitToArchiveCommand.java new file mode 100644 index 00000000000..d8b809970a8 --- /dev/null +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/AbstractSubmitToArchiveCommand.java @@ -0,0 +1,124 @@ +package edu.harvard.iq.dataverse.engine.command; + +import edu.harvard.iq.dataverse.DOIDataCiteRegisterService; +import edu.harvard.iq.dataverse.DataCitation; +import edu.harvard.iq.dataverse.Dataset; +import edu.harvard.iq.dataverse.DatasetVersion; +import edu.harvard.iq.dataverse.DvObject; +import edu.harvard.iq.dataverse.DatasetLock.Reason; +import edu.harvard.iq.dataverse.authorization.Permission; +import edu.harvard.iq.dataverse.authorization.users.ApiToken; +import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; +import edu.harvard.iq.dataverse.engine.command.Command; +import edu.harvard.iq.dataverse.engine.command.CommandContext; +import edu.harvard.iq.dataverse.engine.command.DataverseRequest; +import edu.harvard.iq.dataverse.engine.command.RequiredPermissions; +import edu.harvard.iq.dataverse.engine.command.exception.CommandException; +import edu.harvard.iq.dataverse.settings.SettingsServiceBean; +import edu.harvard.iq.dataverse.util.bagit.BagGenerator; +import edu.harvard.iq.dataverse.util.bagit.OREMap; +import edu.harvard.iq.dataverse.workflow.step.Failure; +import edu.harvard.iq.dataverse.workflow.step.WorkflowStepResult; + +import static edu.harvard.iq.dataverse.engine.command.CommandHelper.CH; + +import java.io.IOException; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.nio.charset.Charset; +import java.security.DigestInputStream; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.logging.Logger; + +import org.apache.commons.codec.binary.Hex; +import org.apache.commons.io.IOUtils; +import org.duracloud.client.ContentStore; +import org.duracloud.client.ContentStoreManager; +import org.duracloud.client.ContentStoreManagerImpl; +import org.duracloud.common.model.Credential; +import org.duracloud.error.ContentStoreException; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +@RequiredPermissions(Permission.PublishDataset) +public abstract class AbstractSubmitToArchiveCommand implements Command { + + private final DatasetVersion version; + private final DataverseRequest request; + private final Map affectedDvObjects; + private final Map requestedSettings; + private static final Logger logger = Logger.getLogger(AbstractSubmitToArchiveCommand.class.getName()); + private static final String DEFAULT_PORT = "443"; + private static final String DEFAULT_CONTEXT = "durastore"; + + public AbstractSubmitToArchiveCommand(DataverseRequest aRequest, DatasetVersion version) { + this.request = aRequest; + this.version = version; + affectedDvObjects = new HashMap<>(); + affectedDvObjects.put("", version.getDataset()); + } + + @Override + public DatasetVersion execute(CommandContext ctxt) throws CommandException { + requestedSettings = new HashMap(); + String settings = ctxt.settings().getValueForKey(SettingsServiceBean.Key.ArchiveSettings); + String[] settingsArray = settings.split(","); + for (String setting : settingsArray) { + setting = setting.trim(); + if (!setting.startsWith(":")) { + logger.warn("Invalid Archiver Setting: " + setting); + } else { + requestedSettings.put(setting, ctxt.settings().getValueForKey(setting)); + } + } + AuthenticatedUser user = request.getAuthenticatedUser(); + ApiToken token = ctxt.authentication().findApiTokenByUser(user); + if ((token == null) || (token.getExpireTime().before(new Date()))) { + token = ctxt.authentication().generateApiTokenForUser(user); + } + performArchiveSubmission(version, user, token, requestedSettings); + return ctxt.em().merge(version); + } + + @Override + public Map getAffectedDvObjects() { + + return affectedDvObjects; + } + + @Override + public DataverseRequest getRequest() { + return request; + } + + @Override + public Map> getRequiredPermissions() { + return CH.permissionsRequired(getClass()); + } + + @Override + public String describe() { + // Is this ever used? + return "DatasetVersion: " + version.getId() + " " + version.getDataset().getDisplayName() + ".v" + + version.getFriendlyVersionNumber(); + } + + /** + * This method is the only one that should be overwritten by other classes. Note + * that this method may be called from the execute method above OR from a + * workflow in which execute() is never called and therefore in which all + * variables must be sent as method parameters. (Nominally version is set in the + * constructor and could be dropped from the parameter list.) + * + * @param version - the DatasetVersion to archive + * @param token - an API Token for the user performing this action + * @param requestedSettings - a map of the names/values for settings required by this archiver (sent because this class is not part of the EJB context (by design) and has no direct access to service beans). + */ + abstract public WorkflowStepResult performArchiveSubmission(DatasetVersion version, ApiToken token, Map requestedSetttings); +} diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java similarity index 82% rename from src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java rename to src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java index e44e0d17ede..81f4391e7de 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/SubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java @@ -9,6 +9,7 @@ import edu.harvard.iq.dataverse.authorization.Permission; import edu.harvard.iq.dataverse.authorization.users.ApiToken; import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; +import edu.harvard.iq.dataverse.engine.command.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.Command; import edu.harvard.iq.dataverse.engine.command.CommandContext; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; @@ -47,64 +48,29 @@ import com.google.gson.JsonParser; @RequiredPermissions(Permission.PublishDataset) -public class SubmitToArchiveCommand implements Command { +public class DPNSubmitToArchiveCommand extends AbstractSubmitToArchiveCommand implements Command { private final DatasetVersion version; private final DataverseRequest request; private final Map affectedDvObjects; - private static final Logger logger = Logger.getLogger(SubmitToArchiveCommand.class.getName()); + private static final Logger logger = Logger.getLogger(DPNSubmitToArchiveCommand.class.getName()); private static final String DEFAULT_PORT = "443"; private static final String DEFAULT_CONTEXT = "durastore"; + private static final String DURACLOUD_PORT = ":DuraCloudPort"; + private static final String DURACLOUD_HOST = ":DuraCloudHost"; + private static final String DURACLOUD_CONTEXT = ":DuraCloudContext"; + - public SubmitToArchiveCommand(DataverseRequest aRequest, DatasetVersion version) { - this.request = aRequest; - this.version = version; - affectedDvObjects = new HashMap<>(); - affectedDvObjects.put("", version.getDataset()); + public DPNSubmitToArchiveCommand(DataverseRequest aRequest, DatasetVersion version) { + super(aRequest, version); } @Override - public DatasetVersion execute(CommandContext ctxt) throws CommandException { - String host = ctxt.settings().getValueForKey(SettingsServiceBean.Key.DuraCloudHost); - String port = ctxt.settings().getValueForKey(SettingsServiceBean.Key.DuraCloudPort); - String dpnContext = ctxt.settings().getValueForKey(SettingsServiceBean.Key.DuraCloudContext); - AuthenticatedUser user = request.getAuthenticatedUser(); - ApiToken token = ctxt.authentication().findApiTokenByUser(user); - if ((token == null) || (token.getExpireTime().before(new Date()))) { - token = ctxt.authentication().generateApiTokenForUser(user); - } - performDPNSubmission(version, user, host, port, dpnContext, token); - return ctxt.em().merge(version); - } - - @Override - public Map getAffectedDvObjects() { - - return affectedDvObjects; - } - - @Override - public DataverseRequest getRequest() { - return request; - } - - @Override - public Map> getRequiredPermissions() { - return CH.permissionsRequired(getClass()); - } - - @Override - public String describe() { - // Is this ever used? - return "DatasetVersion: " + version.getId() + " " + version.getDataset().getDisplayName() + ".v" - + version.getFriendlyVersionNumber(); - } - - public static WorkflowStepResult performDPNSubmission(DatasetVersion dv, AuthenticatedUser user, String host, - String aPort, String aDpnContext, ApiToken token) { + public WorkflowStepResult performDPNSubmission(DatasetVersion dv, ApiToken token, Map requestedSetttings) { - String port = aPort != null ? aPort : DEFAULT_PORT; - String dpnContext = aDpnContext != null ? aDpnContext : DEFAULT_CONTEXT; + String port = requestedSettings.get(DURACLOUD_PORT) != null ? requestedSettings.get(DURACLOUD_PORT) : DEFAULT_PORT; + String dpnContext = requestedSettings.get(DURACLOUD_CONTEXT) != null ? requestedSettings.get(DURACLOUD_CONTEXT) : DEFAULT_CONTEXT; + String host = requestedSettings.get(DURACLOUD_HOST); if (host != null) { Dataset dataset = dv.getDataset(); if (dataset.getLockFor(Reason.pidRegister) == null) { @@ -241,7 +207,7 @@ public void run() { } return WorkflowStepResult.OK; } else { - return new Failure("DPN Submission not configured."); + return new Failure("DPN Submission not configured - no \":DuraCloudHost\"."); } } } diff --git a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java index bc08e0f7bf2..f1d89935bb0 100644 --- a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java @@ -382,9 +382,8 @@ Whether Harvesting (OAI) service is enabled * DuraCloudContext, default is "durastore" */ - DuraCloudHost, - DuraCloudPort, - DuraCloudContext, + ArchiverClassName, + ArchiverSettings, /** * A comma-separated list of roles for which new dataverses should inherit the * corresponding role assignments from the parent dataverse. Also affects diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/DPNSubmissionWorkflowStep.java b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java similarity index 100% rename from src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/DPNSubmissionWorkflowStep.java rename to src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java index 5d4975417a5..ed4ed6448e9 100644 --- a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java @@ -20,7 +20,7 @@ public WorkflowStep getStep(String stepType, Map stepParameters) case "http/sr": return new HttpSendReceiveClientStep(stepParameters); case "dpn": - return new DPNSubmissionWorkflowStep(stepParameters); + return new ArchivalSubmissionWorkflowStep(stepParameters); default: throw new IllegalArgumentException("Unsupported step type: '" + stepType + "'."); } From c6a33439fde832c74542333052b58c9808f4ee70 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Wed, 28 Nov 2018 11:04:10 -0500 Subject: [PATCH 031/241] partial update --- .gitignore | 1 + .../ArchivalSubmissionWorkflowStep.java | 24 ++++++++++--------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index e1915ef7ddc..1e802991547 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,4 @@ scripts/installer/default.config # do not track IntelliJ IDEA files .idea **/*.iml +/bin/ diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java index 43ba2152e71..cf5cb8ea89d 100644 --- a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java @@ -1,41 +1,43 @@ package edu.harvard.iq.dataverse.workflow.internalspi; -import edu.harvard.iq.dataverse.engine.command.impl.SubmitToArchiveCommand; +import edu.harvard.iq.dataverse.engine.command.DataverseRequest; +import edu.harvard.iq.dataverse.engine.command.impl.DPNSubmitToArchiveCommand; import edu.harvard.iq.dataverse.workflow.WorkflowContext; import edu.harvard.iq.dataverse.workflow.step.Failure; import edu.harvard.iq.dataverse.workflow.step.WorkflowStep; import edu.harvard.iq.dataverse.workflow.step.WorkflowStepResult; +import java.util.HashMap; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; /** - * A step that submits a BagIT bag of the newly published dataset version to DPN - * via he Duracloud Vault API. + * A step that submits a BagIT bag of the newly published dataset version via a configured archiver. * * @author jimmyers */ -public class DPNSubmissionWorkflowStep implements WorkflowStep { +public class ArchivalSubmissionWorkflowStep implements WorkflowStep { - private static final Logger logger = Logger.getLogger(DPNSubmissionWorkflowStep.class.getName()); + private static final Logger logger = Logger.getLogger(ArchivalSubmissionWorkflowStep.class.getName()); - public DPNSubmissionWorkflowStep(Map paramSet) { + public ArchivalSubmissionWorkflowStep(Map paramSet) { } @Override public WorkflowStepResult run(WorkflowContext context) { + Map requestedSettings = new HashMap(); String host=(String) context.getSettings().get(":DuraCloudHost"); - String port = (String) context.getSettings().get(":DuraCloudPort"); - String dpnContext = (String) context.getSettings().get(":DuraCloudContext"); + requestedSettings.put(":DuraCloudHost", host); + //String port = (String) context.getSettings().get(":DuraCloudPort"); + //String dpnContext = (String) context.getSettings().get(":DuraCloudContext"); if(host==null) { logger.severe("No DuraCloudHost - DPN Submission not attempted"); return new Failure("No DuraCloudHost", "DuraCloudHost not found in Settings"); } else { - return SubmitToArchiveCommand.performDPNSubmission( - context.getDataset().getReleasedVersion(), - context.getRequest().getAuthenticatedUser(), host, port, dpnContext, context.getApiToken()); + return (new DPNSubmitToArchiveCommand(new DataverseRequest(context.getDataset().getReleasedVersion(), context.getRequest().getAuthenticatedUser()))) + .performDPNSubmission(context.getDataset().getReleasedVersion() context.getApiToken(), requestedSettings); } } From c574f423cbdaabce55fa3f76dba0cfabae45adc5 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Wed, 28 Nov 2018 17:32:45 -0500 Subject: [PATCH 032/241] reflective instantiation of archiver --- .../edu/harvard/iq/dataverse/DatasetPage.java | 32 ++-- .../edu/harvard/iq/dataverse/api/Admin.java | 43 ++--- .../AbstractSubmitToArchiveCommand.java | 43 ++--- .../impl/DPNSubmitToArchiveCommand.java | 150 ++++++++---------- .../iq/dataverse/util/ArchiverUtil.java | 38 +++++ .../ArchivalSubmissionWorkflowStep.java | 44 +++-- .../internalspi/InternalWorkflowStepSP.java | 2 +- 7 files changed, 184 insertions(+), 168 deletions(-) create mode 100644 src/main/java/edu/harvard/iq/dataverse/util/ArchiverUtil.java diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 0c5485789a5..50606f3f52e 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -15,6 +15,7 @@ import edu.harvard.iq.dataverse.dataset.DatasetThumbnail; import edu.harvard.iq.dataverse.dataset.DatasetUtil; import edu.harvard.iq.dataverse.datavariable.VariableServiceBean; +import edu.harvard.iq.dataverse.engine.command.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.Command; import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import edu.harvard.iq.dataverse.engine.command.impl.CreatePrivateUrlCommand; @@ -39,6 +40,7 @@ import edu.harvard.iq.dataverse.search.SearchFilesServiceBean; import edu.harvard.iq.dataverse.search.SortBy; import edu.harvard.iq.dataverse.settings.SettingsServiceBean; +import edu.harvard.iq.dataverse.util.ArchiverUtil; import edu.harvard.iq.dataverse.util.BundleUtil; import edu.harvard.iq.dataverse.util.FileSortFieldAndOrder; import edu.harvard.iq.dataverse.util.FileUtil; @@ -88,7 +90,6 @@ import edu.harvard.iq.dataverse.engine.command.impl.PublishDatasetResult; import edu.harvard.iq.dataverse.engine.command.impl.RestrictFileCommand; import edu.harvard.iq.dataverse.engine.command.impl.ReturnDatasetToAuthorCommand; -import edu.harvard.iq.dataverse.engine.command.impl.DPNSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.impl.SubmitDatasetForReviewCommand; import edu.harvard.iq.dataverse.externaltools.ExternalTool; import edu.harvard.iq.dataverse.externaltools.ExternalToolServiceBean; @@ -4365,20 +4366,27 @@ public void archiveVersion(Long id) { AuthenticatedUser au = ((AuthenticatedUser) session.getUser()); DatasetVersion dv = datasetVersionService.retrieveDatasetVersionByVersionId(id).getDatasetVersion(); - DPNSubmitToArchiveCommand cmd = new DPNSubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); - try { - DatasetVersion version = commandEngine.submit(cmd); - logger.info("Archived to " + version.getArchivalCopyLocation()); - if (version.getArchivalCopyLocation() != null) { - resetVersionTabList(); - this.setVersionTabListForPostLoad(getVersionTabList()); - JsfHelper.addSuccessMessage(BundleUtil.getStringFromBundle("datasetversion.archive.success")); - } else { + String className = settingsService.getValueForKey(SettingsServiceBean.Key.ArchiverClassName); + AbstractSubmitToArchiveCommand cmd = ArchiverUtil.createSubmitToArchiveCommand(className, dvRequestService.getDataverseRequest(), dv); + if (cmd != null) { + try { + DatasetVersion version = commandEngine.submit(cmd); + logger.info("Archived to " + version.getArchivalCopyLocation()); + if (version.getArchivalCopyLocation() != null) { + resetVersionTabList(); + this.setVersionTabListForPostLoad(getVersionTabList()); + JsfHelper.addSuccessMessage(BundleUtil.getStringFromBundle("datasetversion.archive.success")); + } else { + JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("datasetversion.archive.failure")); + } + } catch (CommandException ex) { + logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("datasetversion.archive.failure")); } - } catch (CommandException ex) { - logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); + } else { + logger.log(Level.SEVERE, "Could not find Archiver class: " + className); JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("datasetversion.archive.failure")); + } } } diff --git a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java index f2972476447..d8927d04c13 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java @@ -12,19 +12,15 @@ import edu.harvard.iq.dataverse.DvObject; import edu.harvard.iq.dataverse.EMailValidator; import edu.harvard.iq.dataverse.EjbDataverseEngine; -import edu.harvard.iq.dataverse.RoleAssignment; import edu.harvard.iq.dataverse.GlobalId; import edu.harvard.iq.dataverse.UserServiceBean; import edu.harvard.iq.dataverse.actionlogging.ActionLogRecord; -import static edu.harvard.iq.dataverse.api.AbstractApiBean.error; import edu.harvard.iq.dataverse.api.dto.RoleDTO; import edu.harvard.iq.dataverse.authorization.AuthenticatedUserDisplayInfo; import edu.harvard.iq.dataverse.authorization.AuthenticationProvider; -import edu.harvard.iq.dataverse.authorization.DataverseRole; import edu.harvard.iq.dataverse.authorization.UserIdentifier; import edu.harvard.iq.dataverse.authorization.exceptions.AuthenticationProviderFactoryNotFoundException; import edu.harvard.iq.dataverse.authorization.exceptions.AuthorizationSetupException; -import edu.harvard.iq.dataverse.authorization.groups.Group; import edu.harvard.iq.dataverse.authorization.groups.GroupServiceBean; import edu.harvard.iq.dataverse.authorization.providers.AuthenticationProviderRow; import edu.harvard.iq.dataverse.authorization.providers.builtin.BuiltinUser; @@ -76,22 +72,21 @@ import edu.harvard.iq.dataverse.authorization.users.User; import edu.harvard.iq.dataverse.dataset.DatasetThumbnail; import edu.harvard.iq.dataverse.dataset.DatasetUtil; +import edu.harvard.iq.dataverse.engine.command.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import edu.harvard.iq.dataverse.engine.command.impl.RegisterDvObjectCommand; -import edu.harvard.iq.dataverse.engine.command.impl.DPNSubmitToArchiveCommand; import edu.harvard.iq.dataverse.ingest.IngestServiceBean; import edu.harvard.iq.dataverse.settings.SettingsServiceBean; import edu.harvard.iq.dataverse.userdata.UserListMaker; import edu.harvard.iq.dataverse.userdata.UserListResult; +import edu.harvard.iq.dataverse.util.ArchiverUtil; import edu.harvard.iq.dataverse.util.BundleUtil; import edu.harvard.iq.dataverse.util.FileUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; -import java.util.HashMap; -import java.util.ResourceBundle; import javax.inject.Inject; import javax.persistence.Query; import javax.ws.rs.QueryParam; @@ -129,6 +124,8 @@ public class Admin extends AbstractApiBean { EjbDataverseEngine commandEngine; @EJB GroupServiceBean groupService; + @EJB + SettingsServiceBean settingsService; // Make the session available @Inject @@ -1279,8 +1276,8 @@ public Response updateHashValues(@PathParam("alg") String alg, @QueryParam("num" } @GET - @Path("/submitDataVersionToDPN/{id}/{version}") - public Response submitDatasetVersionToDPN(@PathParam("id") String dsid, @PathParam("version") String versionNumber) { + @Path("/submitDataVersionToArchive/{id}/{version}") + public Response submitDatasetVersionToArchive(@PathParam("id") String dsid, @PathParam("version") String versionNumber) { try { AuthenticatedUser au = findAuthenticatedUserOrDie(); @@ -1289,18 +1286,24 @@ public Response submitDatasetVersionToDPN(@PathParam("id") String dsid, @PathPar DatasetVersion dv = datasetversionService.findByFriendlyVersionNumber(ds.getId(), versionNumber); if (dv.getArchivalCopyLocation() == null) { - DPNSubmitToArchiveCommand cmd = new DPNSubmitToArchiveCommand(dvRequestService.getDataverseRequest(), dv); - try { - dv = commandEngine.submit(cmd); - if (dv.getArchivalCopyLocation() != null) { - return ok("DatasetVersion id=" + ds.getGlobalId().toString() + " v" + versionNumber + " submitted to DPN/Duracloud at: " - + dv.getArchivalCopyLocation()); - } else { - return error(Status.CONFLICT, "Error submitting version due to conflict/error at DPN"); + String className = settingsService.getValueForKey(SettingsServiceBean.Key.ArchiverClassName); + AbstractSubmitToArchiveCommand cmd = ArchiverUtil.createSubmitToArchiveCommand(className, dvRequestService.getDataverseRequest(), dv); + if (cmd != null) { + try { + dv = commandEngine.submit(cmd); + if (dv.getArchivalCopyLocation() != null) { + return ok("DatasetVersion id=" + ds.getGlobalId().toString() + " v" + versionNumber + " submitted to Archive at: " + + dv.getArchivalCopyLocation()); + } else { + return error(Status.CONFLICT, "Error submitting version due to conflict/error at Archive"); + } + } catch (CommandException ex) { + logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); + return error(Response.Status.INTERNAL_SERVER_ERROR, ex.getMessage()); } - } catch (CommandException ex) { - logger.log(Level.SEVERE, "Unexpected Exception calling submit archive command", ex); - return error(Response.Status.INTERNAL_SERVER_ERROR, ex.getMessage()); + } else { + logger.log(Level.SEVERE, "Could not find Archiver class: " + className); + return error(Response.Status.INTERNAL_SERVER_ERROR, "Missing Archiver class: " + className); } } else { return error(Status.BAD_REQUEST, "Version already archived at: " + dv.getArchivalCopyLocation()); diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/AbstractSubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/AbstractSubmitToArchiveCommand.java index d8b809970a8..0067e04afb2 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/AbstractSubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/AbstractSubmitToArchiveCommand.java @@ -1,11 +1,7 @@ package edu.harvard.iq.dataverse.engine.command; -import edu.harvard.iq.dataverse.DOIDataCiteRegisterService; -import edu.harvard.iq.dataverse.DataCitation; -import edu.harvard.iq.dataverse.Dataset; import edu.harvard.iq.dataverse.DatasetVersion; import edu.harvard.iq.dataverse.DvObject; -import edu.harvard.iq.dataverse.DatasetLock.Reason; import edu.harvard.iq.dataverse.authorization.Permission; import edu.harvard.iq.dataverse.authorization.users.ApiToken; import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; @@ -15,48 +11,25 @@ import edu.harvard.iq.dataverse.engine.command.RequiredPermissions; import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import edu.harvard.iq.dataverse.settings.SettingsServiceBean; -import edu.harvard.iq.dataverse.util.bagit.BagGenerator; -import edu.harvard.iq.dataverse.util.bagit.OREMap; -import edu.harvard.iq.dataverse.workflow.step.Failure; import edu.harvard.iq.dataverse.workflow.step.WorkflowStepResult; import static edu.harvard.iq.dataverse.engine.command.CommandHelper.CH; -import java.io.IOException; -import java.io.PipedInputStream; -import java.io.PipedOutputStream; -import java.nio.charset.Charset; -import java.security.DigestInputStream; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.logging.Logger; -import org.apache.commons.codec.binary.Hex; -import org.apache.commons.io.IOUtils; -import org.duracloud.client.ContentStore; -import org.duracloud.client.ContentStoreManager; -import org.duracloud.client.ContentStoreManagerImpl; -import org.duracloud.common.model.Credential; -import org.duracloud.error.ContentStoreException; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - @RequiredPermissions(Permission.PublishDataset) public abstract class AbstractSubmitToArchiveCommand implements Command { private final DatasetVersion version; private final DataverseRequest request; private final Map affectedDvObjects; - private final Map requestedSettings; + private final Map requestedSettings = new HashMap(); private static final Logger logger = Logger.getLogger(AbstractSubmitToArchiveCommand.class.getName()); - private static final String DEFAULT_PORT = "443"; - private static final String DEFAULT_CONTEXT = "durastore"; - + public AbstractSubmitToArchiveCommand(DataverseRequest aRequest, DatasetVersion version) { this.request = aRequest; this.version = version; @@ -66,23 +39,24 @@ public AbstractSubmitToArchiveCommand(DataverseRequest aRequest, DatasetVersion @Override public DatasetVersion execute(CommandContext ctxt) throws CommandException { - requestedSettings = new HashMap(); - String settings = ctxt.settings().getValueForKey(SettingsServiceBean.Key.ArchiveSettings); + + String settings = ctxt.settings().getValueForKey(SettingsServiceBean.Key.ArchiverSettings); String[] settingsArray = settings.split(","); for (String setting : settingsArray) { setting = setting.trim(); if (!setting.startsWith(":")) { - logger.warn("Invalid Archiver Setting: " + setting); + logger.warning("Invalid Archiver Setting: " + setting); } else { - requestedSettings.put(setting, ctxt.settings().getValueForKey(setting)); + requestedSettings.put(setting, ctxt.settings().get(setting)); } } + AuthenticatedUser user = request.getAuthenticatedUser(); ApiToken token = ctxt.authentication().findApiTokenByUser(user); if ((token == null) || (token.getExpireTime().before(new Date()))) { token = ctxt.authentication().generateApiTokenForUser(user); } - performArchiveSubmission(version, user, token, requestedSettings); + performArchiveSubmission(version, token, requestedSettings); return ctxt.em().merge(version); } @@ -121,4 +95,5 @@ public String describe() { * @param requestedSettings - a map of the names/values for settings required by this archiver (sent because this class is not part of the EJB context (by design) and has no direct access to service beans). */ abstract public WorkflowStepResult performArchiveSubmission(DatasetVersion version, ApiToken token, Map requestedSetttings); + } diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java index 81f4391e7de..8ebe170a357 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java @@ -4,25 +4,18 @@ import edu.harvard.iq.dataverse.DataCitation; import edu.harvard.iq.dataverse.Dataset; import edu.harvard.iq.dataverse.DatasetVersion; -import edu.harvard.iq.dataverse.DvObject; import edu.harvard.iq.dataverse.DatasetLock.Reason; import edu.harvard.iq.dataverse.authorization.Permission; import edu.harvard.iq.dataverse.authorization.users.ApiToken; -import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; import edu.harvard.iq.dataverse.engine.command.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.Command; -import edu.harvard.iq.dataverse.engine.command.CommandContext; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; import edu.harvard.iq.dataverse.engine.command.RequiredPermissions; -import edu.harvard.iq.dataverse.engine.command.exception.CommandException; -import edu.harvard.iq.dataverse.settings.SettingsServiceBean; import edu.harvard.iq.dataverse.util.bagit.BagGenerator; import edu.harvard.iq.dataverse.util.bagit.OREMap; import edu.harvard.iq.dataverse.workflow.step.Failure; import edu.harvard.iq.dataverse.workflow.step.WorkflowStepResult; -import static edu.harvard.iq.dataverse.engine.command.CommandHelper.CH; - import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; @@ -30,43 +23,32 @@ import java.security.DigestInputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; -import java.util.Date; -import java.util.HashMap; import java.util.Map; -import java.util.Set; import java.util.logging.Logger; import org.apache.commons.codec.binary.Hex; -import org.apache.commons.io.IOUtils; import org.duracloud.client.ContentStore; import org.duracloud.client.ContentStoreManager; import org.duracloud.client.ContentStoreManagerImpl; import org.duracloud.common.model.Credential; import org.duracloud.error.ContentStoreException; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - @RequiredPermissions(Permission.PublishDataset) public class DPNSubmitToArchiveCommand extends AbstractSubmitToArchiveCommand implements Command { - private final DatasetVersion version; - private final DataverseRequest request; - private final Map affectedDvObjects; private static final Logger logger = Logger.getLogger(DPNSubmitToArchiveCommand.class.getName()); private static final String DEFAULT_PORT = "443"; private static final String DEFAULT_CONTEXT = "durastore"; private static final String DURACLOUD_PORT = ":DuraCloudPort"; private static final String DURACLOUD_HOST = ":DuraCloudHost"; private static final String DURACLOUD_CONTEXT = ":DuraCloudContext"; - public DPNSubmitToArchiveCommand(DataverseRequest aRequest, DatasetVersion version) { super(aRequest, version); } @Override - public WorkflowStepResult performDPNSubmission(DatasetVersion dv, ApiToken token, Map requestedSetttings) { + public WorkflowStepResult performArchiveSubmission(DatasetVersion dv, ApiToken token, Map requestedSettings) { String port = requestedSettings.get(DURACLOUD_PORT) != null ? requestedSettings.get(DURACLOUD_PORT) : DEFAULT_PORT; String dpnContext = requestedSettings.get(DURACLOUD_CONTEXT) != null ? requestedSettings.get(DURACLOUD_CONTEXT) : DEFAULT_CONTEXT; @@ -74,7 +56,7 @@ public WorkflowStepResult performDPNSubmission(DatasetVersion dv, ApiToken token if (host != null) { Dataset dataset = dv.getDataset(); if (dataset.getLockFor(Reason.pidRegister) == null) { - //Use Duracloud client classes to login + // Use Duracloud client classes to login ContentStoreManager storeManager = new ContentStoreManagerImpl(host, port, dpnContext); Credential credential = new Credential(System.getProperty("duracloud.username"), System.getProperty("duracloud.password")); @@ -85,93 +67,86 @@ public WorkflowStepResult performDPNSubmission(DatasetVersion dv, ApiToken token ContentStore store; try { - /* If there is a failure in creating a space, it is likely that a prior version has not been fully processed - * (snapshot created, archiving completed and files and space deleted - currently manual operations - * done at the project's duracloud website) + /* + * If there is a failure in creating a space, it is likely that a prior version + * has not been fully processed (snapshot created, archiving completed and files + * and space deleted - currently manual operations done at the project's + * duracloud website) */ store = storeManager.getPrimaryContentStore(); - //Create space to copy archival files to + // Create space to copy archival files to store.createSpace(spaceName); DataCitation dc = new DataCitation(dv); Map metadata = dc.getDataCiteMetadata(); String dataciteXml = DOIDataCiteRegisterService.getMetadataFromDvObject( dv.getDataset().getGlobalId().asString(), metadata, dv.getDataset()); - - try { - // Add datacite.xml file - MessageDigest messageDigest = MessageDigest.getInstance("MD5"); - - PipedInputStream dataciteIn = new PipedInputStream(); - PipedOutputStream dataciteOut = new PipedOutputStream(dataciteIn); - new Thread(new Runnable() { - public void run() { - try { - - dataciteOut.write(dataciteXml.getBytes(Charset.forName("utf-8"))); - dataciteOut.close(); - } catch (Exception e) { - logger.severe("Error creating datacite.xml: " + e.getMessage()); - // TODO Auto-generated catch block - e.printStackTrace(); - IOUtils.closeQuietly(dataciteIn); - IOUtils.closeQuietly(dataciteOut); - } - } - }).start(); - - DigestInputStream digestInputStream = new DigestInputStream(dataciteIn, messageDigest); - String checksum = store.addContent(spaceName, "datacite.xml", digestInputStream, -1l, null, null, - null); - logger.fine("Content: datacite.xml added with checksum: " + checksum); - String localchecksum = Hex.encodeHexString(digestInputStream.getMessageDigest().digest()); - if (!checksum.equals(localchecksum)) { - logger.severe(checksum + " not equal to " + localchecksum); - return new Failure("Error in transferring DataCite.xml file to DPN", - "DPN Submission Failure: incomplete metadata transfer"); - } - IOUtils.closeQuietly(digestInputStream); - - // Store BagIt file - String fileName = spaceName + "v" + dv.getFriendlyVersionNumber() + ".zip"; + MessageDigest messageDigest = MessageDigest.getInstance("MD5"); + try (PipedInputStream dataciteIn = new PipedInputStream(); DigestInputStream digestInputStream = new DigestInputStream(dataciteIn, messageDigest)) { + // Add datacite.xml file - // Add BagIt ZIP file - //Although DPN uses SHA-256 internally, it's API uses MD5 to verify the transfer - messageDigest = MessageDigest.getInstance("MD5"); - PipedInputStream in = new PipedInputStream(); - PipedOutputStream out = new PipedOutputStream(in); new Thread(new Runnable() { public void run() { - try { - //Generate bag - BagGenerator bagger = new BagGenerator(new OREMap(dv, false), dataciteXml); - bagger.setAuthenticationKey(token.getTokenString()); - bagger.generateBag(out); + try (PipedOutputStream dataciteOut = new PipedOutputStream(dataciteIn)) { + + dataciteOut.write(dataciteXml.getBytes(Charset.forName("utf-8"))); + dataciteOut.close(); } catch (Exception e) { - logger.severe("Error creating bag: " + e.getMessage()); + logger.severe("Error creating datacite.xml: " + e.getMessage()); // TODO Auto-generated catch block e.printStackTrace(); - IOUtils.closeQuietly(in); - IOUtils.closeQuietly(out); } } }).start(); - digestInputStream = new DigestInputStream(in, messageDigest); - checksum = store.addContent(spaceName, fileName, digestInputStream, -1l, null, null, + + String checksum = store.addContent(spaceName, "datacite.xml", digestInputStream, -1l, null, null, null); - logger.fine("Content: " + fileName + " added with checksum: " + checksum); - localchecksum = Hex.encodeHexString(digestInputStream.getMessageDigest().digest()); + logger.fine("Content: datacite.xml added with checksum: " + checksum); + String localchecksum = Hex.encodeHexString(digestInputStream.getMessageDigest().digest()); if (!checksum.equals(localchecksum)) { logger.severe(checksum + " not equal to " + localchecksum); - return new Failure("Error in transferring Zip file to DPN", - "DPN Submission Failure: incomplete archive transfer"); + return new Failure("Error in transferring DataCite.xml file to DPN", + "DPN Submission Failure: incomplete metadata transfer"); } - IOUtils.closeQuietly(digestInputStream); - - + + // Store BagIt file + String fileName = spaceName + "v" + dv.getFriendlyVersionNumber() + ".zip"; + + // Add BagIt ZIP file + // Although DPN uses SHA-256 internally, it's API uses MD5 to verify the + // transfer + messageDigest = MessageDigest.getInstance("MD5"); + try (PipedInputStream in = new PipedInputStream(); PipedOutputStream out = new PipedOutputStream(in); DigestInputStream digestInputStream2 = new DigestInputStream(in, messageDigest)) { + new Thread(new Runnable() { + public void run() { + try { + // Generate bag + BagGenerator bagger = new BagGenerator(new OREMap(dv, false), dataciteXml); + bagger.setAuthenticationKey(token.getTokenString()); + bagger.generateBag(out); + } catch (Exception e) { + logger.severe("Error creating bag: " + e.getMessage()); + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + }).start(); + + checksum = store.addContent(spaceName, fileName, digestInputStream2, -1l, null, null, + null); + logger.fine("Content: " + fileName + " added with checksum: " + checksum); + localchecksum = Hex.encodeHexString(digestInputStream2.getMessageDigest().digest()); + if (!checksum.equals(localchecksum)) { + logger.severe(checksum + " not equal to " + localchecksum); + return new Failure("Error in transferring Zip file to DPN", + "DPN Submission Failure: incomplete archive transfer"); + } + } + logger.fine("DPN Submission step: Content Transferred"); - - // Document the location of dataset archival copy location (actually the URL where you can + + // Document the location of dataset archival copy location (actually the URL + // where you can // view it as an admin) StringBuffer sb = new StringBuffer("https://"); sb.append(host); @@ -189,8 +164,6 @@ public void run() { e.printStackTrace(); return new Failure("Error in transferring file to DPN", "DPN Submission Failure: archive file not transferred"); - } catch (NoSuchAlgorithmException e) { - logger.severe("MD5 MessageDigest not available!"); } } catch (ContentStoreException e) { logger.warning(e.getMessage()); @@ -200,6 +173,8 @@ public void run() { mesg = mesg + ": Prior Version archiving not yet complete?"; } return new Failure("Unable to create DPN space with name: " + spaceName, mesg); + } catch (NoSuchAlgorithmException e) { + logger.severe("MD5 MessageDigest not available!"); } } else { logger.warning("DPN Submision Workflow aborted: Dataset locked for pidRegister"); @@ -210,4 +185,5 @@ public void run() { return new Failure("DPN Submission not configured - no \":DuraCloudHost\"."); } } + } diff --git a/src/main/java/edu/harvard/iq/dataverse/util/ArchiverUtil.java b/src/main/java/edu/harvard/iq/dataverse/util/ArchiverUtil.java new file mode 100644 index 00000000000..4da07415b67 --- /dev/null +++ b/src/main/java/edu/harvard/iq/dataverse/util/ArchiverUtil.java @@ -0,0 +1,38 @@ +package edu.harvard.iq.dataverse.util; + +import java.lang.reflect.Constructor; +import java.util.logging.Logger; + +import edu.harvard.iq.dataverse.DatasetVersion; +import edu.harvard.iq.dataverse.engine.command.AbstractSubmitToArchiveCommand; +import edu.harvard.iq.dataverse.engine.command.DataverseRequest; + +/** + * Simple class to reflectively get an instance of the desired class for + * archiving. + * + */ +public class ArchiverUtil { + + private static final Logger logger = Logger.getLogger(ArchiverUtil.class.getName()); + + public ArchiverUtil() { + } + + public static AbstractSubmitToArchiveCommand createSubmitToArchiveCommand(String className, DataverseRequest dvr, DatasetVersion version) { + + try { + Class clazz = Class.forName(className); + if (AbstractSubmitToArchiveCommand.class.isAssignableFrom(clazz)) { + Constructor ctor; + ctor = clazz.getConstructor(DataverseRequest.class, DatasetVersion.class); + return (AbstractSubmitToArchiveCommand) ctor.newInstance(new Object[] { dvr, version }); + } + } catch (Exception e) { + logger.warning("Unable to instantiate an Archiver of class: " + className); + e.printStackTrace(); + } + + return null; + } +} diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java index cf5cb8ea89d..97c36f11d50 100644 --- a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java @@ -1,19 +1,26 @@ package edu.harvard.iq.dataverse.workflow.internalspi; +import edu.harvard.iq.dataverse.DatasetVersion; +import edu.harvard.iq.dataverse.engine.command.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; -import edu.harvard.iq.dataverse.engine.command.impl.DPNSubmitToArchiveCommand; +import edu.harvard.iq.dataverse.settings.SettingsServiceBean; +import edu.harvard.iq.dataverse.util.ArchiverUtil; import edu.harvard.iq.dataverse.workflow.WorkflowContext; import edu.harvard.iq.dataverse.workflow.step.Failure; import edu.harvard.iq.dataverse.workflow.step.WorkflowStep; import edu.harvard.iq.dataverse.workflow.step.WorkflowStepResult; +import java.lang.reflect.Constructor; import java.util.HashMap; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import javax.servlet.http.HttpServletRequest; + /** - * A step that submits a BagIT bag of the newly published dataset version via a configured archiver. + * A step that submits a BagIT bag of the newly published dataset version via a + * configured archiver. * * @author jimmyers */ @@ -28,19 +35,29 @@ public ArchivalSubmissionWorkflowStep(Map paramSet) { @Override public WorkflowStepResult run(WorkflowContext context) { Map requestedSettings = new HashMap(); - String host=(String) context.getSettings().get(":DuraCloudHost"); - requestedSettings.put(":DuraCloudHost", host); - //String port = (String) context.getSettings().get(":DuraCloudPort"); - //String dpnContext = (String) context.getSettings().get(":DuraCloudContext"); - if(host==null) { - logger.severe("No DuraCloudHost - DPN Submission not attempted"); - return new Failure("No DuraCloudHost", "DuraCloudHost not found in Settings"); + Map typedSettings = context.getSettings(); + for (String setting : (typedSettings.keySet())) { + Object val = typedSettings.get(setting); + if (val instanceof String) { + requestedSettings.put(setting, (String) val); + } else if (val instanceof Boolean) { + requestedSettings.put(setting, ((Boolean) val).booleanValue() ? "true" : "false"); + } else if (val instanceof Long) { + requestedSettings.put(setting, val.toString()); + } + } + + DataverseRequest dvr = new DataverseRequest(context.getRequest().getAuthenticatedUser(), (HttpServletRequest) null); + String className = requestedSettings.get(SettingsServiceBean.Key.ArchiverClassName.toString()); + AbstractSubmitToArchiveCommand archiveCommand = ArchiverUtil.createSubmitToArchiveCommand(className, dvr, context.getDataset().getReleasedVersion()); + if (archiveCommand != null) { + return (archiveCommand.performArchiveSubmission(context.getDataset().getReleasedVersion(), context.getApiToken(), requestedSettings)); } else { - return (new DPNSubmitToArchiveCommand(new DataverseRequest(context.getDataset().getReleasedVersion(), context.getRequest().getAuthenticatedUser()))) - .performDPNSubmission(context.getDataset().getReleasedVersion() context.getApiToken(), requestedSettings); + logger.severe("No Archiver instance could be created for name: " + className); + return new Failure("No Archiver", "Could not create instance of class: " + className); } - } + } @Override public WorkflowStepResult resume(WorkflowContext context, Map internalData, String externalData) { @@ -50,7 +67,6 @@ public WorkflowStepResult resume(WorkflowContext context, Map in @Override public void rollback(WorkflowContext context, Failure reason) { logger.log(Level.INFO, "rolling back workflow invocation {0}", context.getInvocationId()); - logger.warning("Manual cleanup of DPN Space: " + context.getDataset().getGlobalId().asString().replace(':', '-') - .replace('/', '-').replace('.', '-').toLowerCase() + " may be required"); + logger.warning("Manual cleanup of Archive for: " + context.getDataset().getGlobalId().asString() + ", version: " + context.getDataset().getReleasedVersion() + " may be required"); } } diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java index ed4ed6448e9..76b7bcd7d44 100644 --- a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/InternalWorkflowStepSP.java @@ -19,7 +19,7 @@ public WorkflowStep getStep(String stepType, Map stepParameters) return new PauseStep(stepParameters); case "http/sr": return new HttpSendReceiveClientStep(stepParameters); - case "dpn": + case "archiver": return new ArchivalSubmissionWorkflowStep(stepParameters); default: throw new IllegalArgumentException("Unsupported step type: '" + stepType + "'."); From bd94c1b7d125b313a2619855ab179dd0a6148b99 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Wed, 28 Nov 2018 17:33:19 -0500 Subject: [PATCH 033/241] updates of documentation and examples --- .../source/admin/integrations.rst | 38 ++++++++++++------- .../source/developers/workflows.rst | 11 ++++-- .../workflows/internal-archiver-workflow.json | 19 ++++++++++ .../data/workflows/internal-dpn-workflow.json | 17 --------- .../settings/SettingsServiceBean.java | 15 ++++++-- 5 files changed, 62 insertions(+), 38 deletions(-) create mode 100644 scripts/api/data/workflows/internal-archiver-workflow.json delete mode 100644 scripts/api/data/workflows/internal-dpn-workflow.json diff --git a/doc/sphinx-guides/source/admin/integrations.rst b/doc/sphinx-guides/source/admin/integrations.rst index 270bdf4a7c4..68367ed4bf9 100644 --- a/doc/sphinx-guides/source/admin/integrations.rst +++ b/doc/sphinx-guides/source/admin/integrations.rst @@ -93,11 +93,23 @@ Digital Preservation Network Dataverse can be configured to submit a copy of published Datasets, packaged as `Research Data Alliance conformant `_ zipped `BagIt `_ bags to the `Digital Preservation Network `_ -This integration is occurs through an internal Dataverse workflow that can be configured as a PostPublication workflow to submit the bag to DPN's Duracloud interface using your organization's credentials. An admin API call exists that can manually submit previously published Datasets, and prior versions, to DPN. The workflow leverages new functionality in Dataverse to create a `JSON-LD `_ serialized `OAI-ORE `_ map file, which is also available as a metadata export format in the Dataverse web interface. +This integration is occurs through customization of an internal Dataverse archiver workflow that can be configured as a PostPublication workflow to submit the bag to DPN's Duracloud interface using your organization's credentials. An admin API call exists that can manually submit previously published Datasets, and prior versions, to a configured archive such as DPN. The workflow leverages new functionality in Dataverse to create a `JSON-LD `_ serialized `OAI-ORE `_ map file, which is also available as a metadata export format in the Dataverse web interface. -Note that while the current implementation generates the bag and submits it to DPN's Duracloud interface, the step to make a 'snapshot' of the space containing the Bag (and verify it's successful submission) are actions a curator must take in the Duracloud interface. +At present, the DPNSubmitToArchiveCommand is the only implementation extending the AbstractSubmitToArchiveCommand and using the configurable mechanisms discussed below. -The minimal configuration to support DPN integration involves adding one Dataverse Key and two Glassfish jvm options\: +Also note that while the current DPN implementation generates the bag and submits it to DPN's Duracloud interface, the step to make a 'snapshot' of the space containing the Bag (and verify it's successful submission) are actions a curator must take in the Duracloud interface. + +The minimal configuration to support an archiver integration involves adding a minimum of two Dataverse Keys and any required Glassfish jvm options\: + +\:ArchiverClassName - the class to be used for archiving. For example: + + `curl http://localhost:8080/api/admin/settings/:ArchiverClassName -X PUT -d "DPNSubmitToArchiveCommand"` + +\:ArchiverSettings - the archiver class can access required settings including existing Dataverse settings and dynamically defined ones specific to the class. This setting is a comma-separated list of those settings. Note that this list must include the :ArchiverClassName setting. For example: + + `curl http://localhost:8080/api/admin/settings/:ArchiverSettings -X PUT -d ":ArchiverClassName, :DuraCloudHost, :DuraCloudPort, :DuraCloudContext"` + +The DPN archiver defines three custom settings, which must also be created: \:DuraCloudHost - the URL for your organization's DPN Duracloud site. For example: @@ -105,7 +117,7 @@ The minimal configuration to support DPN integration involves adding one Dataver :DuraCloudPort and :DuraCloudContext are also defined if you are not using the defaults ("443" and "duracloud" respectively). -The username and password associated with your organization's DPN account should be configured in Glassfish: +Archivers may require glassfish settings as well. For the DPN archiver, the username and password associated with your organization's DPN account should be configured in Glassfish: `./asadmin create-jvm-options '-Dduracloud.username=YOUR_USERNAME_HERE'` @@ -113,35 +125,35 @@ The username and password associated with your organization's DPN account should **API Call** -Once this configuration is complete, you, as a user with the *ArchiveDatasetVersion* permission (given to the Admin role by default), should be able to use the API call to manually submit a DatasetVersion for processing: +Once this configuration is complete, you, as a user with the *PublishDataset* permission, should be able to use the API call to manually submit a DatasetVersion for processing: - `curl -H "X-Dataverse-key:|" http://localhost:8080/api/admin/submitDataVersionToDPN/{id}/{version}` + `curl -H "X-Dataverse-key:|" http://localhost:8080/api/admin/submitDataVersionToArchive/{id}/{version}` where: {id} is the DatasetId (or :persistentId with the ?persistentId="\" parameter), and {version} is the friendly version number, e.g. "1.2". -The submitDataVersionToDPN API (and the workflow discussed below) attempt to create a Duracloud space named for the dataset (it's DOI with ':' and '.' replaced with '-') and then upload a version-specific datacite.xml metadata file and a BagIt bag containing the data and an OAI-ORE map file. (The datacite.xml file, stored outside the Bag as well as inside is intended to aid in discovery while the ORE map file is 'complete' containing all user-entered metadata and is intended as an archival record.) +The submitDataVersionToArchive API (and the workflow discussed below) attempt to archive the dataset version via an archive specific method. For DPN, a Duracloud space named for the dataset (it's DOI with ':' and '.' replaced with '-') is created and two files are uploaded to it: a version-specific datacite.xml metadata file and a BagIt bag containing the data and an OAI-ORE map file. (The datacite.xml file, stored outside the Bag as well as inside is intended to aid in discovery while the ORE map file is 'complete' containing all user-entered metadata and is intended as an archival record.) -Since the transfer from the Duracloud front-end to archival storage in DPN can take significant time, it is currently up to the admin/curator to submit a 'snap-shot' of the space within Duracloud and to monitor its successful transfer. Once transfer is complete the space can be emptied or deleted, at which point the Dataverse APi call can be used to submit a Bag for other versions of the same Dataset. (The space is reused, so that archival copies of different Dataset versions correspond to different snapshots of the same Duracloud space.). +In the DPN case, since the transfer from the Duracloud front-end to archival storage in DPN can take significant time, it is currently up to the admin/curator to submit a 'snap-shot' of the space within Duracloud and to monitor its successful transfer. Once transfer is complete the space can be emptied or deleted, at which point the Dataverse APi call can be used to submit a Bag for other versions of the same Dataset. (The space is reused, so that archival copies of different Dataset versions correspond to different snapshots of the same Duracloud space.). **PostPublication Workflow** -To automate the submission of archival copies to DPN as part of publication, one can setup a Dataverse Workflow using the `"dpn" workflow step `_ -. The dpn step uses the configuration information discussed above and requires no additional information. +To automate the submission of archival copies to an archive as part of publication, one can setup a Dataverse Workflow using the `"archiver" workflow step `_ +. The archiver step uses the configuration information discussed above and must define the same set of required settings in the workflow definition. -To active this workflow, one must first install a workflow using the dpn step. A simple workflow that invokes the dpn step as its only action is included in dataverse at /scripts/api/data/workflows/internal-dpn-workflow.json. +To active this workflow, one must first install a workflow using the archiver step. A simple workflow that invokes the archiver step configured to submit to DPN as its only action is included in dataverse at /scripts/api/data/workflows/internal-archiver-workflow.json. Using the `Workflow Native API `_ this workflow can be installed using: - `curl -X POST --upload-file internal-dpn-workflow.json http://localhost:8080/api/admin/workflows` + `curl -X POST --upload-file internal-archiver-workflow.json http://localhost:8080/api/admin/workflows` The workflow id returned in this call (or available by doing a GET of /api/admin/workflows ) can then be submitted as the default PostPublication workflow: `curl -X PUT -d {id} http://localhost:8080/api/admin/workflows/default/PostPublishDataset` -Once these steps are taken, new publication requests will automatically trigger submission of an archival copy to DPN's DuraCloud component. As when using the API, it is currently the admin's responsibility to snap-shot the DuraCloud space and monitor the result. Failure of the workflow, (e.g. if DuraCloud is unavailable, the configuration is wrong, or the space for this dataset already exists due to a prior publication action or use of the API), the workflow will report failure but will not affect publication itself. +Once these steps are taken, new publication requests will automatically trigger submission of an archival copy to the specified archiver, DPN's DuraCloud component in this example. For DPN, as when using the API, it is currently the admin's responsibility to snap-shot the DuraCloud space and monitor the result. Failure of the workflow, (e.g. if DuraCloud is unavailable, the configuration is wrong, or the space for this dataset already exists due to a prior publication action or use of the API), will create a failure message but will not affect publication itself. Future Integrations diff --git a/doc/sphinx-guides/source/developers/workflows.rst b/doc/sphinx-guides/source/developers/workflows.rst index 4b399903932..03f1bd9832a 100644 --- a/doc/sphinx-guides/source/developers/workflows.rst +++ b/doc/sphinx-guides/source/developers/workflows.rst @@ -103,21 +103,24 @@ Available variables are: * ``majorVersion`` * ``releaseStatus`` -dpn +archiver +++++++ -A step that sends an archival copy of a Dataset Version to the DuraCloud interface of the Digital Preservation Network. See the `DPN Integration documentation `_ for further detail. +A step that sends an archival copy of a Dataset Version to a configured archiver, e.g. the DuraCloud interface of the Digital Preservation Network (DPN). See the `DPN Integration documentation `_ for further detail. +Note - the example step includes two settings required for any archiver and three (Duracloud*) that are specific to DPN. .. code:: json { "provider":":internal", - "stepType":"dpn", + "stepType":"archiver", "parameters": { - "stepName":"dpn submission" + "stepName":"archive submission" }, "requiredSettings": { + "ArchiverClassName": "String", + "ArchiverSettings": "String", "DuraCloudHost":"string", "DuraCloudPort":"string", "DuraCloudContext":"string" diff --git a/scripts/api/data/workflows/internal-archiver-workflow.json b/scripts/api/data/workflows/internal-archiver-workflow.json new file mode 100644 index 00000000000..15d76502463 --- /dev/null +++ b/scripts/api/data/workflows/internal-archiver-workflow.json @@ -0,0 +1,19 @@ +{ + "name": "Archive submission workflow", + "steps": [ + { + "provider": ":internal", + "stepType": "archiver", + "parameters": { + "stepName": "archive submission" + }, + "requiredSettings": { + "ArchiverClassName": "String", + "ArchiverSettings": "String", + "DuraCloudHost": "string", + "DuraCloudPort": "string", + "DuraCloudContext": "string" + } + } + ] +} diff --git a/scripts/api/data/workflows/internal-dpn-workflow.json b/scripts/api/data/workflows/internal-dpn-workflow.json deleted file mode 100644 index b03c8d4290c..00000000000 --- a/scripts/api/data/workflows/internal-dpn-workflow.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "DPN submission workflow", - "steps": [ - { - "provider":":internal", - "stepType":"dpn", - "parameters": { - "stepName":"dpn submission" - }, - "requiredSettings": { - "DuraCloudHost":"string", - "DuraCloudPort":"string", - "DuraCloudContext":"string" - } - } - ] -} diff --git a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java index f1d89935bb0..4c7b06dc9db 100644 --- a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java @@ -371,11 +371,18 @@ Whether Harvesting (OAI) service is enabled FilePIDsEnabled, /** - * Providing a Duracloud host (and optional port) enables manual submission of archival copies of published dataset versions - * to that host, e.g. as the first step in archiving through the Digital Preservation Network (DPN.org). + * Archiving can be configured by providing an Archiver class name (class must extend AstractSubmitToArchiverCommand) + * and a list of settings that should be passed to the Archiver. * Note: - * Configuration also requires adding the username and password as jvm-options in glassfish. - * To automate this step as part of publication, a post-publication workflow must also be configured. + * Configuration may also require adding Archiver-specific jvm-options (i.e. for username and password) in glassfish. + * + * To automate the submission of an archival copy step as part of publication, a post-publication workflow must also be configured. + * + * For example: + * ArchiverClassName - "DPNSubmitToArchiveCommand" + * ArchiverSettings - "DuraCloudHost, DuraCloudPort, DuraCloudContext" + * + * Note: Dataverse must be configured with values for these dynamically defined settings as well, e.g. * * DuraCloudHost , eg. "qdr.duracloud.org", a non-null value enables submission * DuraCloudPort, default is 443 From 1d5709ef6cb3bc5b1bd26fb085be696d591f3cfb Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 3 Dec 2018 14:55:15 -0500 Subject: [PATCH 034/241] refactor to move abstract class to impl, del old workflow, fix docs --- doc/sphinx-guides/source/admin/integrations.rst | 4 ++-- src/main/java/edu/harvard/iq/dataverse/DatasetPage.java | 2 +- src/main/java/edu/harvard/iq/dataverse/api/Admin.java | 2 +- .../command/{ => impl}/AbstractSubmitToArchiveCommand.java | 2 +- .../engine/command/impl/DPNSubmitToArchiveCommand.java | 1 - src/main/java/edu/harvard/iq/dataverse/util/ArchiverUtil.java | 2 +- .../workflow/internalspi/ArchivalSubmissionWorkflowStep.java | 2 +- 7 files changed, 7 insertions(+), 8 deletions(-) rename src/main/java/edu/harvard/iq/dataverse/engine/command/{ => impl}/AbstractSubmitToArchiveCommand.java (98%) diff --git a/doc/sphinx-guides/source/admin/integrations.rst b/doc/sphinx-guides/source/admin/integrations.rst index 68367ed4bf9..0d3b65f339c 100644 --- a/doc/sphinx-guides/source/admin/integrations.rst +++ b/doc/sphinx-guides/source/admin/integrations.rst @@ -107,7 +107,7 @@ The minimal configuration to support an archiver integration involves adding a m \:ArchiverSettings - the archiver class can access required settings including existing Dataverse settings and dynamically defined ones specific to the class. This setting is a comma-separated list of those settings. Note that this list must include the :ArchiverClassName setting. For example: - `curl http://localhost:8080/api/admin/settings/:ArchiverSettings -X PUT -d ":ArchiverClassName, :DuraCloudHost, :DuraCloudPort, :DuraCloudContext"` + `curl http://localhost:8080/api/admin/settings/:ArchiverSettings -X PUT -d ":DuraCloudHost, :DuraCloudPort, :DuraCloudContext"` The DPN archiver defines three custom settings, which must also be created: @@ -141,7 +141,7 @@ In the DPN case, since the transfer from the Duracloud front-end to archival sto **PostPublication Workflow** To automate the submission of archival copies to an archive as part of publication, one can setup a Dataverse Workflow using the `"archiver" workflow step `_ -. The archiver step uses the configuration information discussed above and must define the same set of required settings in the workflow definition. +. The archiver step uses the configuration information discussed above and must define the :ArchiverClassName setting, along with any/all archive-specific required settings as discussed above, in the workflow definition. To active this workflow, one must first install a workflow using the archiver step. A simple workflow that invokes the archiver step configured to submit to DPN as its only action is included in dataverse at /scripts/api/data/workflows/internal-archiver-workflow.json. diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 50606f3f52e..e98157edf0c 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -15,7 +15,6 @@ import edu.harvard.iq.dataverse.dataset.DatasetThumbnail; import edu.harvard.iq.dataverse.dataset.DatasetUtil; import edu.harvard.iq.dataverse.datavariable.VariableServiceBean; -import edu.harvard.iq.dataverse.engine.command.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.Command; import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import edu.harvard.iq.dataverse.engine.command.impl.CreatePrivateUrlCommand; @@ -83,6 +82,7 @@ import java.util.logging.Level; import edu.harvard.iq.dataverse.datasetutility.WorldMapPermissionHelper; import edu.harvard.iq.dataverse.engine.command.exception.IllegalCommandException; +import edu.harvard.iq.dataverse.engine.command.impl.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.impl.CreateNewDatasetCommand; import edu.harvard.iq.dataverse.engine.command.impl.DeleteDataFileCommand; import edu.harvard.iq.dataverse.engine.command.impl.GetLatestPublishedDatasetVersionCommand; diff --git a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java index d8927d04c13..cd0861e66e6 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/Admin.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/Admin.java @@ -34,6 +34,7 @@ import edu.harvard.iq.dataverse.confirmemail.ConfirmEmailInitResponse; import edu.harvard.iq.dataverse.dataaccess.DataAccessOption; import edu.harvard.iq.dataverse.dataaccess.StorageIO; +import edu.harvard.iq.dataverse.engine.command.impl.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.impl.PublishDataverseCommand; import edu.harvard.iq.dataverse.settings.Setting; import javax.json.Json; @@ -72,7 +73,6 @@ import edu.harvard.iq.dataverse.authorization.users.User; import edu.harvard.iq.dataverse.dataset.DatasetThumbnail; import edu.harvard.iq.dataverse.dataset.DatasetUtil; -import edu.harvard.iq.dataverse.engine.command.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import edu.harvard.iq.dataverse.engine.command.impl.RegisterDvObjectCommand; diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/AbstractSubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java similarity index 98% rename from src/main/java/edu/harvard/iq/dataverse/engine/command/AbstractSubmitToArchiveCommand.java rename to src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java index 0067e04afb2..3441d75e865 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/AbstractSubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java @@ -1,4 +1,4 @@ -package edu.harvard.iq.dataverse.engine.command; +package edu.harvard.iq.dataverse.engine.command.impl; import edu.harvard.iq.dataverse.DatasetVersion; import edu.harvard.iq.dataverse.DvObject; diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java index 8ebe170a357..3c0c6fb863f 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java @@ -7,7 +7,6 @@ import edu.harvard.iq.dataverse.DatasetLock.Reason; import edu.harvard.iq.dataverse.authorization.Permission; import edu.harvard.iq.dataverse.authorization.users.ApiToken; -import edu.harvard.iq.dataverse.engine.command.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.Command; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; import edu.harvard.iq.dataverse.engine.command.RequiredPermissions; diff --git a/src/main/java/edu/harvard/iq/dataverse/util/ArchiverUtil.java b/src/main/java/edu/harvard/iq/dataverse/util/ArchiverUtil.java index 4da07415b67..252b8aa318d 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/ArchiverUtil.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/ArchiverUtil.java @@ -4,8 +4,8 @@ import java.util.logging.Logger; import edu.harvard.iq.dataverse.DatasetVersion; -import edu.harvard.iq.dataverse.engine.command.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; +import edu.harvard.iq.dataverse.engine.command.impl.AbstractSubmitToArchiveCommand; /** * Simple class to reflectively get an instance of the desired class for diff --git a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java index 97c36f11d50..105af6a00d8 100644 --- a/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java +++ b/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/ArchivalSubmissionWorkflowStep.java @@ -1,8 +1,8 @@ package edu.harvard.iq.dataverse.workflow.internalspi; import edu.harvard.iq.dataverse.DatasetVersion; -import edu.harvard.iq.dataverse.engine.command.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; +import edu.harvard.iq.dataverse.engine.command.impl.AbstractSubmitToArchiveCommand; import edu.harvard.iq.dataverse.settings.SettingsServiceBean; import edu.harvard.iq.dataverse.util.ArchiverUtil; import edu.harvard.iq.dataverse.workflow.WorkflowContext; From 0049ac62a83d42ed6f4a4712b166d95e5bcf07f4 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 3 Dec 2018 15:24:28 -0500 Subject: [PATCH 035/241] workflow printing typo --- .../java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java index a79072d18ae..01f79ed8be5 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java @@ -231,7 +231,7 @@ public static JsonObjectBuilder json(Workflow wf){ arr.add( jsonObjectBuilder().add("stepType", stp.getStepType()) .add("provider", stp.getProviderId()) .add("parameters", mapToObject(stp.getStepParameters())) - .add("requiredSettings", mapToObject(stp.getStepParameters())) ); + .add("requiredSettings", mapToObject(stp.getStepSettings())) ); } bld.add("steps", arr ); } From ffea9a2664552cfd4aa9ad95f2c6940ee3b2ae4d Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Mon, 3 Dec 2018 16:51:19 -0500 Subject: [PATCH 036/241] typo and doc fixes --- doc/sphinx-guides/source/admin/integrations.rst | 4 ++-- doc/sphinx-guides/source/developers/workflows.rst | 4 ++-- scripts/api/data/workflows/internal-archiver-workflow.json | 4 ++-- .../harvard/iq/dataverse/settings/SettingsServiceBean.java | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/sphinx-guides/source/admin/integrations.rst b/doc/sphinx-guides/source/admin/integrations.rst index 0d3b65f339c..6df8c9e2971 100644 --- a/doc/sphinx-guides/source/admin/integrations.rst +++ b/doc/sphinx-guides/source/admin/integrations.rst @@ -101,9 +101,9 @@ Also note that while the current DPN implementation generates the bag and submit The minimal configuration to support an archiver integration involves adding a minimum of two Dataverse Keys and any required Glassfish jvm options\: -\:ArchiverClassName - the class to be used for archiving. For example: +\:ArchiverClassName - the fully qualified class to be used for archiving. For example: - `curl http://localhost:8080/api/admin/settings/:ArchiverClassName -X PUT -d "DPNSubmitToArchiveCommand"` + `curl http://localhost:8080/api/admin/settings/:ArchiverClassName -X PUT -d "edu.harvard.iq.dataverse.engine.command.impl.DPNSubmitToArchiveCommand"` \:ArchiverSettings - the archiver class can access required settings including existing Dataverse settings and dynamically defined ones specific to the class. This setting is a comma-separated list of those settings. Note that this list must include the :ArchiverClassName setting. For example: diff --git a/doc/sphinx-guides/source/developers/workflows.rst b/doc/sphinx-guides/source/developers/workflows.rst index 03f1bd9832a..ab01a488a22 100644 --- a/doc/sphinx-guides/source/developers/workflows.rst +++ b/doc/sphinx-guides/source/developers/workflows.rst @@ -119,8 +119,8 @@ Note - the example step includes two settings required for any archiver and thre "stepName":"archive submission" }, "requiredSettings": { - "ArchiverClassName": "String", - "ArchiverSettings": "String", + "ArchiverClassName": "string", + "ArchiverSettings": "string", "DuraCloudHost":"string", "DuraCloudPort":"string", "DuraCloudContext":"string" diff --git a/scripts/api/data/workflows/internal-archiver-workflow.json b/scripts/api/data/workflows/internal-archiver-workflow.json index 15d76502463..56b9a594bc4 100644 --- a/scripts/api/data/workflows/internal-archiver-workflow.json +++ b/scripts/api/data/workflows/internal-archiver-workflow.json @@ -8,8 +8,8 @@ "stepName": "archive submission" }, "requiredSettings": { - "ArchiverClassName": "String", - "ArchiverSettings": "String", + "ArchiverClassName": "string", + "ArchiverSettings": "string", "DuraCloudHost": "string", "DuraCloudPort": "string", "DuraCloudContext": "string" diff --git a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java index 4c7b06dc9db..baa6a8ce1a7 100644 --- a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java @@ -379,7 +379,7 @@ Whether Harvesting (OAI) service is enabled * To automate the submission of an archival copy step as part of publication, a post-publication workflow must also be configured. * * For example: - * ArchiverClassName - "DPNSubmitToArchiveCommand" + * ArchiverClassName - "edu.harvard.iq.dataverse.engine.command.impl.DPNSubmitToArchiveCommand" * ArchiverSettings - "DuraCloudHost, DuraCloudPort, DuraCloudContext" * * Note: Dataverse must be configured with values for these dynamically defined settings as well, e.g. From 25ebf5d58a59929f013b3090eefaaff43ac7f0a4 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Wed, 5 Dec 2018 17:15:37 -0500 Subject: [PATCH 037/241] remove comment --- .../engine/command/impl/AbstractSubmitToArchiveCommand.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java index 3441d75e865..c5b0eca7ead 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java @@ -78,7 +78,6 @@ public Map> getRequiredPermissions() { @Override public String describe() { - // Is this ever used? return "DatasetVersion: " + version.getId() + " " + version.getDataset().getDisplayName() + ".v" + version.getFriendlyVersionNumber(); } From b6692c04828e3b118150d1feded01e62164c9707 Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Wed, 5 Dec 2018 17:20:51 -0500 Subject: [PATCH 038/241] closer mirror to AbstractCommand --- .../engine/command/impl/AbstractSubmitToArchiveCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java index c5b0eca7ead..a3d25a1c94f 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java @@ -78,8 +78,8 @@ public Map> getRequiredPermissions() { @Override public String describe() { - return "DatasetVersion: " + version.getId() + " " + version.getDataset().getDisplayName() + ".v" - + version.getFriendlyVersionNumber(); + return "DatasetVersion: [" + version.getId() + " " + version.getDataset().getDisplayName() + ".v" + + version.getFriendlyVersionNumber()+"]"; } /** From fdb42bf32e9f07273427a56da3d1d444ccdd07e3 Mon Sep 17 00:00:00 2001 From: Craig Willis Date: Thu, 6 Dec 2018 10:42:34 -0600 Subject: [PATCH 039/241] Added Whole Tale external tools integration descriptions --- doc/sphinx-guides/source/admin/integrations.rst | 7 +++++++ doc/sphinx-guides/source/installation/external-tools.rst | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/doc/sphinx-guides/source/admin/integrations.rst b/doc/sphinx-guides/source/admin/integrations.rst index de4e15efd25..34d9a3066f7 100644 --- a/doc/sphinx-guides/source/admin/integrations.rst +++ b/doc/sphinx-guides/source/admin/integrations.rst @@ -70,6 +70,13 @@ Compute Button The "Compute" button is still highly experimental and has special requirements such as use of a Swift object store, but it is documented under "Setting up Compute" in the :doc:`/installation/config` section of the Installation Guide. +Whole Tale +++++++++++ + +`Whole Tale `_ enables researchers to analyze data using popular tools including Jupyter and RStudio with the ultimate goal of supporting publishing of reproducible research packages. + +For installation instructions, see the :doc:`/installation/external-tools` section of the Installation Guide or the `Integration `_ section of the Whole Tale User Guide. + Discoverability --------------- diff --git a/doc/sphinx-guides/source/installation/external-tools.rst b/doc/sphinx-guides/source/installation/external-tools.rst index c5fde7dba82..cef02b6a4ba 100644 --- a/doc/sphinx-guides/source/installation/external-tools.rst +++ b/doc/sphinx-guides/source/installation/external-tools.rst @@ -14,8 +14,12 @@ Support for external tools is just getting off the ground but the following tool - TwoRavens: a system of interlocking statistical tools for data exploration, analysis, and meta-analysis: http://2ra.vn. See the :doc:`/user/data-exploration/tworavens` section of the User Guide for more information on TwoRavens from the user perspective and the :doc:`r-rapache-tworavens` section of the Installation Guide. - Data Explorer: a GUI which lists the variables in a tabular data file allowing searching, charting and cross tabulation analysis. See the README.md file at https://github.com/scholarsportal/Dataverse-Data-Explorer for the instructions on adding Data Explorer to your Dataverse; and the :doc:`prerequisites` section of the Installation Guide for the instructions on how to set up **basic R configuration required** (specifically, Dataverse uses R to generate .prep metadata files that are needed to run Data Explorer). + +- `Whole Tale `_: a platform for the creation of reproducible research packages that allows users to launch containerized interactive analysis environments based on popular tools such as Jupyter and RStudio. Using this integration, Dataverse users can launch Jupyter and RStudio environments to analyze published datasets. For more information, see the `Whole Tale User Guide `_. + - [Your tool here! Please get in touch! :) ] + Downloading and Adjusting an External Tool Manifest File -------------------------------------------------------- From 714c79466ed6898a9d9591242460abb234eaad5c Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Thu, 6 Dec 2018 14:24:28 -0500 Subject: [PATCH 040/241] extend AbstractCommand --- .../impl/AbstractSubmitToArchiveCommand.java | 43 +++++-------------- 1 file changed, 10 insertions(+), 33 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java index a3d25a1c94f..976c4983bcd 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractSubmitToArchiveCommand.java @@ -5,7 +5,7 @@ import edu.harvard.iq.dataverse.authorization.Permission; import edu.harvard.iq.dataverse.authorization.users.ApiToken; import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; -import edu.harvard.iq.dataverse.engine.command.Command; +import edu.harvard.iq.dataverse.engine.command.AbstractCommand; import edu.harvard.iq.dataverse.engine.command.CommandContext; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; import edu.harvard.iq.dataverse.engine.command.RequiredPermissions; @@ -13,28 +13,21 @@ import edu.harvard.iq.dataverse.settings.SettingsServiceBean; import edu.harvard.iq.dataverse.workflow.step.WorkflowStepResult; -import static edu.harvard.iq.dataverse.engine.command.CommandHelper.CH; - import java.util.Date; import java.util.HashMap; import java.util.Map; -import java.util.Set; import java.util.logging.Logger; @RequiredPermissions(Permission.PublishDataset) -public abstract class AbstractSubmitToArchiveCommand implements Command { +public abstract class AbstractSubmitToArchiveCommand extends AbstractCommand { private final DatasetVersion version; - private final DataverseRequest request; - private final Map affectedDvObjects; private final Map requestedSettings = new HashMap(); private static final Logger logger = Logger.getLogger(AbstractSubmitToArchiveCommand.class.getName()); public AbstractSubmitToArchiveCommand(DataverseRequest aRequest, DatasetVersion version) { - this.request = aRequest; + super(aRequest, version.getDataset()); this.version = version; - affectedDvObjects = new HashMap<>(); - affectedDvObjects.put("", version.getDataset()); } @Override @@ -51,7 +44,7 @@ public DatasetVersion execute(CommandContext ctxt) throws CommandException { } } - AuthenticatedUser user = request.getAuthenticatedUser(); + AuthenticatedUser user = getRequest().getAuthenticatedUser(); ApiToken token = ctxt.authentication().findApiTokenByUser(user); if ((token == null) || (token.getExpireTime().before(new Date()))) { token = ctxt.authentication().generateApiTokenForUser(user); @@ -60,28 +53,6 @@ public DatasetVersion execute(CommandContext ctxt) throws CommandException { return ctxt.em().merge(version); } - @Override - public Map getAffectedDvObjects() { - - return affectedDvObjects; - } - - @Override - public DataverseRequest getRequest() { - return request; - } - - @Override - public Map> getRequiredPermissions() { - return CH.permissionsRequired(getClass()); - } - - @Override - public String describe() { - return "DatasetVersion: [" + version.getId() + " " + version.getDataset().getDisplayName() + ".v" - + version.getFriendlyVersionNumber()+"]"; - } - /** * This method is the only one that should be overwritten by other classes. Note * that this method may be called from the execute method above OR from a @@ -95,4 +66,10 @@ public String describe() { */ abstract public WorkflowStepResult performArchiveSubmission(DatasetVersion version, ApiToken token, Map requestedSetttings); + @Override + public String describe() { + return super.describe() + "DatasetVersion: [" + version.getId() + " (v" + + version.getFriendlyVersionNumber()+")]"; + } + } From 5109c4c413ad66283096c8876509f8da6022816b Mon Sep 17 00:00:00 2001 From: Jim Myers Date: Thu, 6 Dec 2018 15:05:50 -0500 Subject: [PATCH 041/241] farewell DPN --- .../source/admin/integrations.rst | 22 +++++++++---------- .../source/developers/workflows.rst | 4 ++-- ...a => DuraCloudSubmitToArchiveCommand.java} | 6 ++--- 3 files changed, 16 insertions(+), 16 deletions(-) rename src/main/java/edu/harvard/iq/dataverse/engine/command/impl/{DPNSubmitToArchiveCommand.java => DuraCloudSubmitToArchiveCommand.java} (96%) diff --git a/doc/sphinx-guides/source/admin/integrations.rst b/doc/sphinx-guides/source/admin/integrations.rst index 6df8c9e2971..093c2358b7e 100644 --- a/doc/sphinx-guides/source/admin/integrations.rst +++ b/doc/sphinx-guides/source/admin/integrations.rst @@ -88,22 +88,22 @@ SHARE Preservation ------------ -Digital Preservation Network +DuraCloud/Chronopolis ++++++++++++++++++++++++++++ -Dataverse can be configured to submit a copy of published Datasets, packaged as `Research Data Alliance conformant `_ zipped `BagIt `_ bags to the `Digital Preservation Network `_ +Dataverse can be configured to submit a copy of published Datasets, packaged as `Research Data Alliance conformant `_ zipped `BagIt `_ bags to the `Chronopolis `_ via `DuraCloud `_ -This integration is occurs through customization of an internal Dataverse archiver workflow that can be configured as a PostPublication workflow to submit the bag to DPN's Duracloud interface using your organization's credentials. An admin API call exists that can manually submit previously published Datasets, and prior versions, to a configured archive such as DPN. The workflow leverages new functionality in Dataverse to create a `JSON-LD `_ serialized `OAI-ORE `_ map file, which is also available as a metadata export format in the Dataverse web interface. +This integration is occurs through customization of an internal Dataverse archiver workflow that can be configured as a PostPublication workflow to submit the bag to Chronopolis' Duracloud interface using your organization's credentials. An admin API call exists that can manually submit previously published Datasets, and prior versions, to a configured archive such as Chronopolis. The workflow leverages new functionality in Dataverse to create a `JSON-LD `_ serialized `OAI-ORE `_ map file, which is also available as a metadata export format in the Dataverse web interface. At present, the DPNSubmitToArchiveCommand is the only implementation extending the AbstractSubmitToArchiveCommand and using the configurable mechanisms discussed below. -Also note that while the current DPN implementation generates the bag and submits it to DPN's Duracloud interface, the step to make a 'snapshot' of the space containing the Bag (and verify it's successful submission) are actions a curator must take in the Duracloud interface. +Also note that while the current Chronopolis implementation generates the bag and submits it to the archive's DuraCloud interface, the step to make a 'snapshot' of the space containing the Bag (and verify it's successful submission) are actions a curator must take in the DuraCloud interface. The minimal configuration to support an archiver integration involves adding a minimum of two Dataverse Keys and any required Glassfish jvm options\: \:ArchiverClassName - the fully qualified class to be used for archiving. For example: - `curl http://localhost:8080/api/admin/settings/:ArchiverClassName -X PUT -d "edu.harvard.iq.dataverse.engine.command.impl.DPNSubmitToArchiveCommand"` + `curl http://localhost:8080/api/admin/settings/:ArchiverClassName -X PUT -d "edu.harvard.iq.dataverse.engine.command.impl.DuraCloudSubmitToArchiveCommand"` \:ArchiverSettings - the archiver class can access required settings including existing Dataverse settings and dynamically defined ones specific to the class. This setting is a comma-separated list of those settings. Note that this list must include the :ArchiverClassName setting. For example: @@ -111,13 +111,13 @@ The minimal configuration to support an archiver integration involves adding a m The DPN archiver defines three custom settings, which must also be created: -\:DuraCloudHost - the URL for your organization's DPN Duracloud site. For example: +\:DuraCloudHost - the URL for your organization's Duracloud site. For example: `curl http://localhost:8080/api/admin/settings/:DuraCloudHost -X PUT -d "qdr.duracloud.org"` :DuraCloudPort and :DuraCloudContext are also defined if you are not using the defaults ("443" and "duracloud" respectively). -Archivers may require glassfish settings as well. For the DPN archiver, the username and password associated with your organization's DPN account should be configured in Glassfish: +Archivers may require glassfish settings as well. For the Chronopolis archiver, the username and password associated with your organization's Chronopolis/DuraCloud account should be configured in Glassfish: `./asadmin create-jvm-options '-Dduracloud.username=YOUR_USERNAME_HERE'` @@ -134,16 +134,16 @@ Once this configuration is complete, you, as a user with the *PublishDataset* pe {version} is the friendly version number, e.g. "1.2". -The submitDataVersionToArchive API (and the workflow discussed below) attempt to archive the dataset version via an archive specific method. For DPN, a Duracloud space named for the dataset (it's DOI with ':' and '.' replaced with '-') is created and two files are uploaded to it: a version-specific datacite.xml metadata file and a BagIt bag containing the data and an OAI-ORE map file. (The datacite.xml file, stored outside the Bag as well as inside is intended to aid in discovery while the ORE map file is 'complete' containing all user-entered metadata and is intended as an archival record.) +The submitDataVersionToArchive API (and the workflow discussed below) attempt to archive the dataset version via an archive specific method. For Chronopolis, a DuraCloud space named for the dataset (it's DOI with ':' and '.' replaced with '-') is created and two files are uploaded to it: a version-specific datacite.xml metadata file and a BagIt bag containing the data and an OAI-ORE map file. (The datacite.xml file, stored outside the Bag as well as inside is intended to aid in discovery while the ORE map file is 'complete' containing all user-entered metadata and is intended as an archival record.) -In the DPN case, since the transfer from the Duracloud front-end to archival storage in DPN can take significant time, it is currently up to the admin/curator to submit a 'snap-shot' of the space within Duracloud and to monitor its successful transfer. Once transfer is complete the space can be emptied or deleted, at which point the Dataverse APi call can be used to submit a Bag for other versions of the same Dataset. (The space is reused, so that archival copies of different Dataset versions correspond to different snapshots of the same Duracloud space.). +In the Chronopolis case, since the transfer from the DuraCloud front-end to archival storage in Chronopolis can take significant time, it is currently up to the admin/curator to submit a 'snap-shot' of the space within DuraCloud and to monitor its successful transfer. Once transfer is complete the space can be emptied or deleted, at which point the Dataverse API call can be used to submit a Bag for other versions of the same Dataset. (The space is reused, so that archival copies of different Dataset versions correspond to different snapshots of the same DuraCloud space.). **PostPublication Workflow** To automate the submission of archival copies to an archive as part of publication, one can setup a Dataverse Workflow using the `"archiver" workflow step `_ . The archiver step uses the configuration information discussed above and must define the :ArchiverClassName setting, along with any/all archive-specific required settings as discussed above, in the workflow definition. -To active this workflow, one must first install a workflow using the archiver step. A simple workflow that invokes the archiver step configured to submit to DPN as its only action is included in dataverse at /scripts/api/data/workflows/internal-archiver-workflow.json. +To active this workflow, one must first install a workflow using the archiver step. A simple workflow that invokes the archiver step configured to submit to DuraCloud as its only action is included in dataverse at /scripts/api/data/workflows/internal-archiver-workflow.json. Using the `Workflow Native API `_ this workflow can be installed using: @@ -153,7 +153,7 @@ The workflow id returned in this call (or available by doing a GET of /api/admin `curl -X PUT -d {id} http://localhost:8080/api/admin/workflows/default/PostPublishDataset` -Once these steps are taken, new publication requests will automatically trigger submission of an archival copy to the specified archiver, DPN's DuraCloud component in this example. For DPN, as when using the API, it is currently the admin's responsibility to snap-shot the DuraCloud space and monitor the result. Failure of the workflow, (e.g. if DuraCloud is unavailable, the configuration is wrong, or the space for this dataset already exists due to a prior publication action or use of the API), will create a failure message but will not affect publication itself. +Once these steps are taken, new publication requests will automatically trigger submission of an archival copy to the specified archiver, Chronopolis' DuraCloud component in this example. For Chronopolis, as when using the API, it is currently the admin's responsibility to snap-shot the DuraCloud space and monitor the result. Failure of the workflow, (e.g. if DuraCloud is unavailable, the configuration is wrong, or the space for this dataset already exists due to a prior publication action or use of the API), will create a failure message but will not affect publication itself. Future Integrations diff --git a/doc/sphinx-guides/source/developers/workflows.rst b/doc/sphinx-guides/source/developers/workflows.rst index ab01a488a22..74decf4a263 100644 --- a/doc/sphinx-guides/source/developers/workflows.rst +++ b/doc/sphinx-guides/source/developers/workflows.rst @@ -106,9 +106,9 @@ Available variables are: archiver +++++++ -A step that sends an archival copy of a Dataset Version to a configured archiver, e.g. the DuraCloud interface of the Digital Preservation Network (DPN). See the `DPN Integration documentation `_ for further detail. +A step that sends an archival copy of a Dataset Version to a configured archiver, e.g. the DuraCloud interface of Chronopolis. See the `DuraCloud/Chronopolis Integration documentation `_ for further detail. -Note - the example step includes two settings required for any archiver and three (Duracloud*) that are specific to DPN. +Note - the example step includes two settings required for any archiver and three (DuraCloud*) that are specific to DuraCloud. .. code:: json diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DuraCloudSubmitToArchiveCommand.java similarity index 96% rename from src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java rename to src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DuraCloudSubmitToArchiveCommand.java index 3c0c6fb863f..e445c5f766f 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DPNSubmitToArchiveCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/DuraCloudSubmitToArchiveCommand.java @@ -33,16 +33,16 @@ import org.duracloud.error.ContentStoreException; @RequiredPermissions(Permission.PublishDataset) -public class DPNSubmitToArchiveCommand extends AbstractSubmitToArchiveCommand implements Command { +public class DuraCloudSubmitToArchiveCommand extends AbstractSubmitToArchiveCommand implements Command { - private static final Logger logger = Logger.getLogger(DPNSubmitToArchiveCommand.class.getName()); + private static final Logger logger = Logger.getLogger(DuraCloudSubmitToArchiveCommand.class.getName()); private static final String DEFAULT_PORT = "443"; private static final String DEFAULT_CONTEXT = "durastore"; private static final String DURACLOUD_PORT = ":DuraCloudPort"; private static final String DURACLOUD_HOST = ":DuraCloudHost"; private static final String DURACLOUD_CONTEXT = ":DuraCloudContext"; - public DPNSubmitToArchiveCommand(DataverseRequest aRequest, DatasetVersion version) { + public DuraCloudSubmitToArchiveCommand(DataverseRequest aRequest, DatasetVersion version) { super(aRequest, version); } From e82fd05f5172d73059e56b554e49662428d9359e Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Fri, 7 Dec 2018 13:52:00 -0500 Subject: [PATCH 042/241] #5145 add edit draft logging --- src/main/java/Bundle.properties | 6 + .../edu/harvard/iq/dataverse/DatasetPage.java | 5 +- .../harvard/iq/dataverse/DatasetVersion.java | 50 ++++++ .../dataverse/DatasetVersionDifference.java | 152 +++++++++++++++++- .../iq/dataverse/EditDatafilesPage.java | 5 +- .../datasetutility/AddReplaceFileHelper.java | 5 +- .../impl/UpdateDatasetVersionCommand.java | 25 ++- 7 files changed, 239 insertions(+), 9 deletions(-) diff --git a/src/main/java/Bundle.properties b/src/main/java/Bundle.properties index e14063961ee..3690e0a46f6 100755 --- a/src/main/java/Bundle.properties +++ b/src/main/java/Bundle.properties @@ -1307,6 +1307,11 @@ file.metadata.persistentId=File Persistent ID file.metadata.persistentId.tip=The unique persistent identifier for a file, which can be a Handle or DOI in Dataverse. dataset.versionDifferences.termsOfUseAccess=Terms of Use and Access dataset.versionDifferences.termsOfUseAccessChanged=Terms of Use/Access Changed +dataset.versionDifferences.metadataBlock=Metadata Block +dataset.versionDifferences.field=Field +dataset.versionDifferences.changed=Changed +dataset.versionDifferences.from=From +dataset.versionDifferences.to=To file.viewDiffDialog.restricted=Restricted dataset.template.tip=Changing the template will clear any fields you may have entered data into. dataset.noTemplate.label=None @@ -1599,6 +1604,7 @@ file.deaccessionDialog.dialog.limitChar.tip=Text for reason for deaccessioning m file.deaccessionDialog.dialog.limitChar.header=Limit 1000 characters file.viewDiffDialog.header=Version Differences Details file.viewDiffDialog.dialog.warning=Please select two versions to view the differences. +file.viewDiffDialog.notAvailable=N/A file.viewDiffDialog.version=Version file.viewDiffDialog.lastUpdated=Last Updated file.viewDiffDialog.fileID=File ID diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index e8c6b95b5f0..eefb694998d 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -208,6 +208,7 @@ public enum DisplayMode { private int selectedTabIndex; private List newFiles = new ArrayList<>(); private DatasetVersion workingVersion; + private DatasetVersion clone; private int releaseRadio = 1; private int deaccessionRadio = 0; private int deaccessionReasonRadio = 0; @@ -1751,7 +1752,7 @@ public void edit(EditMode editMode) { dataset = datasetService.find(dataset.getId()); } workingVersion = dataset.getEditVersion(); - + clone = workingVersion.cloneDatasetVersion(); if (editMode == EditMode.INFO) { // ? } else if (editMode == EditMode.FILE) { @@ -2588,7 +2589,7 @@ public String save() { } } else { - cmd = new UpdateDatasetVersionCommand(dataset, dvRequestService.getDataverseRequest(), filesToBeDeleted); + cmd = new UpdateDatasetVersionCommand(dataset, dvRequestService.getDataverseRequest(), filesToBeDeleted, clone ); ((UpdateDatasetVersionCommand) cmd).setValidateLenient(true); } dataset = commandEngine.submit(cmd); diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java index 60072815dd7..b640a51284a 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java @@ -521,6 +521,56 @@ public void updateDefaultValuesFromTemplate(Template template) { this.setTermsOfUseAndAccess(terms); } } + + public DatasetVersion cloneDatasetVersion(){ + DatasetVersion dsv = new DatasetVersion(); + dsv.setVersionState(this.getPriorVersionState()); + dsv.setFileMetadatas(new ArrayList<>()); + + if (this.getUNF() != null){ + dsv.setUNF(this.getUNF()); + } + + if (this.getDatasetFields() != null && !this.getDatasetFields().isEmpty()) { + dsv.setDatasetFields(dsv.copyDatasetFields(this.getDatasetFields())); + } + + if (this.getTermsOfUseAndAccess()!= null){ + dsv.setTermsOfUseAndAccess(this.getTermsOfUseAndAccess().copyTermsOfUseAndAccess()); + } else { + TermsOfUseAndAccess terms = new TermsOfUseAndAccess(); + terms.setDatasetVersion(dsv); + terms.setLicense(TermsOfUseAndAccess.License.CC0); + dsv.setTermsOfUseAndAccess(terms); + } + + for (FileMetadata fm : this.getFileMetadatas()) { + FileMetadata newFm = new FileMetadata(); + // TODO: + // the "category" will be removed, shortly. + // (replaced by multiple, tag-like categories of + // type DataFileCategory) -- L.A. beta 10 + //newFm.setCategory(fm.getCategory()); + // yep, these are the new categories: + newFm.setCategories(fm.getCategories()); + newFm.setDescription(fm.getDescription()); + newFm.setLabel(fm.getLabel()); + newFm.setDirectoryLabel(fm.getDirectoryLabel()); + newFm.setRestricted(fm.isRestricted()); + newFm.setDataFile(fm.getDataFile()); + newFm.setDatasetVersion(dsv); + newFm.setProvFreeForm(fm.getProvFreeForm()); + + dsv.getFileMetadatas().add(newFm); + } + + + + + dsv.setDataset(this.getDataset()); + return dsv; + + } public void initDefaultValues() { //first clear then initialize - in case values were present diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java index d1a8a0692ab..229adfc0943 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java @@ -784,7 +784,9 @@ private void initDatasetFilesDifferencesList() { fdr.setLeftColumn(diffLabel); fdr.setFdi(fdi); fdr.setFile1Id(replacedFile.getDataFile().getId().toString()); - fdr.setFile2Id(newFile.getDataFile().getId().toString()); + if (newFile.getDataFile().getId() != null) { + fdr.setFile2Id(newFile.getDataFile().getId().toString()); + } fdr.setFile1ChecksumType(replacedFile.getDataFile().getChecksumType()); fdr.setFile2ChecksumType(newFile.getDataFile().getChecksumType()); fdr.setFile1ChecksumValue(replacedFile.getDataFile().getChecksumValue()); @@ -1161,6 +1163,154 @@ private datasetFileDifferenceItem selectFileMetadataDiffs(FileMetadata fm1, File return fdi; } + public String getEditSummaryForLog() { + String retVal = ""; + + retVal = System.lineSeparator() + this.newVersion.getTitle() + " (" + this.originalVersion.getDataset().getIdentifier() + ") was updated " + this.newVersion.getLastUpdateTime(); + + String valueString = ""; + String groupString = ""; + + //Metadata differences displayed by Metdata block + if (!this.detailDataByBlock.isEmpty()) { + for (List blocks : detailDataByBlock) { + groupString = System.lineSeparator() + " " + BundleUtil.getStringFromBundle("dataset.versionDifferences.metadataBlock") ; + String blockDisplay = " " + blocks.get(0)[0].getDatasetFieldType().getMetadataBlock().getDisplayName() + ": " + System.lineSeparator(); + groupString += blockDisplay; + for (DatasetField[] dsfArray : blocks) { + valueString = " " + BundleUtil.getStringFromBundle("dataset.versionDifferences.field") + ": "; + String title = dsfArray[0].getDatasetFieldType().getTitle(); + valueString += title; + String oldValue = " " + BundleUtil.getStringFromBundle("dataset.versionDifferences.changed") + " " + BundleUtil.getStringFromBundle("dataset.versionDifferences.from") + ": "; + + if (!dsfArray[0].isEmpty()) { + if (dsfArray[0].getDatasetFieldType().isPrimitive()) { + oldValue += dsfArray[0].getDisplayValue(); + } else { + oldValue += dsfArray[0].getCompoundDisplayValue(); + } + } + valueString += oldValue; + + String newValue = " " + BundleUtil.getStringFromBundle("dataset.versionDifferences.to") + ": "; + if (!dsfArray[1].isEmpty()) { + if (dsfArray[1].getDatasetFieldType().isPrimitive()) { + newValue += dsfArray[1].getDisplayValue(); + } else { + newValue += dsfArray[1].getCompoundDisplayValue(); + } + + } + valueString += newValue; + groupString += valueString + System.lineSeparator(); + } + retVal += groupString + System.lineSeparator(); + } + } + + // File Differences + String fileDiff = System.lineSeparator() + "File Differences: "+ System.lineSeparator(); + if(!this.getDatasetFilesDiffList().isEmpty()){ + + String itemDiff; + + for (datasetFileDifferenceItem item : this.getDatasetFilesDiffList()) { + itemDiff = ""; //file.viewDiffDialog.notAvailable + itemDiff = System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileName") + ": "; + itemDiff += item.fileName1 != null ? item.fileName1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileName2 != null ? item.fileName2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileType") + ": "; + itemDiff += item.fileType1 != null ? item.fileType1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileType2 != null ? item.fileType2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileSize") + ": "; + itemDiff += item.fileSize1 != null ? item.fileSize1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileSize2 != null ? item.fileSize2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.category") + ": "; + itemDiff += item.fileCat1 != null ? item.fileCat1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileCat2 != null ? item.fileCat2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.description") + ": "; + itemDiff += item.fileDesc1 != null ? item.fileDesc1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileDesc2 != null ? item.fileDesc2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.provDescription") + ": "; + itemDiff += item.fileProvFree1 != null ? item.fileProvFree1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileProvFree2 != null ? item.fileProvFree2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.restricted") + ": "; + itemDiff += item.fileRest1 != null ? item.fileRest1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileRest2 != null ? item.fileRest2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + fileDiff += itemDiff; + } + + + retVal += fileDiff; + } + + // File Differences + String fileReplaced = System.lineSeparator() + "File Replaced: "+ System.lineSeparator(); + if(!this.getDatasetFilesDiffList().isEmpty()){ + + String itemDiff; + + for (datasetReplaceFileItem item : this.getDatasetFilesReplacementList()) { + itemDiff = ""; + itemDiff = System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileName") + ": "; + itemDiff += item.fdi.fileName1 != null ? item.fdi.fileName1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fdi.fileName2 != null ? item.fdi.fileName2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileType") + ": "; + itemDiff += item.fdi.fileType1 != null ? item.fdi.fileType1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fdi.fileType2 != null ? item.fdi.fileType2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileSize") + ": "; + itemDiff += item.fdi.fileSize1 != null ? item.fdi.fileSize1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fdi.fileSize2 != null ? item.fdi.fileSize2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.category") + ": "; + itemDiff += item.fdi.fileCat1 != null ? item.fdi.fileCat1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fdi.fileCat2 != null ? item.fdi.fileCat2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.description") + ": "; + itemDiff += item.fdi.fileDesc1 != null ? item.fdi.fileDesc1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fdi.fileDesc2 != null ? item.fdi.fileDesc2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.provDescription") + ": "; + itemDiff += item.fdi.fileProvFree1 != null ? item.fdi.fileProvFree1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fdi.fileProvFree2 != null ? item.fdi.fileProvFree2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.restricted") + ": "; + itemDiff += item.fdi.fileRest1 != null ? item.fdi.fileRest1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fdi.fileRest2 != null ? item.fdi.fileRest2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + fileReplaced += itemDiff; + } + + + retVal += fileReplaced; + } + + String termsOfUseDiff = System.lineSeparator() + "Terms of Use and Access Changes: "+ System.lineSeparator(); + + if (!this.changedTermsAccess.isEmpty()){ + for (String[] blocks : changedTermsAccess) { + String itemDiff = System.lineSeparator() + blocks[0] + " " + BundleUtil.getStringFromBundle("dataset.versionDifferences.changed") + " " + BundleUtil.getStringFromBundle("dataset.versionDifferences.from") + ": "; + itemDiff += blocks[1]; + itemDiff += " " + BundleUtil.getStringFromBundle("dataset.versionDifferences.to") + ": "+ blocks[2]; + termsOfUseDiff +=itemDiff; + } + retVal +=termsOfUseDiff; + } + + + return retVal; + } + + public class DifferenceSummaryGroup{ private String displayName; diff --git a/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java b/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java index 2f3cfc72f66..e22e2d6c5c9 100644 --- a/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java @@ -146,6 +146,7 @@ public enum FileEditMode { private List newFiles = new ArrayList<>();; private List uploadedFiles = new ArrayList<>();; private DatasetVersion workingVersion; + private DatasetVersion clone; private String dropBoxSelection = ""; private String displayCitation; private boolean datasetUpdateRequired = false; @@ -474,7 +475,7 @@ public String init() { workingVersion = dataset.getEditVersion(); - + clone = workingVersion.cloneDatasetVersion(); if (workingVersion == null || !workingVersion.isDraft()) { // Sorry, we couldn't find/obtain a draft version for this dataset! return permissionsWrapper.notFound(); @@ -1220,7 +1221,7 @@ public String save() { Command cmd; try { - cmd = new UpdateDatasetVersionCommand(dataset, dvRequestService.getDataverseRequest(), filesToBeDeleted); + cmd = new UpdateDatasetVersionCommand(dataset, dvRequestService.getDataverseRequest(), filesToBeDeleted, clone); ((UpdateDatasetVersionCommand) cmd).setValidateLenient(true); dataset = commandEngine.submit(cmd); diff --git a/src/main/java/edu/harvard/iq/dataverse/datasetutility/AddReplaceFileHelper.java b/src/main/java/edu/harvard/iq/dataverse/datasetutility/AddReplaceFileHelper.java index acbb9211ca1..154399688cf 100644 --- a/src/main/java/edu/harvard/iq/dataverse/datasetutility/AddReplaceFileHelper.java +++ b/src/main/java/edu/harvard/iq/dataverse/datasetutility/AddReplaceFileHelper.java @@ -129,6 +129,7 @@ public class AddReplaceFileHelper{ // ----------------------------------- private User user; private DatasetVersion workingVersion; + private DatasetVersion clone; List initialFileList; List finalFileList; @@ -1042,7 +1043,7 @@ private boolean step_030_createNewFilesViaIngest(){ // Load the working version of the Dataset workingVersion = dataset.getEditVersion(); - + clone = workingVersion.cloneDatasetVersion(); try { initialFileList = FileUtil.createDataFiles(workingVersion, this.newFileInputStream, @@ -1439,7 +1440,7 @@ private boolean step_070_run_update_dataset_command(){ } Command update_cmd; - update_cmd = new UpdateDatasetVersionCommand(dataset, dvRequest); + update_cmd = new UpdateDatasetVersionCommand(dataset, dvRequest, clone); ((UpdateDatasetVersionCommand) update_cmd).setValidateLenient(true); try { diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/UpdateDatasetVersionCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/UpdateDatasetVersionCommand.java index f54ce5d8be5..ee25ae0d677 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/UpdateDatasetVersionCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/UpdateDatasetVersionCommand.java @@ -22,15 +22,24 @@ public class UpdateDatasetVersionCommand extends AbstractDatasetCommand private static final Logger logger = Logger.getLogger(UpdateDatasetVersionCommand.class.getCanonicalName()); private final List filesToDelete; private boolean validateLenient = false; + private final DatasetVersion clone; public UpdateDatasetVersionCommand(Dataset theDataset, DataverseRequest aRequest) { super(aRequest, theDataset); this.filesToDelete = new ArrayList<>(); + this.clone = null; } public UpdateDatasetVersionCommand(Dataset theDataset, DataverseRequest aRequest, List filesToDelete) { super(aRequest, theDataset); this.filesToDelete = filesToDelete; + this.clone = null; + } + + public UpdateDatasetVersionCommand(Dataset theDataset, DataverseRequest aRequest, List filesToDelete, DatasetVersion clone) { + super(aRequest, theDataset); + this.filesToDelete = filesToDelete; + this.clone = clone; } public UpdateDatasetVersionCommand(Dataset theDataset, DataverseRequest aRequest, DataFile fileToDelete) { @@ -38,13 +47,20 @@ public UpdateDatasetVersionCommand(Dataset theDataset, DataverseRequest aRequest // get the latest file metadata for the file; ensuring that it is a draft version this.filesToDelete = new ArrayList<>(); + this.clone = null; for (FileMetadata fmd : theDataset.getEditVersion().getFileMetadatas()) { if (fmd.getDataFile().equals(fileToDelete)) { filesToDelete.add(fmd); break; } } - } + } + + public UpdateDatasetVersionCommand(Dataset theDataset, DataverseRequest aRequest, DatasetVersion clone) { + super(aRequest, theDataset); + this.filesToDelete = new ArrayList<>(); + this.clone = clone; + } public boolean isValidateLenient() { return validateLenient; @@ -144,7 +160,12 @@ public Dataset execute(CommandContext ctxt) throws CommandException { updateDatasetUser(ctxt); ctxt.index().indexDataset(savedDataset, true); - + if (clone != null) { + DatasetVersionDifference dvd = new DatasetVersionDifference(editVersion, clone); + AuthenticatedUser au = (AuthenticatedUser) getUser(); + String editLog = au.getFirstName() + " " + au.getLastName() + " (" + au.getIdentifier() + ") updated " + dvd.getEditSummaryForLog(); + logger.info(editLog); + } return savedDataset; } From dc109f248823c09a99f09c4694d77023f51f30c4 Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Mon, 10 Dec 2018 13:58:18 -0500 Subject: [PATCH 043/241] #5145 save difference summary to log --- .../dataverse/DatasetVersionDifference.java | 105 +++++++++++------- .../dataverse/DatasetVersionServiceBean.java | 14 +++ .../iq/dataverse/batch/util/LoggingUtil.java | 18 +++ .../impl/UpdateDatasetVersionCommand.java | 3 +- 4 files changed, 95 insertions(+), 45 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java index 229adfc0943..7d241181c8f 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java @@ -8,6 +8,7 @@ import java.util.ResourceBundle; import edu.harvard.iq.dataverse.util.BundleUtil; import java.util.Arrays; +import java.util.Date; /** * @@ -1164,9 +1165,10 @@ private datasetFileDifferenceItem selectFileMetadataDiffs(FileMetadata fm1, File } public String getEditSummaryForLog() { - String retVal = ""; - retVal = System.lineSeparator() + this.newVersion.getTitle() + " (" + this.originalVersion.getDataset().getIdentifier() + ") was updated " + this.newVersion.getLastUpdateTime(); + String retVal = ""; + + retVal = System.lineSeparator() + this.newVersion.getTitle() + " (" + this.originalVersion.getDataset().getIdentifier() + ") was updated " + new Date(); String valueString = ""; String groupString = ""; @@ -1209,54 +1211,73 @@ public String getEditSummaryForLog() { } // File Differences - String fileDiff = System.lineSeparator() + "File Differences: "+ System.lineSeparator(); + String fileDiff = System.lineSeparator() + BundleUtil.getStringFromBundle("file.viewDiffDialog.files.header") + ": " + System.lineSeparator(); if(!this.getDatasetFilesDiffList().isEmpty()){ String itemDiff; for (datasetFileDifferenceItem item : this.getDatasetFilesDiffList()) { - itemDiff = ""; //file.viewDiffDialog.notAvailable - itemDiff = System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileName") + ": "; - itemDiff += item.fileName1 != null ? item.fileName1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); - itemDiff += " : "; - itemDiff += item.fileName2 != null ? item.fileName2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; - itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileType") + ": "; - itemDiff += item.fileType1 != null ? item.fileType1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); - itemDiff += " : "; - itemDiff += item.fileType2 != null ? item.fileType2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; - itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileSize") + ": "; - itemDiff += item.fileSize1 != null ? item.fileSize1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); - itemDiff += " : "; - itemDiff += item.fileSize2 != null ? item.fileSize2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; - itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.category") + ": "; - itemDiff += item.fileCat1 != null ? item.fileCat1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); - itemDiff += " : "; - itemDiff += item.fileCat2 != null ? item.fileCat2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; - itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.description") + ": "; - itemDiff += item.fileDesc1 != null ? item.fileDesc1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); - itemDiff += " : "; - itemDiff += item.fileDesc2 != null ? item.fileDesc2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; - itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.provDescription") + ": "; - itemDiff += item.fileProvFree1 != null ? item.fileProvFree1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); - itemDiff += " : "; - itemDiff += item.fileProvFree2 != null ? item.fileProvFree2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; - itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.restricted") + ": "; - itemDiff += item.fileRest1 != null ? item.fileRest1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); - itemDiff += " : "; - itemDiff += item.fileRest2 != null ? item.fileRest2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + itemDiff = BundleUtil.getStringFromBundle("file.viewDiffDialog.fileID") + ": " + item.fileId; + + if (item.fileName1 != null || item.fileName2 != null) { + itemDiff = System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileName") + ": "; + itemDiff += item.fileName1 != null ? item.fileName1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileName2 != null ? item.fileName2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + } + + if (item.fileType1 != null || item.fileType2 != null) { + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileType") + ": "; + itemDiff += item.fileType1 != null ? item.fileType1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileType2 != null ? item.fileType2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + } + + if (item.fileSize1 != null || item.fileSize2 != null) { + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileSize") + ": "; + itemDiff += item.fileSize1 != null ? item.fileSize1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileSize2 != null ? item.fileSize2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + } + + if (item.fileCat1 != null || item.fileCat2 != null) { + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.category") + ": "; + itemDiff += item.fileCat1 != null ? item.fileCat1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileCat2 != null ? item.fileCat2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + } + + if (item.fileDesc1 != null || item.fileDesc2 != null) { + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.description") + ": "; + itemDiff += item.fileDesc1 != null ? item.fileDesc1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileDesc2 != null ? item.fileDesc2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + } + + if (item.fileProvFree1 != null || item.fileProvFree2 != null) { + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.provDescription") + ": "; + itemDiff += item.fileProvFree1 != null ? item.fileProvFree1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileProvFree2 != null ? item.fileProvFree2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + } + + if (item.fileRest1 != null || item.fileRest2 != null) { + itemDiff += System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.restricted") + ": "; + itemDiff += item.fileRest1 != null ? item.fileRest1 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable"); + itemDiff += " : "; + itemDiff += item.fileRest2 != null ? item.fileRest2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; + + } + fileDiff += itemDiff; } - - + retVal += fileDiff; } - // File Differences - String fileReplaced = System.lineSeparator() + "File Replaced: "+ System.lineSeparator(); - if(!this.getDatasetFilesDiffList().isEmpty()){ - - String itemDiff; - + String fileReplaced = System.lineSeparator() + BundleUtil.getStringFromBundle("file.viewDiffDialog.filesReplaced")+ ": "+ System.lineSeparator(); + if(!this.getDatasetFilesReplacementList().isEmpty()){ + String itemDiff; for (datasetReplaceFileItem item : this.getDatasetFilesReplacementList()) { itemDiff = ""; itemDiff = System.lineSeparator() + " " + BundleUtil.getStringFromBundle("file.viewDiffDialog.fileName") + ": "; @@ -1288,9 +1309,7 @@ public String getEditSummaryForLog() { itemDiff += " : "; itemDiff += item.fdi.fileRest2 != null ? item.fdi.fileRest2 : BundleUtil.getStringFromBundle("file.viewDiffDialog.notAvailable") + " "; fileReplaced += itemDiff; - } - - + } retVal += fileReplaced; } diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java index fe392f5132f..60a0bbc4788 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java @@ -5,6 +5,8 @@ import edu.harvard.iq.dataverse.search.IndexServiceBean; import edu.harvard.iq.dataverse.authorization.AuthenticationServiceBean; import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; +import static edu.harvard.iq.dataverse.batch.jobs.importer.filesystem.FileRecordJobListener.SEP; +import edu.harvard.iq.dataverse.batch.util.LoggingUtil; import edu.harvard.iq.dataverse.search.SolrSearchResult; import edu.harvard.iq.dataverse.settings.SettingsServiceBean; import edu.harvard.iq.dataverse.util.BundleUtil; @@ -39,6 +41,7 @@ public class DatasetVersionServiceBean implements java.io.Serializable { private static final Logger logger = Logger.getLogger(DatasetVersionServiceBean.class.getCanonicalName()); + @EJB DatasetServiceBean datasetService; @@ -796,6 +799,17 @@ private void assignDatasetThumbnailByNativeQuery(Long versionId, Long dataFileId } } + public void writeEditVersionLog(DatasetVersionDifference dvd, AuthenticatedUser au) { + + String logDir = System.getProperty("com.sun.aas.instanceRoot") + SEP + "logs" + SEP + "edit-drafts" + SEP; + String identifier = dvd.getOriginalVersion().getDataset().getIdentifier(); + identifier = identifier.substring(identifier.indexOf("/") + 1); + String datasetId = dvd.getOriginalVersion().getDataset().getId().toString(); + String summary = au.getFirstName() + " " + au.getLastName() + " (" + au.getIdentifier() + ") updated " + dvd.getEditSummaryForLog(); + LoggingUtil.saveDraftEditLog(summary, logDir, identifier, datasetId); + + } + public void populateDatasetSearchCard(SolrSearchResult solrSearchResult) { Long dataverseId = Long.parseLong(solrSearchResult.getParent().get("id")); Long datasetVersionId = solrSearchResult.getDatasetVersionId(); diff --git a/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java b/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java index eccb8c0f9eb..59e8d8d49b5 100644 --- a/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java +++ b/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java @@ -25,6 +25,8 @@ import javax.batch.runtime.JobExecution; import java.io.File; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.logging.FileHandler; import java.util.logging.Formatter; import java.util.logging.Level; @@ -35,6 +37,7 @@ public class LoggingUtil { private static final Logger logger = Logger.getLogger(LoggingUtil.class.getName()); + private static final SimpleDateFormat logFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH-mm-ss"); public static void saveJsonLog(String jobJson, String logDir, String jobId) { try { @@ -49,6 +52,21 @@ public static void saveJsonLog(String jobJson, String logDir, String jobId) { logger.log(Level.SEVERE, "Error saving json report: " + e.getMessage()); } } + + public static void saveDraftEditLog(String changes, String logDir, String identifier, String datasetId) { + try { + checkCreateLogDirectory( logDir ); + File dir = new File(logDir); + if (!dir.exists() && !dir.mkdirs()) { + logger.log(Level.SEVERE, "Couldn't create directory: " + dir.getAbsolutePath()); + } + String logTimestamp = logFormatter.format(new Date()); + File editDraftLog = new File(dir.getAbsolutePath() + "/edit-draft-" + datasetId + "-" + identifier + "-" + logTimestamp + ".txt"); + FileUtils.writeStringToFile(editDraftLog, changes); + } catch (Exception e) { + logger.log(Level.SEVERE, "Error saving Edit Draft report: " + e.getMessage()); + } + } public static ActionLogRecord getActionLogRecord(String userId, JobExecution jobExec, String jobInfo, String jobId) { try { diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/UpdateDatasetVersionCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/UpdateDatasetVersionCommand.java index ee25ae0d677..467ffd734c0 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/UpdateDatasetVersionCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/UpdateDatasetVersionCommand.java @@ -163,8 +163,7 @@ public Dataset execute(CommandContext ctxt) throws CommandException { if (clone != null) { DatasetVersionDifference dvd = new DatasetVersionDifference(editVersion, clone); AuthenticatedUser au = (AuthenticatedUser) getUser(); - String editLog = au.getFirstName() + " " + au.getLastName() + " (" + au.getIdentifier() + ") updated " + dvd.getEditSummaryForLog(); - logger.info(editLog); + ctxt.datasetVersion().writeEditVersionLog(dvd, au); } return savedDataset; } From 7ebf71c15a6bd7be1a30ad3b90d60a214d7512f6 Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Wed, 12 Dec 2018 13:43:03 -0500 Subject: [PATCH 044/241] #5145 fix formatting of save edit log method --- .../iq/dataverse/batch/util/LoggingUtil.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java b/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java index 59e8d8d49b5..cf70090d39c 100644 --- a/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java +++ b/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java @@ -53,19 +53,19 @@ public static void saveJsonLog(String jobJson, String logDir, String jobId) { } } - public static void saveDraftEditLog(String changes, String logDir, String identifier, String datasetId) { - try { - checkCreateLogDirectory( logDir ); - File dir = new File(logDir); - if (!dir.exists() && !dir.mkdirs()) { - logger.log(Level.SEVERE, "Couldn't create directory: " + dir.getAbsolutePath()); - } - String logTimestamp = logFormatter.format(new Date()); - File editDraftLog = new File(dir.getAbsolutePath() + "/edit-draft-" + datasetId + "-" + identifier + "-" + logTimestamp + ".txt"); - FileUtils.writeStringToFile(editDraftLog, changes); - } catch (Exception e) { - logger.log(Level.SEVERE, "Error saving Edit Draft report: " + e.getMessage()); - } + public static void saveDraftEditLog(String changes, String logDir, String identifier, String datasetId) { + try { + checkCreateLogDirectory(logDir); + File dir = new File(logDir); + if (!dir.exists() && !dir.mkdirs()) { + logger.log(Level.SEVERE, "Couldn't create directory: " + dir.getAbsolutePath()); + } + String logTimestamp = logFormatter.format(new Date()); + File editDraftLog = new File(dir.getAbsolutePath() + "/edit-draft-" + datasetId + "-" + identifier + "-" + logTimestamp + ".txt"); + FileUtils.writeStringToFile(editDraftLog, changes); + } catch (Exception e) { + logger.log(Level.SEVERE, "Error saving Edit Draft report: " + e.getMessage()); + } } public static ActionLogRecord getActionLogRecord(String userId, JobExecution jobExec, String jobInfo, String jobId) { From dfdab290a976b1c1a212bef66b9ff20cf59687f4 Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Wed, 12 Dec 2018 13:58:29 -0500 Subject: [PATCH 045/241] Add documentation of the Edit Draft Versions logging --- doc/sphinx-guides/source/admin/monitoring.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/sphinx-guides/source/admin/monitoring.rst b/doc/sphinx-guides/source/admin/monitoring.rst index aa5131d1e8a..9bd6a411516 100644 --- a/doc/sphinx-guides/source/admin/monitoring.rst +++ b/doc/sphinx-guides/source/admin/monitoring.rst @@ -99,6 +99,11 @@ actionlogrecord There is a database table called ``actionlogrecord`` that captures events that may be of interest. See https://github.com/IQSS/dataverse/issues/2729 for more discussion around this table. +Edit Draft Versions Logging +--------------------------- + +Changes made to draft versions of datasets are logged in a folder called logs/edit-drafts. See https://github.com/IQSS/dataverse/issues/5145 for more information on this logging. + EJB Timers ---------- From 2e1d6073f1003a55689d6d9436d50b9568368622 Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Wed, 12 Dec 2018 15:46:14 -0500 Subject: [PATCH 046/241] #5145 make save log method more generic --- .../dataverse/DatasetVersionServiceBean.java | 9 ++++-- .../iq/dataverse/batch/util/LoggingUtil.java | 31 ++++++++----------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java index 60a0bbc4788..13cdcd782b8 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java @@ -11,9 +11,11 @@ import edu.harvard.iq.dataverse.settings.SettingsServiceBean; import edu.harvard.iq.dataverse.util.BundleUtil; import edu.harvard.iq.dataverse.util.SystemConfig; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -42,6 +44,7 @@ public class DatasetVersionServiceBean implements java.io.Serializable { private static final Logger logger = Logger.getLogger(DatasetVersionServiceBean.class.getCanonicalName()); + private static final SimpleDateFormat logFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH-mm-ss"); @EJB DatasetServiceBean datasetService; @@ -806,8 +809,10 @@ public void writeEditVersionLog(DatasetVersionDifference dvd, AuthenticatedUser identifier = identifier.substring(identifier.indexOf("/") + 1); String datasetId = dvd.getOriginalVersion().getDataset().getId().toString(); String summary = au.getFirstName() + " " + au.getLastName() + " (" + au.getIdentifier() + ") updated " + dvd.getEditSummaryForLog(); - LoggingUtil.saveDraftEditLog(summary, logDir, identifier, datasetId); - + String logTimestamp = logFormatter.format(new Date()); + String fileName = "/edit-draft-" + datasetId + "-" + identifier + "-" + logTimestamp + ".txt"; + LoggingUtil.saveLogFile(summary, logDir, fileName); + } public void populateDatasetSearchCard(SolrSearchResult solrSearchResult) { diff --git a/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java b/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java index cf70090d39c..b695feda0c2 100644 --- a/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java +++ b/src/main/java/edu/harvard/iq/dataverse/batch/util/LoggingUtil.java @@ -37,35 +37,30 @@ public class LoggingUtil { private static final Logger logger = Logger.getLogger(LoggingUtil.class.getName()); - private static final SimpleDateFormat logFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH-mm-ss"); public static void saveJsonLog(String jobJson, String logDir, String jobId) { - try { - checkCreateLogDirectory( logDir ); - File dir = new File(logDir); - if (!dir.exists() && !dir.mkdirs()) { - logger.log(Level.SEVERE, "Couldn't create directory: " + dir.getAbsolutePath()); - } - File reportJson = new File(dir.getAbsolutePath() + "/job-" + jobId + ".json"); - FileUtils.writeStringToFile(reportJson, jobJson); - } catch (Exception e) { - logger.log(Level.SEVERE, "Error saving json report: " + e.getMessage()); - } + try { + String fileName = "/job-" + jobId + ".json"; + saveLogFile(jobJson, logDir, fileName); + } catch (Exception e) { + logger.log(Level.SEVERE, "Error saving json report: " + e.getMessage()); + } } - - public static void saveDraftEditLog(String changes, String logDir, String identifier, String datasetId) { + + public static void saveLogFile(String fileContent, String logDir, String fileName) { + try { checkCreateLogDirectory(logDir); File dir = new File(logDir); if (!dir.exists() && !dir.mkdirs()) { logger.log(Level.SEVERE, "Couldn't create directory: " + dir.getAbsolutePath()); } - String logTimestamp = logFormatter.format(new Date()); - File editDraftLog = new File(dir.getAbsolutePath() + "/edit-draft-" + datasetId + "-" + identifier + "-" + logTimestamp + ".txt"); - FileUtils.writeStringToFile(editDraftLog, changes); + File logFile = new File(dir.getAbsolutePath() + fileName); + FileUtils.writeStringToFile(logFile, fileContent); } catch (Exception e) { - logger.log(Level.SEVERE, "Error saving Edit Draft report: " + e.getMessage()); + logger.log(Level.SEVERE, "Error saving log report: " + fileName + " " + e.getMessage()); } + } public static ActionLogRecord getActionLogRecord(String userId, JobExecution jobExec, String jobInfo, String jobId) { From 0df98cb6135b12306529d81898cf0f1a71eabe18 Mon Sep 17 00:00:00 2001 From: Michael Heppler Date: Wed, 12 Dec 2018 17:32:27 -0500 Subject: [PATCH 047/241] Removed analytics includes from template [ref #4660] --- src/main/webapp/dataverse_template.xhtml | 2 -- .../webapp/google-analytics-snippet.xhtml | 24 ----------------- src/main/webapp/piwik-analytics-snippet.xhtml | 27 ------------------- 3 files changed, 53 deletions(-) delete mode 100644 src/main/webapp/google-analytics-snippet.xhtml delete mode 100644 src/main/webapp/piwik-analytics-snippet.xhtml diff --git a/src/main/webapp/dataverse_template.xhtml b/src/main/webapp/dataverse_template.xhtml index c8de4c40716..426228d9348 100644 --- a/src/main/webapp/dataverse_template.xhtml +++ b/src/main/webapp/dataverse_template.xhtml @@ -113,8 +113,6 @@ //]]> - - diff --git a/src/main/webapp/google-analytics-snippet.xhtml b/src/main/webapp/google-analytics-snippet.xhtml deleted file mode 100644 index eec9bc1bf3f..00000000000 --- a/src/main/webapp/google-analytics-snippet.xhtml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - diff --git a/src/main/webapp/piwik-analytics-snippet.xhtml b/src/main/webapp/piwik-analytics-snippet.xhtml deleted file mode 100644 index 23ea8786fbf..00000000000 --- a/src/main/webapp/piwik-analytics-snippet.xhtml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - From 32aaf1cafe47be1c930cc3bede1032e4dc95e3ce Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Tue, 18 Dec 2018 17:05:40 -0500 Subject: [PATCH 048/241] #5145 use unsanitized values for log file --- .../harvard/iq/dataverse/DatasetField.java | 42 +++++++++++++++++++ .../iq/dataverse/DatasetFieldValue.java | 17 ++++++++ .../dataverse/DatasetVersionDifference.java | 8 ++-- 3 files changed, 63 insertions(+), 4 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetField.java b/src/main/java/edu/harvard/iq/dataverse/DatasetField.java index d9250c4093f..6d4b56cf6cf 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetField.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetField.java @@ -257,6 +257,17 @@ public String getDisplayValue() { } return returnString; } + + public String getRawValue() { + String returnString = ""; + for (String value : getRawValuesList()) { + if(value == null) { + value=""; + } + returnString += (returnString.isEmpty() ? "" : "; ") + value.trim(); + } + return returnString; + } public String getCompoundDisplayValue() { String returnString = ""; @@ -271,6 +282,20 @@ public String getCompoundDisplayValue() { } return returnString; } + + public String getCompoundRawValue() { + String returnString = ""; + for (DatasetFieldCompoundValue dscv : datasetFieldCompoundValues) { + for (DatasetField dsf : dscv.getChildDatasetFields()) { + for (String value : dsf.getRawValuesList()) { + if (!(value == null)) { + returnString += (returnString.isEmpty() ? "" : "; ") + value.trim(); + } + } + } + } + return returnString; + } /** * despite the name, this returns a list of display values; not a list of values @@ -290,6 +315,23 @@ public List getValues() { } return returnList; } + + public List getRawValuesList() { + List returnList = new ArrayList<>(); + if (!datasetFieldValues.isEmpty()) { + for (DatasetFieldValue dsfv : datasetFieldValues) { + returnList.add(dsfv.getUnsanitizedDisplayValue()); + } + } else { + for (ControlledVocabularyValue cvv : controlledVocabularyValues) { + if (cvv != null && cvv.getStrValue() != null) { + returnList.add(cvv.getStrValue()); + } + } + } + return returnList; + } + /** * list of values (as opposed to display values). * used for passing to solr for indexing diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetFieldValue.java b/src/main/java/edu/harvard/iq/dataverse/DatasetFieldValue.java index cf6c762f3ed..27929dd3a39 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetFieldValue.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetFieldValue.java @@ -115,6 +115,23 @@ public String getDisplayValue() { return retVal; } + public String getUnsanitizedDisplayValue() { + String retVal = ""; + if (!StringUtils.isBlank(this.getValue()) && !DatasetField.NA_VALUE.equals(this.getValue())) { + String format = this.datasetField.getDatasetFieldType().getDisplayFormat(); + if (StringUtils.isBlank(format)) { + format = "#VALUE"; + } + String value = this.getValue(); + String displayValue = format + .replace("#NAME", this.datasetField.getDatasetFieldType().getTitle() == null ? "" : this.datasetField.getDatasetFieldType().getTitle()) + .replace("#EMAIL", BundleUtil.getStringFromBundle("dataset.email.hiddenMessage")) + .replace("#VALUE", value); + retVal = displayValue; + } + return retVal; + } + public int getDisplayOrder() { return displayOrder; } diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java index 7d241181c8f..e3fe4a96ffe 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionDifference.java @@ -1187,9 +1187,9 @@ public String getEditSummaryForLog() { if (!dsfArray[0].isEmpty()) { if (dsfArray[0].getDatasetFieldType().isPrimitive()) { - oldValue += dsfArray[0].getDisplayValue(); + oldValue += dsfArray[0].getRawValue(); } else { - oldValue += dsfArray[0].getCompoundDisplayValue(); + oldValue += dsfArray[0].getCompoundRawValue(); } } valueString += oldValue; @@ -1197,9 +1197,9 @@ public String getEditSummaryForLog() { String newValue = " " + BundleUtil.getStringFromBundle("dataset.versionDifferences.to") + ": "; if (!dsfArray[1].isEmpty()) { if (dsfArray[1].getDatasetFieldType().isPrimitive()) { - newValue += dsfArray[1].getDisplayValue(); + newValue += dsfArray[1].getRawValue(); } else { - newValue += dsfArray[1].getCompoundDisplayValue(); + newValue += dsfArray[1].getCompoundRawValue(); } } From 846b6a03bc40d712889b9ddb2955b228827ed54f Mon Sep 17 00:00:00 2001 From: Michael Heppler Date: Tue, 18 Dec 2018 17:49:04 -0500 Subject: [PATCH 049/241] Removed documentation references to analytics settings. Added new Analytics Tracking Code section to Installation Guide. [ref #4660] --- doc/sphinx-guides/source/admin/monitoring.rst | 2 +- .../source/installation/config.rst | 44 ++++--------------- 2 files changed, 10 insertions(+), 36 deletions(-) diff --git a/doc/sphinx-guides/source/admin/monitoring.rst b/doc/sphinx-guides/source/admin/monitoring.rst index aa5131d1e8a..8d25029c19a 100644 --- a/doc/sphinx-guides/source/admin/monitoring.rst +++ b/doc/sphinx-guides/source/admin/monitoring.rst @@ -58,7 +58,7 @@ HTTP traffic can be monitored from the client side, the server side, or both. Monitoring HTTP Traffic from the Client Side ++++++++++++++++++++++++++++++++++++++++++++ -HTTP traffic for web clients that have cookies enabled (most browsers) can be tracked by Google Analytics and Piwik (renamed to "Matomo") as explained in the :doc:`/installation/config` section of the Installation Guide under ``:GoogleAnalyticsCode`` and ``:PiwikAnalyticsId``, respectively. You could also embed additional client side monitoring solutions by using a custom footer (``:FooterCustomizationFile``), which is described on the same page. +HTTP traffic for web clients that have cookies enabled (most browsers) can be tracked by Google Analytics (https://www.google.com/analytics/) and Matomo (formerly to "Piwik"; https://matomo.org/) as explained in the :ref:`Analytics-Tracking-Code` section of the Installation Guide. Monitoring HTTP Traffic from the Server Side +++++++++++++++++++++++++++++++++++++++++++++ diff --git a/doc/sphinx-guides/source/installation/config.rst b/doc/sphinx-guides/source/installation/config.rst index 3cbc0b0757e..6260a4282e1 100644 --- a/doc/sphinx-guides/source/installation/config.rst +++ b/doc/sphinx-guides/source/installation/config.rst @@ -523,6 +523,15 @@ Once you have the location of your custom CSS file, run this curl command to add ``curl -X PUT -d '/var/www/dataverse/branding/custom-stylesheet.css' http://localhost:8080/api/admin/settings/:StyleCustomizationFile`` +.. _Analytics-Tracking-Code: + +Analytics Tracking Code +----------------------- + +Your analytics tracking code can be added to your Dataverse installation in a similar fashion to how you brand it, by adding custom files and adding them to your settings. + +Popular analytics providers Google Analytics (https://www.google.com/analytics/) and Matomo (formerly to "Piwik"; https://matomo.org/) have been set up with Dataverse. Use the documentation they provide to add to your custom HTML files. This allows for more control of what you prefer to track. + Going Live: Launching Your Production Deployment ------------------------------------------------ @@ -1117,13 +1126,6 @@ For example, if you want your installation of Dataverse to not attempt to ingest Limit the number of files in a zip that Dataverse will accept. -:GoogleAnalyticsCode -++++++++++++++++++++ - -Set your Google Analytics Tracking ID thusly: - -``curl -X PUT -d 'trackingID' http://localhost:8080/api/admin/settings/:GoogleAnalyticsCode`` - :SolrHostColonPort ++++++++++++++++++ @@ -1231,34 +1233,6 @@ Here is an example of setting the default auth provider back to ``builtin``: Set to false to disallow local accounts to be created. See also the sections on :doc:`shibboleth` and :doc:`oauth2`. -:PiwikAnalyticsId -++++++++++++++++++++ - -Site identifier created in your Piwik instance. Example: - -``curl -X PUT -d 42 http://localhost:8080/api/admin/settings/:PiwikAnalyticsId`` - -:PiwikAnalyticsHost -++++++++++++++++++++ - -Host FQDN or URL of your Piwik instance before the ``/piwik.php``. Examples: - -``curl -X PUT -d stats.domain.tld http://localhost:8080/api/admin/settings/:PiwikAnalyticsHost`` - -or - -``curl -X PUT -d hostname.domain.tld/stats http://localhost:8080/api/admin/settings/:PiwikAnalyticsHost`` - -:PiwikAnalyticsTrackerFileName -++++++++++++++++++++++++++++++ - -Filename for the 'php' and 'js' tracker files used in the Piwik code (piwik.php and piwik.js). -Sometimes these files are renamed in order to prevent ad-blockers (in the browser) to block the Piwik tracking code. -This sets the base name (without dot and extension), if not set it defaults to 'piwik'. - -``curl -X PUT -d domainstats http://localhost:8080/api/admin/settings/:PiwikAnalyticsTrackerFileName`` - - :FileFixityChecksumAlgorithm ++++++++++++++++++++++++++++ From 4b5b3f3be618b6bda5b1fee1793007f41a1f793a Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Wed, 19 Dec 2018 11:01:01 -0500 Subject: [PATCH 050/241] remove :GoogleAnalyticsCode from Java side #4660 --- .../harvard/iq/dataverse/settings/SettingsServiceBean.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java index 1f6e109068f..6b4d638fc49 100644 --- a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java @@ -83,13 +83,6 @@ public enum Key { * https://wiki.apache.org/solr/HighlightingParameters#hl.fragsize */ SearchHighlightFragmentSize, - /** - * Domain name specific code for Google Analytics - *//** - * Domain name specific code for Google Analytics - */ - GoogleAnalyticsCode, - /** * Revert to MyData *not* using the Solr "permission documents" which * was the behavior in Dataverse 4.2. Starting to use Solr permission From 43306a3c61314720303c9568aecab07a3e9839b7 Mon Sep 17 00:00:00 2001 From: Michael Heppler Date: Wed, 19 Dec 2018 11:31:44 -0500 Subject: [PATCH 051/241] Removed analytics includes from iframe template [ref #4660] --- src/main/webapp/iframe.xhtml | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/webapp/iframe.xhtml b/src/main/webapp/iframe.xhtml index 5effa8e4af4..5a5ce3b3062 100644 --- a/src/main/webapp/iframe.xhtml +++ b/src/main/webapp/iframe.xhtml @@ -79,7 +79,5 @@ - - From f81f42b9f563542f3db037b47163f12900099eb1 Mon Sep 17 00:00:00 2001 From: Michael Heppler Date: Wed, 19 Dec 2018 13:51:29 -0500 Subject: [PATCH 052/241] Added new o:resourceInclude components for analytics to template files [ref #4660] --- doc/sphinx-guides/source/admin/monitoring.rst | 2 +- .../source/installation/config.rst | 27 +++++++++++++++---- src/main/webapp/dataverse_template.xhtml | 1 + src/main/webapp/iframe.xhtml | 2 ++ 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/doc/sphinx-guides/source/admin/monitoring.rst b/doc/sphinx-guides/source/admin/monitoring.rst index 8d25029c19a..b313ae992a8 100644 --- a/doc/sphinx-guides/source/admin/monitoring.rst +++ b/doc/sphinx-guides/source/admin/monitoring.rst @@ -58,7 +58,7 @@ HTTP traffic can be monitored from the client side, the server side, or both. Monitoring HTTP Traffic from the Client Side ++++++++++++++++++++++++++++++++++++++++++++ -HTTP traffic for web clients that have cookies enabled (most browsers) can be tracked by Google Analytics (https://www.google.com/analytics/) and Matomo (formerly to "Piwik"; https://matomo.org/) as explained in the :ref:`Analytics-Tracking-Code` section of the Installation Guide. +HTTP traffic for web clients that have cookies enabled (most browsers) can be tracked by Google Analytics (https://www.google.com/analytics/) and Matomo (formerly to "Piwik"; https://matomo.org/) as explained in the :ref:`Web-Analytics-Code` section of the Installation Guide. Monitoring HTTP Traffic from the Server Side +++++++++++++++++++++++++++++++++++++++++++++ diff --git a/doc/sphinx-guides/source/installation/config.rst b/doc/sphinx-guides/source/installation/config.rst index 6260a4282e1..1edb19221ee 100644 --- a/doc/sphinx-guides/source/installation/config.rst +++ b/doc/sphinx-guides/source/installation/config.rst @@ -523,14 +523,26 @@ Once you have the location of your custom CSS file, run this curl command to add ``curl -X PUT -d '/var/www/dataverse/branding/custom-stylesheet.css' http://localhost:8080/api/admin/settings/:StyleCustomizationFile`` -.. _Analytics-Tracking-Code: +.. _Web-Analytics-Code: -Analytics Tracking Code ------------------------ +Web Analytics Code +------------------ -Your analytics tracking code can be added to your Dataverse installation in a similar fashion to how you brand it, by adding custom files and adding them to your settings. +Your analytics code can be added to your Dataverse installation in a similar fashion to how you brand it, by adding a custom HTML file containing the analytics code snippet and adding the file location to your settings. -Popular analytics providers Google Analytics (https://www.google.com/analytics/) and Matomo (formerly to "Piwik"; https://matomo.org/) have been set up with Dataverse. Use the documentation they provide to add to your custom HTML files. This allows for more control of what you prefer to track. +Popular analytics providers Google Analytics (https://www.google.com/analytics/) and Matomo (formerly to "Piwik"; https://matomo.org/) have been set up with Dataverse. Use the documentation they provide to add the analytics code to your custom HTML file. This allows for more control of your analytics, making it easier to customize what you prefer to track. + +Create your own ``analytics-code.html`` file using the analytics code snippet provided by Google or Matomo and place it at ``/var/www/dataverse/branding/analytics-code.html``. Here is an example of the what your HTML file should like like: + +.. code-block:: none + + + +Once you have the location of your analytics file, run this curl command to add it to your settings: + +``curl -X PUT -d '/var/www/dataverse/branding/analytics-code.html' http://localhost:8080/api/admin/settings/:WebAnalyticsCode`` Going Live: Launching Your Production Deployment ------------------------------------------------ @@ -878,6 +890,11 @@ See :ref:`Branding Your Installation` above. See :ref:`Branding Your Installation` above. +:WebAnalyticsCode ++++++++++++++++++ + +See :ref:`Web-Analytics-Code` above. + :FooterCopyright ++++++++++++++++ diff --git a/src/main/webapp/dataverse_template.xhtml b/src/main/webapp/dataverse_template.xhtml index 426228d9348..a901e21a9f6 100644 --- a/src/main/webapp/dataverse_template.xhtml +++ b/src/main/webapp/dataverse_template.xhtml @@ -13,6 +13,7 @@ + <h:outputText value="#{pageTitle}"/> diff --git a/src/main/webapp/iframe.xhtml b/src/main/webapp/iframe.xhtml index 5a5ce3b3062..0ba5efaf544 100644 --- a/src/main/webapp/iframe.xhtml +++ b/src/main/webapp/iframe.xhtml @@ -5,9 +5,11 @@ xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" + xmlns:o="http://omnifaces.org/ui" xmlns:jsf="http://xmlns.jcp.org/jsf" lang="en"> + <h:outputText value="#{pageTitle}"/> From 8531ce87296cf96de97ee904ecf69f8133ea2bb5 Mon Sep 17 00:00:00 2001 From: meghangoodchild <34171553+meghangoodchild@users.noreply.github.com> Date: Wed, 19 Dec 2018 14:34:10 -0500 Subject: [PATCH 053/241] Update integrations.rst Added information about the Archivematica integration, including links to the documentation. --- doc/sphinx-guides/source/admin/integrations.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/sphinx-guides/source/admin/integrations.rst b/doc/sphinx-guides/source/admin/integrations.rst index de4e15efd25..231e6edcea8 100644 --- a/doc/sphinx-guides/source/admin/integrations.rst +++ b/doc/sphinx-guides/source/admin/integrations.rst @@ -85,6 +85,16 @@ SHARE `SHARE `_ is building a free, open, data set about research and scholarly activities across their life cycle. It's possible to add and installation of Dataverse as one of the `sources `_ they include if you contact the SHARE team. +Research Data Preservation +------------------- + +Archivematica ++++++ + +`Archivematica `_ is an integrated suite of open-source tools for processing digital objects for long-term preservation, developed and maintained by Artefactual Systems Inc. Its configurable workflow is designed to produce system-independent, standards-based Archival Information Packages (AIPs) suitable for long-term storage and management. + +Sponsored by the `Ontario Council of University Libraries (OCUL) `_, this technical integration enables users of Archivematica to select datasets from connected Dataverse instances and process them for long-term access and digital preservation. For more information and list of known issues, please refer to Artefactual's `release notes `_, `integration documentation `_, and the `project wiki `_. + Future Integrations ------------------- From 1495668a030180d89a6d68b4964f250f3c3575c1 Mon Sep 17 00:00:00 2001 From: Michael Heppler Date: Wed, 19 Dec 2018 14:47:46 -0500 Subject: [PATCH 054/241] Added new WebAnalyticsCode config setting to SettingsServiceBean and CustomizationFilesServlet [ref #4660] --- .../edu/harvard/iq/dataverse/CustomizationFilesServlet.java | 5 +++++ .../iq/dataverse/customization/CustomizationConstants.java | 2 ++ .../harvard/iq/dataverse/settings/SettingsServiceBean.java | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/src/main/java/edu/harvard/iq/dataverse/CustomizationFilesServlet.java b/src/main/java/edu/harvard/iq/dataverse/CustomizationFilesServlet.java index faaa247920e..713d365ba0f 100644 --- a/src/main/java/edu/harvard/iq/dataverse/CustomizationFilesServlet.java +++ b/src/main/java/edu/harvard/iq/dataverse/CustomizationFilesServlet.java @@ -114,6 +114,11 @@ private String getFilePath(String fileTypeParam){ // Style (css) return settingsService.getValueForKey(SettingsServiceBean.Key.StyleCustomizationFile, nonNullDefaultIfKeyNotFound); + } else if (fileTypeParam.equals(CustomizationConstants.fileTypeAnalytics)) { + + // Analytics - appears in head + return settingsService.getValueForKey(SettingsServiceBean.Key.WebAnalyticsCode, nonNullDefaultIfKeyNotFound); + } else if (fileTypeParam.equals(CustomizationConstants.fileTypeLogo)) { // Logo for installation - appears in header diff --git a/src/main/java/edu/harvard/iq/dataverse/customization/CustomizationConstants.java b/src/main/java/edu/harvard/iq/dataverse/customization/CustomizationConstants.java index 314cefc154d..86bab2e1f60 100644 --- a/src/main/java/edu/harvard/iq/dataverse/customization/CustomizationConstants.java +++ b/src/main/java/edu/harvard/iq/dataverse/customization/CustomizationConstants.java @@ -19,6 +19,8 @@ public class CustomizationConstants { public static String fileTypeStyle = "style"; + public static String fileTypeAnalytics = "analytics"; + public static String fileTypeLogo = "logo"; diff --git a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java index 6b4d638fc49..fd2c4b1adc9 100644 --- a/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/settings/SettingsServiceBean.java @@ -282,6 +282,10 @@ Whether Harvesting (OAI) service is enabled Location and name of CSS customization file */ StyleCustomizationFile, + /* + Location and name of analytics code file + */ + WebAnalyticsCode, /* Location and name of installation logo customization file */ From d1a42dd2f83144bc1d3c2ab4d60ec6ead9495f6f Mon Sep 17 00:00:00 2001 From: Michael Heppler Date: Wed, 19 Dec 2018 17:26:13 -0500 Subject: [PATCH 055/241] Added analytics config release notes first draft [ref #4660] --- doc/release-notes/4660-custom-analytics-config.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/release-notes/4660-custom-analytics-config.md diff --git a/doc/release-notes/4660-custom-analytics-config.md b/doc/release-notes/4660-custom-analytics-config.md new file mode 100644 index 00000000000..e69de29bb2d From 6aefd7aca9eb945886bdcc296991a50e60961aec Mon Sep 17 00:00:00 2001 From: dheles Date: Thu, 20 Dec 2018 10:24:29 -0500 Subject: [PATCH 056/241] Fixes #5413 --- .../edu/harvard/iq/dataverse/DatasetVersionServiceBean.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java index fe392f5132f..0b82a5e6856 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionServiceBean.java @@ -8,6 +8,7 @@ import edu.harvard.iq.dataverse.search.SolrSearchResult; import edu.harvard.iq.dataverse.settings.SettingsServiceBean; import edu.harvard.iq.dataverse.util.BundleUtil; +import edu.harvard.iq.dataverse.util.MarkupChecker; import edu.harvard.iq.dataverse.util.SystemConfig; import java.util.ArrayList; import java.util.Arrays; @@ -99,7 +100,7 @@ public String getDifferentVersionMessage(){ if (DatasetVersionServiceBean.this.isVersionAskingForDraft(this.requestedVersion)){ userMsg = BundleUtil.getStringFromBundle("file.viewDiffDialog.msg.draftNotFound"); }else{ - userMsg = BundleUtil.getStringFromBundle("file.viewDiffDialog.msg.versionNotFound", Arrays.asList(this.requestedVersion)); + userMsg = BundleUtil.getStringFromBundle("file.viewDiffDialog.msg.versionNotFound", Arrays.asList(MarkupChecker.escapeHtml(this.requestedVersion))); } if (DatasetVersionServiceBean.this.isVersionAskingForDraft(this.actualVersion)){ From 2edb0ab93f8fbdcb19164f652df7bb362da29383 Mon Sep 17 00:00:00 2001 From: Michael Heppler Date: Thu, 20 Dec 2018 11:28:47 -0500 Subject: [PATCH 057/241] Added event style class naming convention to btns [ref #4660] --- src/main/webapp/dataset.xhtml | 8 +++---- src/main/webapp/dataverse.xhtml | 4 ++-- .../file-download-button-fragment.xhtml | 22 +++++++++---------- src/main/webapp/file.xhtml | 6 ++--- src/main/webapp/filesFragment.xhtml | 10 ++++----- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/main/webapp/dataset.xhtml b/src/main/webapp/dataset.xhtml index 43bb8b879c9..7ba4851a6c0 100755 --- a/src/main/webapp/dataset.xhtml +++ b/src/main/webapp/dataset.xhtml @@ -64,7 +64,7 @@ and !DatasetPage.dataset.deaccessioned and DatasetPage.showComputeButton()}"> -