diff --git a/deep_sequencing_unit/build.gradle b/deep_sequencing_unit/build.gradle index 7022050dc557201b8383c203af4ce9cdf46a6f5d..02103e71024c41fc38c2234fc790924ab52e7201 100644 --- a/deep_sequencing_unit/build.gradle +++ b/deep_sequencing_unit/build.gradle @@ -17,7 +17,9 @@ dependencies { project(':openbis-common'), project(':openbis_api'), project(':openbis'), - project(':datastore_server') + project(':datastore_server'), + 'apache:commons-cli:+' + testCompile project(path: ':datastore_server', configuration: 'tests') @@ -36,7 +38,8 @@ dependencies { 'apache:httpclient:+', 'apache:httpcore:+', 'apache:commons-logging:+', - 'aopalliance:aopalliance:+' + 'aopalliance:aopalliance:+', + 'apache:commons-cli:+' trackingClientPartial 'google:gwt-user:2.4' } diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackedEntities.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackedEntities.java index 094137bcfa7c0788e18c6f1fdfe1e14472f96c08..a51ae685c53460cb3a9179a349f4234cb03da9fd 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackedEntities.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackedEntities.java @@ -25,6 +25,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; * Simple encapsulation of list of entities that are tracked. * * @author Piotr Buczek + * @author Manuel Kohler */ public class TrackedEntities { @@ -43,6 +44,14 @@ public class TrackedEntities this.dataSets = dataSets; } + // setting these to null, is that OK? + public TrackedEntities(List<AbstractExternalData> dataSets) + { + this.dataSets = dataSets; + this.sequencingSamplesProcessed = null; + this.sequencingSamplesToBeProcessed = null; + } + public List<Sample> getSequencingSamplesToBeProcessed() { return sequencingSamplesToBeProcessed; diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackingStateDTO.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackingStateDTO.java index 7843cce11fa6d01555774639c5b2068bcab48435..7f9d736c4bc8a4689bd36001b56cc231a941166b 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackingStateDTO.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackingStateDTO.java @@ -16,7 +16,16 @@ package ch.ethz.bsse.cisd.dsu.tracking.dto; +import java.util.Properties; import java.util.Set; +import java.util.TreeMap; + +/** + * Tracjing state DTO + * + * @author Piotr Buczek + * @author Manuel Kohler + */ public class TrackingStateDTO { @@ -26,6 +35,20 @@ public class TrackingStateDTO private long lastSeenDatasetId; + private Properties lastSeenProperties; + + private TreeMap<String, Long> lastSeenDataSetIdMap; + + public TreeMap<String, Long> getLastSeenDataSetIdMap() + { + return lastSeenDataSetIdMap; + } + + public void setLastSeenDataSetIdMap(TreeMap<String, Long> lastSeenDataSetIdMap) + { + this.lastSeenDataSetIdMap = lastSeenDataSetIdMap; + } + public long getLastSeenDatasetId() { return lastSeenDatasetId; @@ -57,4 +80,14 @@ public class TrackingStateDTO this.alreadyTrackedSampleIdsProcessed = alreadyTrackedSampleIdsProcessed; } + public Properties getLastSeenProperties() + { + return lastSeenProperties; + } + + public void setLastSeenProperties(Properties lastSeenProperties) + { + this.lastSeenProperties = lastSeenProperties; + } + } \ No newline at end of file diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailDataManager.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailDataManager.java index 2674849b4426086eed43de0ed8a88438a20a2646..3d5c0432f4169837d05404939ffcf4da30221986 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailDataManager.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailDataManager.java @@ -33,6 +33,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; * Manager that groups data about tracked entities into {@link EntityTrackingEmailData} objects. * * @author Piotr Buczek + * @author Manuel Kohler */ class EntityTrackingEmailDataManager { @@ -41,7 +42,7 @@ class EntityTrackingEmailDataManager private final static String CONTACT_PERSON_EMAIL = "CONTACT_PERSON_EMAIL"; private final static String PRINCIPAL_INVESTIGATOR_EMAIL = "PRINCIPAL_INVESTIGATOR_EMAIL"; - + private final static String CONTACT_DATA_MANAGER_EMAIL = "CONTACT_DATA_MANAGER_EMAIL"; private static Map<String, String> recipientsByAffiliation; @@ -64,6 +65,17 @@ class EntityTrackingEmailDataManager return dataByRecipient.values(); } + public static Collection<EntityTrackingEmailData> groupByRecipientDataSets( + TrackedEntities trackedEntities) + { + assert recipientsByAffiliation != null : "recipientsByAffiliation not initialized"; + // <recipients email, email data> + final Map<EMailAddress, EntityTrackingEmailData> dataByRecipient = + new HashMap<EMailAddress, EntityTrackingEmailData>(); + groupDataSetSamples(dataByRecipient, trackedEntities); + return dataByRecipient.values(); + } + /** Puts tracked sequencing samples to be processed grouped by recipient into <var>result</var>. */ private static void groupSequencingSamplesToBeProcessed( Map<EMailAddress, EntityTrackingEmailData> result, TrackedEntities trackedEntities) @@ -124,8 +136,7 @@ class EntityTrackingEmailDataManager } /** - * Returns a set of emails of recipients that should get a tracking information about given - * <var>sequencingSample</var>.<br> + * Returns a set of emails of recipients that should get a tracking information about given <var>sequencingSample</var>.<br> */ // NOTE: Set is needed because one recipient can occur in many roles for one sample private static Set<EMailAddress> getSequencingSampleTrackingRecipients( @@ -172,8 +183,7 @@ class EntityTrackingEmailDataManager } /** - * Returns a set of emails of recipients that should get a tracking information about given - * <var>flowLaneSample</var>. + * Returns a set of emails of recipients that should get a tracking information about given <var>flowLaneSample</var>. */ private static Set<EMailAddress> getFlowLaneSampleTrackingRecipients(Sample flowLaneSample) { @@ -184,8 +194,7 @@ class EntityTrackingEmailDataManager } /** - * Returns a set of emails of recipients that should get a tracking information about given - * <var>dataSet</var>. + * Returns a set of emails of recipients that should get a tracking information about given <var>dataSet</var>. */ private static Set<EMailAddress> getDataSetTrackingRecipients(AbstractExternalData dataSet) { diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java index bc3fa32da017ab0e594035803fbbfd82a8967d48..0ef5fafe1c83352cf5a99a42b9b136b61558c8f7 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java @@ -98,16 +98,28 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat { final Collection<EntityTrackingEmailData> emailDataGroupedByRecipient = EntityTrackingEmailDataManager.groupByRecipient(trackedEntities); - + final List<EmailWithSummary> results = new ArrayList<EmailWithSummary>(); for (EntityTrackingEmailData emailData : emailDataGroupedByRecipient) { results.add(createEmailWithSummary(emailData)); } - return results; } + public List<EmailWithSummary> generateDataSetsEmails(TrackedEntities trackedEntities) + { + final Collection<EntityTrackingEmailData> emailDataGroupedByRecipientDataSets = + EntityTrackingEmailDataManager.groupByRecipientDataSets(trackedEntities); + + final List<EmailWithSummary> results = new ArrayList<EmailWithSummary>(); + for (EntityTrackingEmailData emailData : emailDataGroupedByRecipientDataSets) + { + results.add(createEmailWithSummary(emailData)); + } + return results; + } + private EmailWithSummary createEmailWithSummary(EntityTrackingEmailData emailData) { return new EmailWithSummary(createEmail(emailData), emailData.getDescription()); @@ -405,7 +417,7 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat parentIndex1 = ""; parentIndex2 = ""; - System.out.println("Found matching meta data for: " + dataSet.getCode() + " from " + parent.getCode()); +// System.out.println("Found matching meta data for: " + dataSet.getCode() + " from " + parent.getCode()); parentPropertiesMap.put(EXTERNAL_SAMPLE_NAME_PROPERTY_CODE, externalSampleName); parentPropertiesMap.put(CONTACT_PERSON_NAME_PROPERTY_CODE, contactPersonName); diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/IEntityTrackingEmailGenerator.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/IEntityTrackingEmailGenerator.java index 19c650ff288ce64a6cc694a36c5526871d0d9f36..5d898f6eec501812660e3b23c4146542de6866ae 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/IEntityTrackingEmailGenerator.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/IEntityTrackingEmailGenerator.java @@ -22,14 +22,16 @@ import ch.ethz.bsse.cisd.dsu.tracking.dto.TrackedEntities; /** * @author Piotr Buczek + * @author Manuel Kohler */ public interface IEntityTrackingEmailGenerator { /** - * Generates all {@link EmailWithSummary}s to be send containing information about - * <var>trackedEntities</var>. + * Generates all {@link EmailWithSummary}s to be send containing information about <var>trackedEntities</var>. * * @param trackedEntities recently tracked entities */ List<EmailWithSummary> generateEmails(TrackedEntities trackedEntities); + + List<EmailWithSummary> generateDataSetsEmails(TrackedEntities changedEntities); } diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAO.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAO.java index 898188eb160a9f539105c1eb13ca1e80dc1f257d..b95b3f90a186492b3bed4dad9eb0f1a94a004823 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAO.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAO.java @@ -23,7 +23,10 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Map; +import java.util.Properties; import java.util.Set; +import java.util.TreeMap; import java.util.TreeSet; import org.apache.commons.io.IOUtils; @@ -31,9 +34,11 @@ import org.apache.commons.lang.StringUtils; import ch.ethz.bsse.cisd.dsu.tracking.dto.TrackingStateDTO; import ch.ethz.bsse.cisd.dsu.tracking.utils.LogUtils; +import ch.systemsx.cisd.common.io.PropertyIOUtils; /** * @author Tomasz Pylak + * @author Manuel Kohler */ public class FileBasedTrackingDAO implements ITrackingDAO { @@ -45,23 +50,35 @@ public class FileBasedTrackingDAO implements ITrackingDAO static String SEPARATOR = " "; - private final String filePath; + static String EQUAL = "="; - public FileBasedTrackingDAO(String filePath) + private final String filePathSampleDb; + + private final String filePathDatasetDb; + + public FileBasedTrackingDAO(String filePathSampleDb, String filePathDatasetDb) { - this.filePath = filePath; + this.filePathSampleDb = filePathSampleDb; + this.filePathDatasetDb = filePathDatasetDb; } @Override public void saveTrackingState(TrackingStateDTO state) { List<String> lines = new ArrayList<String>(); - lines.add(LAST_SEEN_DATASET_ID + SEPARATOR + state.getLastSeenDatasetId()); lines.add(TO_BE_PROCESSED + SEPARATOR + sampleIdsAsString(state.getAlreadyTrackedSampleIdsToBeProcessed())); lines.add(PROCESSED + SEPARATOR + sampleIdsAsString(state.getAlreadyTrackedSampleIdsProcessed())); - writeLines(new File(filePath), lines); + + writeLines(new File(filePathSampleDb), lines); + + lines = new ArrayList<String>(); + for (Map.Entry<String, Long> entry : state.getLastSeenDataSetIdMap().entrySet()) + { + lines.add(entry.getKey() + EQUAL + entry.getValue()); + } + writeLines(new File(filePathDatasetDb), lines); } private String sampleIdsAsString(Collection<Long> sampleIds) @@ -75,18 +92,23 @@ public class FileBasedTrackingDAO implements ITrackingDAO { try { - List<String> lines = IOUtils.readLines(new FileReader(filePath)); - if (lines.size() != 3) + TrackingStateDTO state = new TrackingStateDTO(); + + Properties props = PropertyIOUtils.loadProperties(filePathDatasetDb); + TreeMap<String, Long> propsMap = new TreeMap<String, Long>(); + for (Object o : props.keySet()) { - throw LogUtils.environmentError("File %s should have exactly 3 rows.", filePath); + propsMap.put(o.toString(), Long.parseLong(props.get(o).toString())); } - TrackingStateDTO state = new TrackingStateDTO(); - String[] datasetId = lines.get(0).split(SEPARATOR); - String[] toBeProcessed = lines.get(1).split(SEPARATOR); - String[] processed = lines.get(2).split(SEPARATOR); - state.setLastSeenDatasetId(Long.parseLong(datasetId[1])); + state.setLastSeenProperties(props); + state.setLastSeenDataSetIdMap(propsMap); + + List<String> lines = IOUtils.readLines(new FileReader(filePathSampleDb)); + String[] toBeProcessed = lines.get(0).split(SEPARATOR); + String[] processed = lines.get(1).split(SEPARATOR); state.setAlreadyTrackedSampleIdsToBeProcessed(parseIds(toBeProcessed)); state.setAlreadyTrackedSampleIdsProcessed(parseIds(processed)); + return state; } catch (Exception e) { @@ -115,4 +137,5 @@ public class FileBasedTrackingDAO implements ITrackingDAO "Cannot save the file %s with content: %s", file.getPath(), lines), ex); } } + } diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java index 0305f8bba570bdbc6eddb69fa708da225237f38d..15d177a4b04b58366f6a680eb95029e1d964ce35 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java @@ -1,5 +1,5 @@ /* - * Copyright 2009 ETH Zuerich, CISD + * Copyright 2015 ETH Zuerich, CISD * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,10 +18,12 @@ package ch.ethz.bsse.cisd.dsu.tracking.main; import java.util.ArrayList; import java.util.Arrays; -import java.util.EnumSet; -import java.util.HashSet; +import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Set; +import java.util.TreeMap; import java.util.TreeSet; import ch.ethz.bsse.cisd.dsu.tracking.dto.TrackedEntities; @@ -34,16 +36,18 @@ import ch.systemsx.cisd.common.collection.CollectionUtils; import ch.systemsx.cisd.common.mail.EMailAddress; import ch.systemsx.cisd.common.mail.IMailClient; import ch.systemsx.cisd.openbis.generic.shared.ITrackingServer; -import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingSampleCriteria; import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; /** * @author Tomasz Pylak + * @author Manuel Kohler */ + public class TrackingBO { private static final List<String> SEQUENCING_SAMPLE_TYPES = Arrays.asList("ILLUMINA_SEQUENCING", "ILLUMINA_SEQUENCING_NEUROSTEMX"); @@ -75,15 +79,38 @@ public class TrackingBO this.mailClient = mailClient; } - public void trackAndNotify(ITrackingDAO trackingDAO, SessionContextDTO session) + public void trackAndNotify(ITrackingDAO trackingDAO, final HashMap<String, String[]> clMap, SessionContextDTO session) { TrackingStateDTO prevTrackingState = trackingDAO.getTrackingState(); + LogUtils.info(prevTrackingState.getLastSeenDataSetIdMap().toString()); + + String CL_PARAMETER_LANES = "lanes"; + String CL_PARAMETER_ALL = "all"; + TrackedEntities changedEntities = null; + List<EmailWithSummary> emailsWithSummary = null; + HashMap<String, ArrayList<Long>> changedTrackingMap = null; + + if (clMap.get(CL_PARAMETER_LANES) != null) + { + Object[] result = fetchChangedDataSets(prevTrackingState, trackingServer, clMap.get(CL_PARAMETER_LANES), session); + changedEntities = (TrackedEntities) result[0]; + changedTrackingMap = (HashMap<String, ArrayList<Long>>) result[1]; + emailsWithSummary = emailGenerator.generateDataSetsEmails(changedEntities); + } + else if (clMap.containsKey(CL_PARAMETER_ALL)) + { + Object[] result = fetchChangedEntities(prevTrackingState, trackingServer, clMap, session); + changedEntities = (TrackedEntities) result[0]; + changedTrackingMap = (HashMap<String, ArrayList<Long>>) result[1]; + emailsWithSummary = emailGenerator.generateEmails(changedEntities); + } + else + { + LogUtils.debug("Should never be reached."); + } - TrackedEntities changedEntities = - fetchChangedEntities(prevTrackingState, trackingServer, session); - List<EmailWithSummary> emailsWithSummary = emailGenerator.generateEmails(changedEntities); sendEmails(emailsWithSummary, mailClient); - saveTrackingState(prevTrackingState, changedEntities, trackingDAO); + saveTrackingState(prevTrackingState, changedTrackingMap, changedEntities, trackingDAO); } private static void sendEmails(List<EmailWithSummary> emailsWithSummary, IMailClient mailClient) @@ -166,16 +193,18 @@ public class TrackingBO sb.append("\n"); } - private static void saveTrackingState(TrackingStateDTO prevState, + private static void saveTrackingState(TrackingStateDTO prevTrackingState, + HashMap<String, ArrayList<Long>> changedTrackingMap, TrackedEntities changedEntities, ITrackingDAO trackingDAO) { TrackingStateDTO state = - TrackingStateUpdateHelper.calcNewTrackingState(prevState, changedEntities); + TrackingStateUpdateHelper.calcNewTrackingState(prevTrackingState, changedEntities, changedTrackingMap); + trackingDAO.saveTrackingState(state); } - private static TrackedEntities fetchChangedEntities(TrackingStateDTO trackingState, - ITrackingServer trackingServer, SessionContextDTO session) + private static Object[] fetchChangedEntities(TrackingStateDTO trackingState, + ITrackingServer trackingServer, HashMap<String, String[]> clMap, SessionContextDTO session) { List<Sample> sequencingSamplesToBeProcessed = listSequencingSamples(PROCESSING_POSSIBLE_PROPERTY_CODE, trackingState @@ -190,8 +219,98 @@ public class TrackingBO List<AbstractExternalData> dataSets = trackingServer.listDataSets(session.getSessionToken(), dataSetCriteria); - return new TrackedEntities(sequencingSamplesToBeProcessed, - sequencingSamplesSuccessfullyProcessed, dataSets); + HashMap<String, ArrayList<Long>> changedTrackingMap = new HashMap<String, ArrayList<Long>>(); + + // Loop over all new data sets + for (AbstractExternalData d : dataSets) + { + Sample currentLane = d.getSample(); + String lanePermId = currentLane.getPermId(); + + LogUtils.info("Found lane with permId: " + lanePermId + " with new DS techId " + d.getId() + " and DS permId " + d.getPermId()); + if (changedTrackingMap.get(lanePermId) != null) + { + ArrayList<Long> existingList = changedTrackingMap.get(lanePermId); + existingList.add(d.getId()); + changedTrackingMap.put(lanePermId, existingList); + } + else + { + ArrayList<Long> newList = new ArrayList<Long>(); + newList.add(d.getId()); + changedTrackingMap.put(lanePermId, newList); + } + } + + return new Object[] { new TrackedEntities(sequencingSamplesToBeProcessed, sequencingSamplesSuccessfullyProcessed, dataSets), + changedTrackingMap }; + } + + private static Object[] fetchChangedDataSets(TrackingStateDTO trackingState, + ITrackingServer trackingServer, String[] laneCodeList, SessionContextDTO session) + { + + List<Sample> sequencingSamplesToBeProcessed = + listSequencingSamples(PROCESSING_POSSIBLE_PROPERTY_CODE, trackingState + .getAlreadyTrackedSampleIdsToBeProcessed(), trackingServer, session); + List<Sample> sequencingSamplesSuccessfullyProcessed = + listSequencingSamples(PROCESSING_SUCCESSFUL_PROPERTY_CODE, trackingState + .getAlreadyTrackedSampleIdsProcessed(), trackingServer, session); + + ArrayList<Long> allDataSetIds = new ArrayList<Long>(); + for (Map.Entry<String, Long> entry : trackingState.getLastSeenDataSetIdMap().entrySet()) + { + allDataSetIds.add(entry.getValue()); + } + Long maxDataSetId = Collections.max(allDataSetIds); + LogUtils.info("Using maximum DS techId " + maxDataSetId + " for search of changed data sets"); + + TrackingDataSetCriteria dataSetCriteria = + new TrackingDataSetCriteria(FLOW_LANE_SAMPLE_TYPE, maxDataSetId); + List<AbstractExternalData> dataSets = + trackingServer.listDataSets(session.getSessionToken(), dataSetCriteria); + + ArrayList<SampleIdentifier> filterList = new ArrayList<SampleIdentifier>(); + ArrayList<AbstractExternalData> filteredDataSets = new ArrayList<AbstractExternalData>(); + + HashMap<String, ArrayList<Long>> changedTrackingMap = new HashMap<String, ArrayList<Long>>(); + + for (String lane : laneCodeList) + { + LogUtils.info("Searching for new data sets which belong to " + lane); + filterList.add(new SampleIdentifier(lane)); + } + // Loop over all new data sets + for (AbstractExternalData d : dataSets) + { + // Check if the given lanes/samples have data sets which are new + SampleIdentifier currentLaneId = new SampleIdentifier(d.getSampleCode()); + if (filterList.contains(currentLaneId)) + { + filteredDataSets.add(d); + Sample currentLane = d.getSample(); + String lanePermId = currentLane.getPermId(); + + LogUtils.info("Found lane with permId: " + lanePermId + " with new DS techId " + d.getId() + " and DS permId " + d.getPermId()); + if (changedTrackingMap.get(lanePermId) != null) + { + ArrayList<Long> existingList = changedTrackingMap.get(lanePermId); + existingList.add(d.getId()); + changedTrackingMap.put(lanePermId, existingList); + } + else + { + ArrayList<Long> newList = new ArrayList<Long>(); + newList.add(d.getId()); + changedTrackingMap.put(lanePermId, newList); + } + } + } + + LogUtils.info(changedTrackingMap.toString()); + LogUtils.info("Found " + filteredDataSets.size() + " data sets which are connected to samples in " + filterList.toString()); + return new Object[] { new TrackedEntities(sequencingSamplesToBeProcessed, sequencingSamplesSuccessfullyProcessed, filteredDataSets), + changedTrackingMap }; } private static List<Sample> listSequencingSamples(String propertyTypeCode, @@ -216,7 +335,7 @@ public class TrackingBO { static TrackingStateDTO calcNewTrackingState(TrackingStateDTO prevState, - TrackedEntities changedEntities) + TrackedEntities changedEntities, HashMap<String, ArrayList<Long>> changedTrackingMap) { TrackingStateDTO state = new TrackingStateDTO(); Set<Long> sequencingSamplesToBeProcessed = @@ -231,29 +350,51 @@ public class TrackingBO .getSequencingSamplesProcessed()); state.setAlreadyTrackedSampleIdsProcessed(sequencingSamplesProcessed); - long lastSeenDatasetId = - calcMaxId(changedEntities.getDataSets(), prevState.getLastSeenDatasetId()); - state.setLastSeenDatasetId(lastSeenDatasetId); + TreeMap<String, Long> newTrackingState = new TreeMap<String, Long>(); + + System.out.println(changedTrackingMap.toString()); + + for (Map.Entry<String, ArrayList<Long>> entry : changedTrackingMap.entrySet()) + { + newTrackingState.put(entry.getKey(), Collections.max(entry.getValue())); + } + System.out.println(newTrackingState.entrySet().toString()); + + for (Map.Entry<String, Long> entry : prevState.getLastSeenDataSetIdMap().entrySet()) + { + if (!newTrackingState.containsKey(entry.getKey())) + { + newTrackingState.put(entry.getKey(), entry.getValue()); + } + } + + state.setLastSeenDataSetIdMap(newTrackingState); return state; } - private static void addNewSampleIds(Set<Long> alreadyTrackedSampleIdsProcessed, - List<Sample> sequencingSamplesProcessed) + static TrackingStateDTO calcNewTrackingStateDataSets(HashMap<String, ArrayList<Long>> changedTrackingMap, + TrackedEntities changedEntities) { - for (Sample sample : sequencingSamplesProcessed) + TrackingStateDTO state = new TrackingStateDTO(); + + TreeMap<String, Long> newTrackingState = new TreeMap<String, Long>(); + for (Map.Entry<String, ArrayList<Long>> entry : changedTrackingMap.entrySet()) { - alreadyTrackedSampleIdsProcessed.add(sample.getId()); + newTrackingState.put(entry.getKey(), Collections.max(entry.getValue())); } + LogUtils.info(newTrackingState.toString()); + + state.setLastSeenDataSetIdMap(newTrackingState); + return state; } - private static long calcMaxId(List<? extends IIdAndCodeHolder> entities, long initialValue) + private static void addNewSampleIds(Set<Long> alreadyTrackedSampleIdsProcessed, + List<Sample> sequencingSamplesProcessed) { - long max = initialValue; - for (IIdAndCodeHolder entity : entities) + for (Sample sample : sequencingSamplesProcessed) { - max = Math.max(max, entity.getId()); + alreadyTrackedSampleIdsProcessed.add(sample.getId()); } - return max; } } } diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java index bdaf5b9c4d55ecaf08c36fdaa5267e4e777fbd98..8223a5530fe906d53ebad3f7b36b795cfaaf825f 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java @@ -21,9 +21,18 @@ import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Properties; +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.GnuParser; +import org.apache.commons.cli.HelpFormatter; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Options; +import org.apache.commons.cli.ParseException; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.time.DateUtils; @@ -42,22 +51,30 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; /** * @author Tomasz Pylak + * @author Manuel Kohler */ public class TrackingClient { private static final String SERVICE_PROPERTIES_FILE = "etc/service.properties"; - private static final String LOCAL_STORAGE_FILE = "etc/tracking-local-database"; + private static final String LOCAL_SAMPLE_DB = "etc/tracking-local-database"; + + private static final String LOCAL_DATASET_DB = "etc/tracking-sample-database"; private static final String EMAIL_TEMPLATE_FILE = "etc/email-template.txt"; private static final String OPENBIS_RMI_TRACKING = "/rmi-tracking"; + private static final String CL_PARAMETER_LANES = "lanes"; + + private static final String CL_PARAMETER_ALL = "all"; + public static void main(String[] args) { try { - track(); + HashMap<String, String[]> clMap = parseCommandLine(args); + track(clMap); } catch (EnvironmentFailureException ex) { LogUtils.notify(ex); @@ -67,7 +84,50 @@ public class TrackingClient } } - private static void track() + private static HashMap<String, String[]> parseCommandLine(String[] args) + { + HashMap<String, String[]> clMap = new HashMap<String, String[]>(); + CommandLineParser parser = new GnuParser(); + + Options options = new Options(); + Option lanes = OptionBuilder.withArgName(CL_PARAMETER_LANES) + .hasArg() + .withDescription("list of lanes to track") + .create(CL_PARAMETER_LANES); + lanes.setArgs(Option.UNLIMITED_VALUES); + Option all = new Option(CL_PARAMETER_ALL, "track all lanes"); + + options.addOption(lanes); + options.addOption(all); + + // automatically generate the help statement + HelpFormatter formatter = new HelpFormatter(); + if (args.length < 1) + { + formatter.printHelp("help", options); + System.exit(0); + } + + try + { + CommandLine line = parser.parse(options, args); + if (line.hasOption(CL_PARAMETER_LANES)) + { + String[] laneArray = line.getOptionValues(CL_PARAMETER_LANES); + clMap.put(CL_PARAMETER_LANES, laneArray); + } + if (line.hasOption(CL_PARAMETER_ALL)) + { + clMap.put(CL_PARAMETER_ALL, null); + } + } catch (ParseException exp) + { + LogUtils.environmentError("Parsing of command line parameters failed.", exp.getMessage()); + } + return clMap; + } + + private static void track(HashMap<String, String[]> clMap) { LogInitializer.init(); Properties props = PropertyIOUtils.loadProperties(SERVICE_PROPERTIES_FILE); @@ -79,11 +139,11 @@ public class TrackingClient IMailClient mailClient = params.getMailClient(); TrackingBO trackingBO = new TrackingBO(trackingServer, emailGenerator, mailClient); - ITrackingDAO trackingDAO = new FileBasedTrackingDAO(LOCAL_STORAGE_FILE); + ITrackingDAO trackingDAO = new FileBasedTrackingDAO(LOCAL_SAMPLE_DB, LOCAL_DATASET_DB); SessionContextDTO session = authentificateInOpenBIS(params, trackingServer); - trackingBO.trackAndNotify(trackingDAO, session); + trackingBO.trackAndNotify(trackingDAO, clMap, session); } private static ITrackingServer createOpenBISTrackingServer(Parameters params) diff --git a/deep_sequencing_unit/sourceTest/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAOTest.java b/deep_sequencing_unit/sourceTest/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAOTest.java index a5d7d09006bb40786ae6bbd913ef0c12da75781f..20daeb14573f22956f2b1120195d1c897f56bc01 100644 --- a/deep_sequencing_unit/sourceTest/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAOTest.java +++ b/deep_sequencing_unit/sourceTest/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAOTest.java @@ -19,7 +19,10 @@ package ch.ethz.bsse.cisd.dsu.tracking.main; import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.TreeMap; import java.util.TreeSet; import org.apache.commons.lang.StringUtils; @@ -31,17 +34,22 @@ import ch.ethz.bsse.cisd.dsu.tracking.dto.TrackingStateDTO; import ch.ethz.bsse.cisd.dsu.tracking.main.TrackingBO.TrackingStateUpdateHelper; import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase; import ch.systemsx.cisd.common.filesystem.FileUtilities; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PhysicalDataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PhysicalDataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; /** * @author Piotr Buczek + * @author Manuel Kohler */ public class FileBasedTrackingDAOTest extends AbstractFileSystemTestCase { private static final String DATABASE_FILE = "tracking-local-database"; + private static final String DATABASE_FILE_DATA_SETS = "tracking-sample-database"; + + private TreeMap<String, Long> changedTrackingMap = new TreeMap<String, Long>(); + @BeforeMethod public void beforeMethod() throws Exception { @@ -52,14 +60,15 @@ public class FileBasedTrackingDAOTest extends AbstractFileSystemTestCase @Test public void testGetTrackingState() { - long lastSeenDatasetId = 0; + changedTrackingMap.put("20150213144812415-60450886", 29877L); + changedTrackingMap.put("20150226134806587-60452073", 30293L); String toBeProcessed = "1 2 3 4 5"; String processed = "1 2 3"; - prepareDatabaseFile(lastSeenDatasetId, toBeProcessed, processed); + prepareDatabaseFile(changedTrackingMap, toBeProcessed, processed); - ITrackingDAO trackingDAO = new FileBasedTrackingDAO(DATABASE_FILE); + ITrackingDAO trackingDAO = new FileBasedTrackingDAO(DATABASE_FILE, DATABASE_FILE_DATA_SETS); TrackingStateDTO state = trackingDAO.getTrackingState(); - assertEquals(lastSeenDatasetId, state.getLastSeenDatasetId()); + assertEquals(changedTrackingMap, state.getLastSeenDataSetIdMap()); assertEquals(toBeProcessed, StringUtils.join(state .getAlreadyTrackedSampleIdsToBeProcessed(), " ")); assertEquals(processed, StringUtils.join(state.getAlreadyTrackedSampleIdsProcessed(), " ")); @@ -68,16 +77,46 @@ public class FileBasedTrackingDAOTest extends AbstractFileSystemTestCase @Test public void testCalcNewTrackingState() { - prepareDatabaseFile(300, "1 2 3 4 5", "1 2 3"); - ITrackingDAO trackingDAO = new FileBasedTrackingDAO(DATABASE_FILE); + TreeMap<String, Long> changedTrackingMap = new TreeMap<String, Long>(); + changedTrackingMap.put("20150213144812415-60450886", 29877L); + changedTrackingMap.put("20150226134806587-60452073", 30293L); + String toBeProcessed = "1 2 3 4 5"; + String processed = "1 2 3"; + prepareDatabaseFile(changedTrackingMap, toBeProcessed, processed); + ITrackingDAO trackingDAO = new FileBasedTrackingDAO(DATABASE_FILE, DATABASE_FILE_DATA_SETS); TrackingStateDTO state = trackingDAO.getTrackingState(); + HashMap<String, ArrayList<Long>> tmpTrackingMap = new HashMap<String, ArrayList<Long>>(); + ArrayList<Long> techIds = new ArrayList<Long>(); + techIds.add(32000L); + techIds.add(33000L); + techIds.add(29877L); + tmpTrackingMap.put("20150213144812415-60450886", techIds); + + techIds = new ArrayList<Long>(); + techIds.add(32001L); + techIds.add(33001L); + tmpTrackingMap.put("20150226134806587-60452073", techIds); + + techIds = new ArrayList<Long>(); + techIds.add(31000L); + techIds.add(34000L); + tmpTrackingMap.put("20150226134806587-90000000", techIds); + TrackedEntities changedEntities = new TrackedEntities(createSamplesWithIds(6, 7), createSamplesWithIds(4), - createDataSetsWithIds(400, 500)); + createDataSetsWithIds(33000L)); TrackingStateDTO newState = - TrackingStateUpdateHelper.calcNewTrackingState(state, changedEntities); - assertEquals(500, newState.getLastSeenDatasetId()); + TrackingStateUpdateHelper.calcNewTrackingState(state, changedEntities, tmpTrackingMap); + + TreeMap<String, Long> expectedTrackingMap = new TreeMap<String, Long>(); + + expectedTrackingMap.put("20150213144812415-60450886", 33000L); + expectedTrackingMap.put("20150226134806587-60452073", 33001L); + expectedTrackingMap.put("20150226134806587-90000000", 34000L); + + assertEquals(expectedTrackingMap, newState.getLastSeenDataSetIdMap()); + assertEquals("1 2 3 4 5 6 7", StringUtils.join(newState .getAlreadyTrackedSampleIdsToBeProcessed(), " ")); assertEquals("1 2 3 4", StringUtils.join(newState.getAlreadyTrackedSampleIdsProcessed(), @@ -87,18 +126,25 @@ public class FileBasedTrackingDAOTest extends AbstractFileSystemTestCase @Test public void testSaveTrackingState() { - prepareDatabaseFile(300, "1 2", "1"); - ITrackingDAO trackingDAO = new FileBasedTrackingDAO(DATABASE_FILE); + changedTrackingMap.put("20150213144812415-60450886", 29877L); + changedTrackingMap.put("20150226134806587-60452073", 30293L); + String toBeProcessed = "1 2"; + String processed = "1"; + prepareDatabaseFile(changedTrackingMap, toBeProcessed, processed); + + ITrackingDAO trackingDAO = new FileBasedTrackingDAO(DATABASE_FILE, DATABASE_FILE_DATA_SETS); TrackingStateDTO newState = new TrackingStateDTO(); - newState.setLastSeenDatasetId(400); + + changedTrackingMap.put("20150226134806587-60452099", 31296L); + newState.setLastSeenDataSetIdMap(changedTrackingMap); newState.setAlreadyTrackedSampleIdsToBeProcessed(new TreeSet<Long>(Arrays.asList(new Long[] - { 1L, 2L, 3L, 4L }))); + { 1L, 2L, 3L, 4L }))); newState.setAlreadyTrackedSampleIdsProcessed(new TreeSet<Long>(Arrays.asList(new Long[] - { 1L, 2L, 3L }))); + { 1L, 2L, 3L }))); trackingDAO.saveTrackingState(newState); TrackingStateDTO loadesState = trackingDAO.getTrackingState(); - assertEquals(400, loadesState.getLastSeenDatasetId()); + assertEquals(changedTrackingMap, loadesState.getLastSeenDataSetIdMap()); assertEquals("1 2 3 4", StringUtils.join(loadesState .getAlreadyTrackedSampleIdsToBeProcessed(), " ")); assertEquals("1 2 3", StringUtils.join(loadesState.getAlreadyTrackedSampleIdsProcessed(), @@ -139,14 +185,19 @@ public class FileBasedTrackingDAOTest extends AbstractFileSystemTestCase return result; } - private void prepareDatabaseFile(long lastSeenDatasetId, String samplesToBeProcessed, + private void prepareDatabaseFile(TreeMap<String, Long> changedTrackingMap, String samplesToBeProcessed, String processedSamples) { StringBuilder sb = new StringBuilder(); - sb.append(FileBasedTrackingDAO.LAST_SEEN_DATASET_ID); - sb.append(FileBasedTrackingDAO.SEPARATOR); - sb.append(lastSeenDatasetId); - sb.append("\n"); + + for (Map.Entry<String, Long> entry : changedTrackingMap.entrySet()) + { + sb.append(entry.getKey() + FileBasedTrackingDAO.EQUAL + entry.getValue() + "\n"); + } + System.out.println(sb.toString()); + FileUtilities.writeToFile(new File(DATABASE_FILE_DATA_SETS), sb.toString()); + + sb = new StringBuilder(); sb.append(FileBasedTrackingDAO.TO_BE_PROCESSED); sb.append(FileBasedTrackingDAO.SEPARATOR); sb.append(samplesToBeProcessed); @@ -155,6 +206,7 @@ public class FileBasedTrackingDAOTest extends AbstractFileSystemTestCase sb.append(FileBasedTrackingDAO.SEPARATOR); sb.append(processedSamples); sb.append("\n"); + FileUtilities.writeToFile(new File(DATABASE_FILE), sb.toString()); } } diff --git a/deep_sequencing_unit/tracking/dist/etc/tracking-local-database b/deep_sequencing_unit/tracking/dist/etc/tracking-local-database index e1b6ad4a57a03d5f4b0fbaf81e3f3b96f03964bc..cf0c217beb4b2c060055a9959f3df8a40e548f9c 100644 --- a/deep_sequencing_unit/tracking/dist/etc/tracking-local-database +++ b/deep_sequencing_unit/tracking/dist/etc/tracking-local-database @@ -1,3 +1,2 @@ -lastSeenSequencingSampleId 0 trackedSamplesToBeProcessed trackedSamplesProcessedSuccessfully \ No newline at end of file diff --git a/deep_sequencing_unit/tracking/dist/etc/tracking-sample-database b/deep_sequencing_unit/tracking/dist/etc/tracking-sample-database new file mode 100644 index 0000000000000000000000000000000000000000..2fa072094d7a6125d8015bf8fa4ecb812d380b29 --- /dev/null +++ b/deep_sequencing_unit/tracking/dist/etc/tracking-sample-database @@ -0,0 +1,2511 @@ +20090901100144407-102 = 192 +20090901100217527-106 = 190 +20091027093052413-400 = 24 +20091027093128193-401 = 22 +20091027093856950-403 = 26 +20091027093953542-404 = 28 +20091027094025001-405 = 29 +20091027094057471-406 = 25 +20091027094142512-407 = 23 +20091030173345738-419 = 37 +20091030173359059-420 = 33 +20091030173412170-421 = 38 +20091030173629007-422 = 32 +20091030173758779-423 = 35 +20091030173812208-424 = 39 +20091030173821889-425 = 36 +20091030173929101-426 = 34 +20091106124300586-474 = 47 +20091106124329764-475 = 42 +20091106124715426-476 = 46 +20091106125151081-477 = 43 +20091106125206291-478 = 45 +20091106125226353-479 = 48 +20091106125241093-480 = 44 +20091106125314193-481 = 41 +20091106141205669-490 = 56 +20091106141507158-492 = 55 +20091106141519899-493 = 57 +20091106141533859-494 = 52 +20091106141609081-495 = 54 +20091106141925253-496 = 50 +20091106141943652-497 = 53 +20091106141956163-498 = 51 +20091117170701771-551 = 62 +20091120175945615-578 = 69 +20091125111543169-606 = 89 +20091125111614749-607 = 87 +20091126153258774-618 = 77 +20091126153355153-619 = 82 +20091126153400307-620 = 83 +20091126153406591-621 = 84 +20091126153414760-622 = 80 +20091126153420414-623 = 78 +20091126153426200-624 = 81 +20091126153517520-625 = 79 +20091201173404712-670 = 101 +20091201173416814-671 = 97 +20091201173424109-672 = 100 +20091201173433419-673 = 96 +20091201173457607-674 = 95 +20091201173530550-675 = 102 +20091201173541572-676 = 98 +20091201173548422-677 = 99 +20091202163914008-686 = 106 +20091202163923548-687 = 111 +20091202163932761-688 = 108 +20091202163941188-689 = 109 +20091202164005130-690 = 104 +20091202164042639-691 = 107 +20091202164056909-692 = 105 +20091202164105920-693 = 110 +20091211135800080-746 = 366 +20091211135810349-747 = 370 +20091211135821139-748 = 371 +20091211135829933-749 = 373 +20091211135844754-750 = 367 +20091211135939945-751 = 369 +20091211154447334-763 = 125 +20091211155300296-768 = 123 +20091211155346575-769 = 124 +20091211155355043-770 = 128 +20091217160108986-815 = 134 +20091217160121027-816 = 141 +20091217160131947-817 = 136 +20091217160140856-818 = 137 +20091217160158137-819 = 135 +20091217160208497-820 = 138 +20091217160217679-821 = 133 +20091217160249608-822 = 140 +20100104141359261-851 = 146 +20100104141934510-852 = 145 +20100104141943538-853 = 142 +20100104141951799-854 = 143 +20100104142117972-855 = 147 +20100104142129577-856 = 150 +20100104142139257-857 = 148 +20100104142258199-858 = 144 +20100104150210283-868 = 155 +20100104150219889-869 = 152 +20100104150229391-870 = 153 +20100104150239401-871 = 154 +20100104150251770-872 = 157 +20100104150300874-873 = 156 +20100104150307950-874 = 159 +20100104150437301-875 = 151 +20100115162144587-984 = 174 +20100115162158927-985 = 172 +20100115162209499-986 = 171 +20100115162230528-987 = 169 +20100115162240790-988 = 176 +20100115162251887-989 = 170 +20100115162257999-990 = 175 +20100115162920255-992 = 168 +20100119174708577-1055 = 222 +20100119174715737-1056 = 224 +20100119174725169-1057 = 228 +20100119174735848-1058 = 221 +20100119174759150-1059 = 223 +20100119174810691-1060 = 227 +20100119174818898-1061 = 226 +20100119174930379-1062 = 225 +20100121160330216-1087 = 238 +20100121160346656-1088 = 234 +20100121160354685-1089 = 232 +20100121160431666-1090 = 231 +20100121160449219-1091 = 237 +20100121160522918-1093 = 239 +20100121160538448-1094 = 236 +20100121160728938-1095 = 233 +20100129163141498-1168 = 293 +20100129163151377-1169 = 299 +20100129163200946-1170 = 296 +20100129163210811-1171 = 295 +20100129163221077-1172 = 294 +20100129163229167-1173 = 298 +20100129163238850-1174 = 300 +20100129163343935-1175 = 297 +20100208181210213-1185 = 249 +20100208181221310-1186 = 257 +20100208181232443-1187 = 251 +20100208181241387-1188 = 256 +20100208181253995-1189 = 252 +20100208181305496-1190 = 253 +20100208181314316-1191 = 250 +20100208181418721-1192 = 255 +20100209093213783-1209 = 246 +20100209093223865-1210 = 241 +20100209093326782-1211 = 248 +20100210162255901-1238 = 340 +20100210162310327-1239 = 345 +20100210164455879-1253 = 347 +20100210164548000-1254 = 339 +20100217155418927-1330 = 331 +20100217155431380-1331 = 332 +20100217155440044-1332 = 336 +20100217155450929-1333 = 334 +20100217155510362-1334 = 328 +20100217155520621-1335 = 330 +20100217155550413-1336 = 333 +20100217155711716-1337 = 329 +20100223160428841-1361 = 351 +20100223160535294-1362 = 348 +20100223160552432-1364 = 349 +20100223160605401-1365 = 353 +20100223160620757-1366 = 356 +20100223160649269-1367 = 354 +20100223160808647-1368 = 350 +20100325110248757-1445 = 376 +20100325110330448-1446 = 380 +20100331150601755-1457 = 387 +20100331150610446-1458 = 388 +20100331150621576-1459 = 392 +20100331150636095-1460 = 390 +20100331150656717-1461 = 386 +20100331150756870-1462 = 389 +20100331150843166-1463 = 384 +20100331151007916-1465 = 385 +20100414165531241-1489 = 404 +20100414165541421-1490 = 408 +20100414165551276-1491 = 407 +20100414165604896-1492 = 406 +20100414165621711-1493 = 403 +20100414165629893-1494 = 405 +20100414165636217-1495 = 402 +20100414165740555-1496 = 410 +20100415095708958-1508 = 395 +20100415095721854-1509 = 398 +20100415095815657-1510 = 399 +20100415095838144-1511 = 401 +20100415095925208-1512 = 397 +20100415100107678-1514 = 393 +20100415100126104-1515 = 394 +20100420115836518-1559 = 413 +20100426124153251-1614 = 426 +20100428172740332-1623 = 430 +20100428172749470-1624 = 437 +20100428172800370-1625 = 433 +20100428172807501-1626 = 434 +20100428172822397-1627 = 431 +20100428172832020-1628 = 432 +20100428172841926-1629 = 429 +20100428172929820-1630 = 435 +20100505171018192-1659 = 439 +20100505171053482-1660 = 443 +20100505171109861-1661 = 444 +20100505171123152-1662 = 446 +20100505171437816-1663 = 442 +20100518180146300-1712 = 450 +20100518180156496-1713 = 454 +20100518180318645-1714 = 453 +20100518180330251-1715 = 452 +20100518180421992-1716 = 456 +20100518180620583-1718 = 451 +20100521173324880-1767 = 459 +20100521173337260-1768 = 462 +20100521173344869-1769 = 463 +20100521173355340-1770 = 465 +20100521173405794-1771 = 460 +20100521173412150-1772 = 457 +20100521173420493-1773 = 458 +20100521173504043-1774 = 461 +20100603142651278-1796 = 473 +20100603142804268-1797 = 472 +20100603142819793-1798 = 471 +20100603143248696-1799 = 468 +20100610095251052-1819 = 483 +20100610095351558-1820 = 476 +20100610095407343-1821 = 477 +20100610095416347-1822 = 478 +20100610095525224-1823 = 475 +20100610095853430-1827 = 479 +20100610095942262-1828 = 480 +20100622150006599-1858 = 490 +20100622150148840-1860 = 484 +20100706181515832-1912 = 495 +20100706181527377-1913 = 499 +20100706181537637-1914 = 498 +20100706181550267-1915 = 497 +20100706181605078-1916 = 494 +20100706181648289-1917 = 501 +20100706181846733-1920 = 493 +20100720173022595-1939 = 509 +20100720173033148-1940 = 506 +20100720173041895-1941 = 508 +20100720173051383-1942 = 503 +20100720173101132-1943 = 507 +20100720173108446-1944 = 510 +20100720173116612-1945 = 504 +20100720173632374-1947 = 505 +20100726124125003-1978 = 519 +20100729105913994-1994 = 526 +20100729105932276-1995 = 520 +20100729105944744-1996 = 523 +20100729110245137-2001 = 521 +20100730162022569-2017 = 529 +20100730162040004-2018 = 537 +20100730162155775-2021 = 535 +20100803171705868-2037 = 541 +20100803171716976-2038 = 542 +20100803171724636-2039 = 546 +20100803171732418-2040 = 544 +20100803171740431-2041 = 540 +20100803171750576-2042 = 538 +20100803171757602-2043 = 539 +20100803171837890-2044 = 543 +20100806144225552-2080 = 547 +20100811173558229-2100 = 558 +20100811173606359-2101 = 561 +20100811173614622-2102 = 562 +20100811173623435-2103 = 564 +20100811173748044-2104 = 560 +20100811173926469-2106 = 556 +20100811173938671-2107 = 557 +20100817180139608-2133 = 571 +20100817180707390-2135 = 566 +20100817180718131-2136 = 568 +20100902095427172-2168 = 587 +20100902095438108-2169 = 586 +20100902095626618-2171 = 589 +20100902095709387-2172 = 591 +20100902095722518-2173 = 594 +20100902095730764-2174 = 590 +20100910152208286-2231 = 601 +20100910152230447-2232 = 595 +20100910152246998-2233 = 598 +20100910152300691-2234 = 597 +20100910153859252-2235 = 596 +20100910154000986-2236 = 600 +20100910154015044-2237 = 599 +20100910154028448-2238 = 603 +20100916173443063-2275 = 607 +20100916173454336-2276 = 608 +20100916173503882-2277 = 612 +20100916173513256-2278 = 610 +20100916173521915-2279 = 606 +20100916173536668-2280 = 604 +20100916173544330-2281 = 605 +20100916173634754-2282 = 609 +20100922172618682-2314 = 621 +20100922172628495-2315 = 613 +20100922172637236-2316 = 616 +20100922172646098-2317 = 615 +20100922172726141-2318 = 614 +20100922172922512-2321 = 618 +20101006142458732-2343 = 624 +20101006142512761-2344 = 626 +20101006142522402-2345 = 630 +20101006142531789-2346 = 628 +20101006142552071-2347 = 623 +20101006142601230-2348 = 622 +20101006142705813-2349 = 627 +20101015202054777-2367 = 650 +20101015202204705-2368 = 651 +20101102140357156-2386 = 636 +20101102142525628-2390 = 633 +20101102142728963-2392 = 637 +20101102142743734-2393 = 639 +20101102142755621-2394 = 635 +20101108145638659-2419 = 644 +20101108145729493-2420 = 642 +20101116111121742-2457 = 652 +20101116111125257-2458 = 654 +20101116111130325-2459 = 653 +20101116111132822-2460 = 655 +20101116122432170-2472 = 656 +20101118165547913-2478 = 657 +20101119101026821-2483 = 658 +20101129145554042-2502 = 661 +20101129145610758-2503 = 664 +20101129145815342-2506 = 663 +20101129150122953-2509 = 660 +20101208180442780-2538 = 669 +20101208180512642-2539 = 673 +20101208180524877-2540 = 674 +20101208180535858-2541 = 676 +20101208180618449-2542 = 672 +20101208180741451-2544 = 670 +20101208180754738-2545 = 668 +20101208180802950-2546 = 671 +20101216160104564-2573 = 683 +20101216161556607-2574 = 679 +20101216161706668-2575 = 678 +20101216161842951-2576 = 682 +20101223131915300-2596 = 689 +20101223131934864-2597 = 693 +20101223131958575-2598 = 692 +20101223142020038-2599 = 691 +20101223142044320-2600 = 688 +20101223142137484-2601 = 695 +20101223145935775-2602 = 690 +20101223150112169-2603 = 687 +20110106172426022-2628 = 702 +20110106172623134-2631 = 696 +20110111133728698-2648 = 735 +20110111133741184-2649 = 731 +20110111133750259-2650 = 730 +20110111133800463-2651 = 729 +20110111133819858-2652 = 734 +20110111133833232-2653 = 737 +20110111133925478-2654 = 733 +20110111134512151-2656 = 732 +20110119144810858-2677 = 720 +20110119144824649-2678 = 715 +20110119144840280-2679 = 716 +20110119144908074-2680 = 722 +20110119144922057-2681 = 718 +20110119144932489-2682 = 719 +20110119145030224-2683 = 714 +20110119172858214-2684 = 717 +20110124165223963-2717 = 744 +20110124165239005-2718 = 738 +20110124165249350-2719 = 741 +20110124165300845-2720 = 740 +20110124165309809-2721 = 743 +20110124165319690-2722 = 742 +20110124165330021-2723 = 746 +20110124165417938-2724 = 739 +20110126170744784-2739 = 753 +20110126170757586-2740 = 748 +20110126170812874-2741 = 752 +20110126170904496-2742 = 749 +20110126170913781-2743 = 750 +20110126170924920-2744 = 755 +20110126170934940-2745 = 751 +20110126171017427-2746 = 747 +20110128173910875-2771 = 757 +20110128173948892-2772 = 761 +20110128174054442-2773 = 760 +20110128174102935-2774 = 764 +20110204175731219-2802 = 771 +20110204180026381-2806 = 1007 +20110204180111411-2807 = 768 +20110204180203891-2808 = 765 +20110216170951405-2835 = 776 +20110216171003565-2836 = 780 +20110216171016533-2837 = 774 +20110216171109597-2838 = 779 +20110216171119442-2839 = 778 +20110216171131158-2840 = 775 +20110216171139752-2841 = 777 +20110216171245854-2842 = 782 +20110225153927329-2861 = 787 +20110225153937373-2862 = 786 +20110225154229367-2868 = 785 +20110304161341497-2909 = 798 +20110304161354616-2910 = 793 +20110304161404678-2911 = 794 +20110304161416425-2912 = 795 +20110304161511996-2913 = 792 +20110304161558708-2914 = 800 +20110304161610219-2915 = 796 +20110304161619017-2916 = 797 +20110308152354091-2935 = 802 +20110308164745004-2936 = 806 +20110308165016533-2937 = 807 +20110308165031895-2938 = 809 +20110308165046032-2939 = 803 +20110308165058859-2940 = 801 +20110308165111155-2941 = 804 +20110308165207411-2942 = 805 +20110311165541070-2955 = 811 +20110311165618997-2956 = 815 +20110311165627903-2957 = 816 +20110311165641847-2958 = 818 +20110311165652155-2959 = 812 +20110311165702497-2960 = 810 +20110311165710565-2961 = 813 +20110311165751597-2962 = 814 +20110322174735590-2987 = 819 +20110322174744276-2988 = 827 +20110322174752176-2989 = 823 +20110322174804928-2990 = 824 +20110322174816513-2991 = 820 +20110322174854810-2992 = 825 +20110322174930179-2993 = 822 +20110328173520192-3005 = 832 +20110330172304098-3062 = 837 +20110330172320609-3063 = 845 +20110330172353996-3064 = 841 +20110330172449014-3065 = 842 +20110330172532594-3066 = 843 +20110401123647447-3086 = 854 +20110401123747747-3087 = 846 +20110401123756497-3088 = 849 +20110401123837379-3089 = 848 +20110408161507733-3144 = 861 +20110408161603628-3145 = 857 +20110408161613018-3146 = 856 +20110408161710832-3147 = 859 +20110415145206837-3162 = 868 +20110415145224958-3163 = 869 +20110415145234625-3164 = 873 +20110415145243947-3165 = 871 +20110415145254052-3166 = 867 +20110415145300442-3167 = 865 +20110415145310779-3168 = 866 +20110415145352673-3169 = 870 +20110429193420576-3201 = 1008 +20110429193512326-3202 = 878 +20110429193619818-3203 = 882 +20110429193631236-3204 = 880 +20110429193710132-3205 = 879 +20110506112228291-3238 = 884 +20110506112238037-3239 = 889 +20110506112345088-3240 = 888 +20110506112906454-3241 = 887 +20110506112928768-3242 = 883 +20110506112939522-3243 = 886 +20110506113034807-3244 = 885 +20110506113120272-3245 = 891 +20110518171554996-3334 = 907 +20110530100049402-3380 = 909 +20110530104418529-3390 = 981 +20110530104435608-3391 = 980 +20110530104445594-3392 = 982 +20110530104454302-3393 = 983 +20110530104536396-3394 = 984 +20110530104553755-3395 = 985 +20110530104610535-3396 = 986 +20110530105258256-3398 = 935 +20110530110700441-3400 = 950 +20110530110748437-3401 = 948 +20110530110854700-3402 = 946 +20110530111114947-3404 = 989 +20110530111156037-3405 = 987 +20110530111206334-3406 = 949 +20110530111309468-3407 = 988 +20110530111723730-3408 = 1091 +20110531163103070-3423 = 923 +20110603163952299-3444 = 932 +20110603164002251-3445 = 928 +20110603164236760-3448 = 929 +20110614115224929-3492 = 955 +20110614115236209-3493 = 958 +20110614115244123-3494 = 959 +20110614115252407-3495 = 961 +20110614115335826-3496 = 957 +20110614115427900-3497 = 956 +20110614115444550-3498 = 953 +20110614115453404-3499 = 954 +20110614120857985-3502 = 970 +20110614120908780-3503 = 966 +20110614120917006-3504 = 967 +20110614120930409-3505 = 968 +20110614120939524-3506 = 971 +20110614120951782-3507 = 969 +20110614121000380-3508 = 973 +20110614121044764-3509 = 965 +20110623171800595-3593 = 992 +20110623171809317-3594 = 997 +20110623171816627-3595 = 996 +20110623171824682-3596 = 995 +20110623171908093-3597 = 999 +20110623171942736-3598 = 991 +20110623171950035-3599 = 994 +20110627163827291-3645 = 1014 +20110627163834920-3646 = 1012 +20110627163843782-3647 = 1009 +20110627163851583-3648 = 1010 +20110627163900854-3649 = 1015 +20110627163911662-3650 = 1017 +20110627163920227-3651 = 1013 +20110627163959498-3652 = 1011 +20110701124735783-3673 = 1022 +20110701124840475-3674 = 1026 +20110701124911387-3675 = 1023 +20110701124925097-3676 = 1021 +20110701124940206-3677 = 1024 +20110701124949784-3678 = 1020 +20110701125048746-3679 = 1025 +20110701125848642-3681 = 1028 +20110712162052068-3727 = 1116 +20110712162142262-3728 = 1114 +20110712162158337-3729 = 1109 +20110712162959239-3732 = 1112 +20110712163802950-3734 = 1111 +20110712163816557-3735 = 1113 +20110722150931082-3778 = 1092 +20110722151001724-3779 = 1102 +20110722151015036-3780 = 1095 +20110722151027357-3781 = 1094 +20110722151053225-3782 = 1093 +20110722151107789-3783 = 1103 +20110722151255593-3784 = 1104 +20110802113225135-3837 = 1101 +20110812164104243-3922 = 1118 +20110812164124334-3923 = 1119 +20110812164140933-3924 = 1120 +20110812164618385-3926 = 1122 +20110816140502278-3937 = 1164 +20110816140513770-3938 = 1162 +20110816140523061-3939 = 1159 +20110816140534466-3940 = 1158 +20110816140548634-3941 = 1165 +20110816140557507-3942 = 1160 +20110816140834271-3943 = 1163 +20110816140956071-3944 = 1161 +20110819114620176-3981 = 1172 +20110819115408426-3985 = 1429 +20110826150921259-4275 = 1356 +20110826150933501-4276 = 1355 +20110826151344944-4279 = 1368 +20110826151422790-4280 = 1428 +20110907162319805-4569 = 1761 +20110907162516619-4570 = 1768 +20110907162826858-4573 = 1701 +20110907162839829-4574 = 1702 +20110907162852467-4575 = 1700 +20110907162902139-4576 = 1699 +20110916123944405-4954 = 1520 +20110916123958887-4955 = 1517 +20110916124033126-4956 = 1515 +20110916124043200-4957 = 1514 +20110916124118500-4958 = 1521 +20110916124128257-4959 = 1516 +20110916124138311-4960 = 1518 +20110916124224567-4961 = 1519 +20110916150155542-4971 = 1697 +20110916150203159-4972 = 1695 +20110916150216306-4973 = 1692 +20110916150307781-4974 = 1704 +20110916150353166-4975 = 1696 +20110916150448111-4976 = 2484 +20110916150456853-4977 = 2483 +20110916150557692-4978 = 1694 +20110922125513940-5037 = 1734 +20110922125513952-5038 = 1729 +20110922125513958-5039 = 1730 +20110922125513963-5040 = 1731 +20110922125513968-5041 = 1727 +20110922125513975-5042 = 1591 +20110922125513980-5043 = 1732 +20110922125513986-5044 = 1728 +20110926171509059-5128 = 1739 +20110926171509067-5129 = 1742 +20110926171509073-5130 = 1736 +20110926171509079-5131 = 1737 +20110926171509084-5132 = 1740 +20110926171509089-5133 = 1738 +20110926171509094-5134 = 1735 +20110926171509099-5135 = 1741 +20110930173048771-5200 = 1679 +20110930173048780-5201 = 1628 +20110930173048787-5202 = 1682 +20110930173048794-5203 = 1686 +20110930173048799-5204 = 1627 +20110930173048805-5205 = 1684 +20110930173048811-5206 = 1668 +20110930173048817-5207 = 1656 +20111013113013967-5332 = 1723 +20111013113013976-5333 = 1721 +20111013113013982-5334 = 1724 +20111013113013987-5335 = 1725 +20111013113013991-5336 = 1719 +20111013113013997-5337 = 1722 +20111013113014001-5338 = 2486 +20111013113014005-5339 = 2485 +20111027100116548-30919 = 1862 +20111027100116554-30920 = 1858 +20111027100116559-30921 = 1845 +20111027100116564-30922 = 1840 +20111027100116570-30923 = 1859 +20111027100116576-30924 = 1870 +20111027100116583-30925 = 1876 +20111027100116588-30926 = 1853 +20111031152022276-6886845 = 1888 +20111031152022283-6886846 = 1886 +20111031152022288-6886847 = 1881 +20111031152022294-6886848 = 1883 +20111031152022299-6886849 = 2339 +20111031152022305-6886850 = 1887 +20111031152022310-6886851 = 1884 +20111031152022316-6886852 = 1905 +20111109124517141-8007681 = 1918 +20111109124528501-8007682 = 1919 +20111109124538202-8007683 = 1912 +20111109124547350-8007684 = 1917 +20111109124556811-8007685 = 1915 +20111109124700955-8007686 = 1914 +20111115152506714-19519160 = 2149 +20111116170443345-19519187 = 2151 +20111116170649427-19519188 = 2152 +20111116170836661-19519189 = 2096 +20111116170949414-19519190 = 1966 +20111116171035686-19519191 = 2148 +20111116171044764-19519192 = 2147 +20111116171054225-19519193 = 2150 +20111124093717346-30845008 = 2161 +20111124093753125-30845009 = 2159 +20111124093805945-30845010 = 2156 +20111124093823893-30845011 = 2155 +20111124093838453-30845012 = 2162 +20111124093849455-30845013 = 2157 +20111124093859676-30845014 = 2158 +20111124093949998-30845015 = 2160 +20111125162630368-31094263 = 2172 +20111125162639758-31094264 = 2170 +20111125162648132-31094265 = 2165 +20111125162659163-31094266 = 2166 +20111125162708561-31094267 = 2171 +20111125162717330-31094268 = 2167 +20111125162728600-31094269 = 2169 +20111125162820338-31094270 = 2168 +20111202165037320-31094311 = 2194 +20111202165037329-31094312 = 2196 +20111202165037338-31094313 = 2199 +20111202165037345-31094314 = 2200 +20111202165037352-31094315 = 2195 +20111202165037360-31094316 = 2193 +20111202165037368-31094317 = 2198 +20111202165037375-31094318 = 2197 +20111202173036363-31094324 = 2280 +20111206153216085-32933074 = 2275 +20111206153216090-32933075 = 2272 +20111206153216095-32933076 = 2268 +20111206153216100-32933077 = 2269 +20111206153216105-32933078 = 2271 +20111206153216109-32933079 = 2274 +20111206153216113-32933080 = 2270 +20111206153216121-32933082 = 2273 +20111213153012524-46581714 = 2298 +20111213153012529-46581715 = 2301 +20111213153012534-46581716 = 2291 +20111213153012538-46581717 = 2292 +20111213153012545-46581719 = 2299 +20111213153012548-46581720 = 2297 +20111213153012553-46581721 = 2290 +20111213153012557-46581722 = 2300 +20111213162012966-46680667 = 2389 +20111213162012971-46680668 = 2388 +20111213162012977-46680669 = 2385 +20111213162012984-46680671 = 2386 +20111213162012989-46680672 = 2387 +20111220163023723-56006597 = 2405 +20111220163023731-56006598 = 2402 +20111220163023738-56006599 = 2406 +20111220163023744-56006600 = 2407 +20111220163023751-56006601 = 2401 +20111220163023757-56006602 = 2404 +20111220163023762-56006603 = 2408 +20111220163023768-56006604 = 2403 +20111220170021890-56006606 = 2421 +20111220170021896-56006607 = 2418 +20111220170021902-56006608 = 2424 +20111220170021907-56006609 = 2423 +20111220170021912-56006610 = 2420 +20111220170021918-56006611 = 2422 +20111220170021924-56006612 = 2425 +20111220170021931-56006613 = 2419 +20120105163504805-56010550 = 3041 +20120105163504811-56010551 = 3036 +20120105163504817-56010552 = 3039 +20120105163504822-56010553 = 3040 +20120105163504830-56010554 = 3035 +20120105163504838-56010555 = 3016 +20120105163504843-56010556 = 3038 +20120105163504848-56010557 = 3037 +20120105170038905-56010559 = 3076 +20120105170038912-56010560 = 3078 +20120105170038919-56010561 = 3075 +20120105170038925-56010562 = 3074 +20120105170038931-56010563 = 3080 +20120105170038937-56010564 = 3077 +20120105170038943-56010565 = 3073 +20120105170038948-56010566 = 3079 +20120113102828303-58395829 = 3006 +20120113102840860-58395830 = 3003 +20120113102852873-58395831 = 2999 +20120113102902474-58395832 = 3000 +20120113102915043-58395833 = 3005 +20120113102926653-58395834 = 3001 +20120113103050906-58395835 = 3004 +20120113103136726-58395836 = 3002 +20120113174211710-58395888 = 3102 +20120113174211716-58395889 = 3104 +20120113174211721-58395890 = 3099 +20120113174211726-58395891 = 3100 +20120113174211731-58395892 = 3103 +20120113174211736-58395893 = 3101 +20120113174211742-58395894 = 3098 +20120113174211747-58395895 = 3105 +20120113175144487-58395897 = 3007 +20120113175144498-58395898 = 3010 +20120113175144505-58395899 = 3014 +20120113175144510-58395900 = 3013 +20120113175144517-58395901 = 3011 +20120113175144524-58395902 = 3008 +20120113175144529-58395903 = 3012 +20120113175144534-58395904 = 3009 +20120119144309285-60397187 = 2591 +20120119144309292-60397188 = 2588 +20120119144309297-60397189 = 2594 +20120119144309304-60397190 = 2593 +20120119144309310-60397191 = 2529 +20120119144309315-60397192 = 2592 +20120119144309321-60397193 = 2595 +20120119144309326-60397194 = 2589 +20120126112933908-60397756 = 3126 +20120126112933915-60397757 = 3129 +20120126112933921-60397758 = 3131 +20120126112933926-60397759 = 3132 +20120126112933932-60397760 = 3127 +20120126112933938-60397761 = 3125 +20120126112933945-60397762 = 3130 +20120126112933950-60397763 = 3128 +20120127152728774-60397877 = 3148 +20120127152743722-60397878 = 3146 +20120127152814026-60397879 = 3143 +20120127152826763-60397880 = 3142 +20120127152857313-60397881 = 3149 +20120127152907513-60397882 = 3144 +20120127153027663-60397883 = 3145 +20120127153114700-60397884 = 3147 +20120209155957200-60398012 = 3245 +20120209155957206-60398013 = 3242 +20120209155957211-60398014 = 3238 +20120209155957217-60398015 = 3239 +20120209155957223-60398016 = 3241 +20120209155957228-60398017 = 3244 +20120209155957236-60398018 = 3240 +20120209155957242-60398019 = 3243 +20120215144011662-60398118 = 3268 +20120215144011670-60398119 = 3265 +20120215144011677-60398120 = 3271 +20120215144011684-60398121 = 3274 +20120215144011690-60398122 = 3267 +20120215144011698-60398123 = 3269 +20120215144011705-60398124 = 3273 +20120215144011712-60398125 = 3266 +20120217124053431-60398146 = 3257 +20120217124113643-60398147 = 3259 +20120217124124306-60398148 = 3262 +20120217124136020-60398149 = 3263 +20120217124145802-60398150 = 3256 +20120217124154317-60398151 = 3261 +20120217124201986-60398152 = 3260 +20120217124245321-60398153 = 3258 +20120224150007051-60398208 = 3457 +20120224150007061-60398209 = 3382 +20120224150007080-60398211 = 3276 +20120224150007087-60398212 = 3329 +20120224150007093-60398213 = 3431 +20120224150007100-60398214 = 3456 +20120224150007106-60398215 = 3378 +20120306152009283-60398636 = 3495 +20120306152009289-60398637 = 3492 +20120306152009296-60398638 = 3488 +20120306152009302-60398639 = 3489 +20120306152009308-60398640 = 3491 +20120306152009314-60398641 = 3494 +20120306152009319-60398642 = 3490 +20120306152009324-60398643 = 3493 +20120306162009227-60398645 = 3522 +20120306162009234-60398646 = 3524 +20120306162009241-60398647 = 3521 +20120306162009247-60398648 = 3520 +20120306162009253-60398649 = 3526 +20120306162009259-60398650 = 3523 +20120306162009265-60398651 = 3805 +20120306162009271-60398652 = 3525 +20120313123229824-60398842 = 3666 +20120313123347844-60398843 = 3669 +20120313123400417-60398844 = 3663 +20120313123504856-60398845 = 3664 +20120313123549079-60398846 = 3667 +20120313123655509-60398847 = 3665 +20120313123706173-60398848 = 3662 +20120313123813502-60398849 = 3668 +20120315155009442-60398967 = 3728 +20120315155009450-60398968 = 3725 +20120315155009458-60398969 = 3721 +20120315155009465-60398970 = 3722 +20120315155009472-60398971 = 3724 +20120315155009479-60398972 = 3727 +20120315155009486-60398973 = 3723 +20120315155009495-60398974 = 3726 +20120327111019853-60399075 = 3749 +20120327111019860-60399076 = 3754 +20120327111019866-60399077 = 3764 +20120327111019872-60399078 = 3769 +20120327111019878-60399079 = 3750 +20120327111019885-60399080 = 3760 +20120327111019891-60399081 = 3771 +20120327111019897-60399082 = 3744 +20120404143842979-60399184 = 3799 +20120404143857664-60399185 = 3796 +20120404143908551-60399186 = 3802 +20120404143924639-60399187 = 3801 +20120404144043061-60399188 = 3800 +20120404144226270-60399189 = 3803 +20120404144237325-60399190 = 3797 +20120404144344378-60399191 = 3798 +20120412124011430-60399233 = 3896 +20120412124011435-60399234 = 3898 +20120412124011440-60399235 = 3897 +20120412124011445-60399236 = 4292 +20120412124011449-60399237 = 3895 +20120412124011453-60399238 = 3899 +20120412124011458-60399239 = 3893 +20120412124011462-60399240 = 3894 +20120416140613669-60399279 = 3836 +20120416140613677-60399280 = 3834 +20120416140613683-60399281 = 3833 +20120416140613689-60399282 = 3835 +20120416140613695-60399283 = 3837 +20120416140613700-60399284 = 3839 +20120416140613706-60399285 = 3838 +20120416140613711-60399286 = 3840 +20120420104805614-60399425 = 3965 +20120420104805619-60399426 = 3962 +20120420104805624-60399427 = 3960 +20120420104805631-60399428 = 3959 +20120420104805636-60399429 = 3964 +20120420104805643-60399430 = 4010 +20120420104805648-60399431 = 3961 +20120420104805654-60399432 = 3963 +20120427125614128-60399646 = 4280 +20120427125614134-60399647 = 4277 +20120427125614141-60399648 = 4281 +20120427125614146-60399649 = 4278 +20120427125614153-60399650 = 4274 +20120427125614158-60399651 = 4275 +20120427125614164-60399652 = 4276 +20120427125614170-60399653 = 4279 +20120504110615536-60399799 = 4104 +20120504110615544-60399800 = 4106 +20120504110615551-60399801 = 4111 +20120504110615558-60399802 = 4110 +20120504110615564-60399803 = 4108 +20120504110615570-60399804 = 4105 +20120504110615576-60399805 = 4109 +20120504110615582-60399806 = 4107 +20120511113620386-60399887 = 4136 +20120511113620396-60399888 = 4138 +20120511113620405-60399889 = 4135 +20120511113620414-60399890 = 4134 +20120511113620423-60399891 = 4140 +20120511113620430-60399892 = 4137 +20120511113620437-60399893 = 4133 +20120511113620444-60399894 = 4139 +20120525114328674-60400382 = 4403 +20120525114328682-60400383 = 4401 +20120525114328691-60400384 = 4404 +20120525114328699-60400385 = 4405 +20120525114328706-60400386 = 4399 +20120525114328714-60400387 = 4402 +20120525114328723-60400388 = 4406 +20120525114328731-60400389 = 4400 +20120525114423248-60400391 = 4415 +20120525114423257-60400392 = 4319 +20120525114423264-60400393 = 4433 +20120525114423271-60400394 = 4435 +20120525114423279-60400395 = 4429 +20120525114423289-60400396 = 4427 +20120525114423300-60400397 = 4436 +20120525114423307-60400398 = 4431 +20120606115418775-60400564 = 4479 +20120606115418783-60400565 = 4477 +20120606115418789-60400566 = 4473 +20120606115418795-60400567 = 4474 +20120606115418801-60400568 = 4475 +20120606115418808-60400569 = 4478 +20120606115418815-60400570 = 4465 +20120606115418821-60400571 = 4476 +20120606120812962-60400573 = 4537 +20120606120812967-60400574 = 4539 +20120606120812972-60400575 = 4540 +20120606120812977-60400576 = 4534 +20120606120812983-60400577 = 4538 +20120606120812988-60400578 = 4535 +20120606120812992-60400579 = 4536 +20120606120812997-60400580 = 4541 +20120612103612900-60400700 = 4606 +20120612103612908-60400701 = 4622 +20120612103612916-60400702 = 4624 +20120612103612923-60400703 = 4608 +20120612103612931-60400704 = 4605 +20120612103612939-60400705 = 4607 +20120612103612948-60400706 = 4610 +20120612103612956-60400707 = 4604 +20120618162411407-60401924 = 4692 +20120618162411414-60401925 = 4694 +20120618162411419-60401926 = 4697 +20120618162411425-60401927 = 4698 +20120618162411431-60401928 = 4693 +20120618162411437-60401929 = 4691 +20120618162411443-60401930 = 4696 +20120618162411448-60401931 = 4695 +20120625112207079-60401997 = 4649 +20120625112207088-60401998 = 4652 +20120625112207095-60401999 = 4648 +20120625112207102-60402000 = 4647 +20120625112207110-60402001 = 4653 +20120625112207117-60402002 = 4650 +20120625112207125-60402003 = 4646 +20120625112207132-60402004 = 4651 +20120702153422414-60402091 = 4940 +20120702153422422-60402092 = 4942 +20120702153422429-60402093 = 4937 +20120702153422436-60402094 = 4938 +20120702153422445-60402095 = 4941 +20120702153422453-60402096 = 5159 +20120702153422461-60402097 = 4936 +20120702153422468-60402098 = 4943 +20120705111214714-60402221 = 4847 +20120705111214721-60402222 = 4849 +20120705111214727-60402223 = 4853 +20120705111214733-60402224 = 4852 +20120705111214739-60402225 = 4850 +20120705111214746-60402226 = 4848 +20120705111214752-60402227 = 4851 +20120705111214758-60402228 = 4840 +20120710111010138-60402391 = 4993 +20120710111010144-60402392 = 4990 +20120710111010150-60402393 = 4988 +20120710111010155-60402394 = 4987 +20120710111010161-60402395 = 4992 +20120710111010167-60402396 = 4994 +20120710111010172-60402397 = 4989 +20120710111010177-60402398 = 4991 +20120717115016575-60402508 = 5023 +20120717115016583-60402509 = 5018 +20120717115016591-60402510 = 5015 +20120717115016598-60402511 = 5021 +20120717115016606-60402512 = 5020 +20120717115016613-60402513 = 5024 +20120717115016621-60402514 = 5022 +20120717115016628-60402515 = 5019 +20120717124611961-60402517 = 5041 +20120717124611969-60402518 = 5045 +20120717124611978-60402519 = 5044 +20120717124611985-60402520 = 5035 +20120717124611992-60402521 = 5046 +20120717124612001-60402522 = 5047 +20120717124612009-60402523 = 5043 +20120717124612017-60402524 = 5039 +20120725144841917-60402818 = 5659 +20120727113414183-60402832 = 5217 +20120727113414191-60402833 = 5219 +20120727113414198-60402834 = 5222 +20120727113414206-60402835 = 5223 +20120727113414212-60402836 = 5218 +20120727113414219-60402837 = 5216 +20120727113414229-60402838 = 5221 +20120727113414236-60402839 = 5220 +20120727122030657-60402842 = 5654 +20120727122030666-60402843 = 5653 +20120727122030675-60402844 = 5650 +20120727122030683-60402845 = 5649 +20120727122030693-60402846 = 5657 +20120727122030702-60402847 = 5655 +20120727122030711-60402848 = 5651 +20120727122030718-60402849 = 5652 +20120808095418813-60403532 = 5712 +20120808095418821-60403533 = 5715 +20120808095418830-60403534 = 5709 +20120808095418837-60403535 = 5710 +20120808095418845-60403536 = 5713 +20120808095418852-60403537 = 5711 +20120808095418860-60403538 = 5708 +20120808095418868-60403539 = 5714 +20120817123015190-60403697 = 5753 +20120817123015196-60403698 = 5750 +20120817123015202-60403699 = 5756 +20120817123015206-60403700 = 5755 +20120817123015211-60403701 = 5752 +20120817123015216-60403702 = 5754 +20120817123015221-60403703 = 5757 +20120817123015226-60403704 = 5751 +20120821111407265-60403749 = 5815 +20120821111407270-60403750 = 5812 +20120821111407277-60403751 = 5808 +20120821111407284-60403752 = 5809 +20120821111407290-60403753 = 5811 +20120821111407296-60403754 = 5814 +20120821111407302-60403755 = 5810 +20120821111407308-60403756 = 5813 +20120827152950859-60403941 = 5940 +20120830123814716-60403947 = 5932 +20120830123814724-60403948 = 5935 +20120830123814732-60403949 = 5939 +20120830123814740-60403950 = 5938 +20120830123814750-60403951 = 5936 +20120830123814758-60403952 = 5933 +20120830123814766-60403953 = 5937 +20120830123814773-60403954 = 5934 +20120911102013785-60404194 = 6085 +20120911102013792-60404195 = 6088 +20120911102013799-60404196 = 6090 +20120911102013806-60404197 = 6091 +20120911102013813-60404198 = 6086 +20120911102013821-60404199 = 6084 +20120911102013828-60404200 = 6089 +20120911102013836-60404201 = 6087 +20120917113811498-60404914 = 6095 +20120917113811506-60404915 = 6098 +20120917113811517-60404916 = 6094 +20120917113811524-60404917 = 26929 +20120917113811530-60404918 = 6099 +20120917113811538-60404919 = 6096 +20120917113811546-60404920 = 6092 +20120917113811552-60404921 = 6097 +20120925172436757-60405088 = 6614 +20120925172436766-60405089 = 6611 +20120925172436774-60405090 = 6636 +20120925172436783-60405091 = 6616 +20120925172436791-60405092 = 6610 +20120925172436799-60405093 = 6613 +20120925172436808-60405094 = 6635 +20120925172436816-60405095 = 6612 +20120928114612853-60405097 = 6169 +20120928114612859-60405098 = 6167 +20120928114612866-60405099 = 6178 +20120928114612873-60405100 = 6171 +20120928114612881-60405101 = 6168 +20120928114612889-60405102 = 6170 +20120928114612897-60405103 = 6173 +20120928114612904-60405104 = 6166 +20121003114009009-60405221 = 7181 +20121003114009017-60405222 = 7182 +20121003114009023-60405223 = 7187 +20121003114009029-60405224 = 7186 +20121003114009035-60405225 = 7184 +20121003114009041-60405226 = 7185 +20121003114009047-60405227 = 7188 +20121003114009053-60405228 = 7183 +20121013120615890-60405286 = 6632 +20121013120615900-60405287 = 6630 +20121013120615907-60405288 = 6627 +20121013120615913-60405289 = 6626 +20121013120615921-60405290 = 6631 +20121013120615928-60405291 = 6633 +20121013120615936-60405292 = 6628 +20121013120615942-60405293 = 6629 +20121019102214857-60405797 = 6700 +20121019102214865-60405798 = 6697 +20121019102214872-60405799 = 6703 +20121019102214878-60405800 = 6702 +20121019102214884-60405801 = 6716 +20121019102214891-60405802 = 6701 +20121019102214896-60405803 = 6704 +20121019102214903-60405804 = 6698 +20121026142410765-60406542 = 7544 +20121026142410773-60406543 = 7545 +20121026142410780-60406544 = 7546 +20121026142410785-60406545 = 7547 +20121026142410791-60406546 = 8103 +20121026142410798-60406547 = 7549 +20121026142410806-60406548 = 7550 +20121026142410811-60406549 = 7551 +20121029181607907-60406587 = 7255 +20121029181607912-60406588 = 7253 +20121029181607919-60406589 = 7251 +20121029181607924-60406590 = 7250 +20121029181607929-60406591 = 7254 +20121029181607936-60406592 = 7256 +20121029181607942-60406593 = 7252 +20121029181607947-60406594 = 7298 +20121030115624887-60406607 = 7208 +20121030115631586-60406608 = 7207 +20121102154200905-60407020 = 7724 +20121102154204647-60407021 = 7869 +20121103091208986-60407047 = 7581 +20121103091208994-60407048 = 7579 +20121103091209001-60407049 = 7576 +20121103091209008-60407050 = 7575 +20121103091209015-60407051 = 7580 +20121103091209022-60407052 = 7582 +20121103091209030-60407053 = 7577 +20121103091209037-60407054 = 7578 +20121113111609476-60407345 = 7740 +20121113111609484-60407346 = 7736 +20121113111609491-60407347 = 7737 +20121113111609498-60407348 = 7734 +20121113111609505-60407349 = 7739 +20121113111609511-60407350 = 7738 +20121113111609518-60407351 = 7733 +20121113111609523-60407352 = 7735 +20121113130406843-60407354 = 7713 +20121113130406850-60407355 = 7710 +20121113130406856-60407356 = 7708 +20121113130406862-60407357 = 7707 +20121113130406868-60407358 = 7712 +20121113130406875-60407359 = 7714 +20121113130406883-60407360 = 7709 +20121113130406889-60407361 = 7711 +20121120105624562-60407557 = 7804 +20121120105624571-60407558 = 7802 +20121120105624578-60407559 = 7809 +20121120105624585-60407560 = 7808 +20121120105624593-60407561 = 7803 +20121120105624600-60407562 = 7806 +20121120105624607-60407563 = 7805 +20121120105624614-60407564 = 7807 +20121123122418416-60407651 = 8122 +20121123122418422-60407652 = 8128 +20121123122418428-60407653 = 8123 +20121123122418434-60407654 = 8124 +20121123122418439-60407655 = 8126 +20121123122418446-60407656 = 8129 +20121123122418452-60407657 = 8125 +20121123122418457-60407658 = 8127 +20121127112813823-60407720 = 8046 +20121127112813830-60407721 = 8043 +20121127112813837-60407722 = 8047 +20121127112813844-60407723 = 8757 +20121127112813851-60407724 = 8042 +20121127112813857-60407725 = 8766 +20121127112813864-60407726 = 8774 +20121127112813869-60407727 = 8784 +20121129112014286-60407868 = 8368 +20121129112014292-60407869 = 8365 +20121129112014297-60407870 = 8369 +20121129112014304-60407871 = 8370 +20121129112014309-60407872 = 8364 +20121129112014315-60407873 = 8367 +20121129112014319-60407874 = 8371 +20121129112014325-60407875 = 8366 +20121130160813307-60408030 = 8177 +20121130160813315-60408031 = 8182 +20121130160813322-60408032 = 8180 +20121130160813327-60408033 = 8179 +20121130160813332-60408034 = 8184 +20121130160813338-60408035 = 8181 +20121130160813344-60408036 = 8178 +20121130160813351-60408037 = 8183 +20121207170558909-60408468 = 8378 +20121207170558924-60408469 = 8375 +20121207170558939-60408470 = 8373 +20121207170558953-60408471 = 8372 +20121207170558966-60408472 = 8377 +20121207170558988-60408473 = 8746 +20121207170559006-60408474 = 8374 +20121207170559019-60408475 = 8376 +20121212111609369-60408661 = 8421 +20121212111609377-60408662 = 8423 +20121212111609383-60408663 = 8419 +20121212111609390-60408664 = 8424 +20121212111609396-60408665 = 8425 +20121212111609402-60408666 = 8422 +20121212111609409-60408667 = 8420 +20121212111609415-60408668 = 8426 +20121218104202329-60408793 = 8478 +20121218110412741-60408795 = 8462 +20121218110412760-60408796 = 8465 +20121218110412767-60408797 = 8460 +20121218110412774-60408798 = 8467 +20121218110412781-60408799 = 8463 +20121218110412787-60408800 = 8464 +20121218110412794-60408801 = 8461 +20121218110412800-60408802 = 8466 +20130104112813769-60409072 = 8522 +20130104112813778-60409073 = 8524 +20130104112813786-60409074 = 8519 +20130104112813794-60409075 = 8520 +20130104112813802-60409076 = 8523 +20130104112813808-60409077 = 8521 +20130104112813815-60409078 = 8518 +20130104112813821-60409079 = 8525 +20130111133549473-60409201 = 8586 +20130115102816314-60409230 = 8682 +20130115112412967-60409238 = 8576 +20130115112412973-60409239 = 8578 +20130115112412980-60409240 = 8573 +20130115112412987-60409241 = 8574 +20130115112412994-60409242 = 8577 +20130115112413002-60409243 = 8575 +20130115112413008-60409244 = 8572 +20130115112413014-60409245 = 8579 +20130118105206318-60409278 = 8967 +20130118105206324-60409279 = 8965 +20130118105206331-60409280 = 8960 +20130118105206337-60409281 = 8961 +20130118105206342-60409282 = 8963 +20130118105206347-60409283 = 8966 +20130118105206354-60409284 = 8962 +20130118105206360-60409285 = 8964 +20130118110405781-60409287 = 8732 +20130118110405799-60409288 = 8735 +20130118110405806-60409289 = 8739 +20130118110405814-60409290 = 8738 +20130118110405820-60409291 = 8736 +20130118110405827-60409292 = 8733 +20130118110405834-60409293 = 8737 +20130118110405840-60409294 = 8734 +20130124104010537-60409594 = 8837 +20130124104010545-60409595 = 8817 +20130124104010552-60409596 = 8801 +20130124104010559-60409597 = 8808 +20130124104010566-60409598 = 8843 +20130124104010573-60409599 = 8840 +20130124104010579-60409600 = 8842 +20130124104010586-60409601 = 8841 +20130201104415424-60409857 = 9054 +20130201104415432-60409858 = 9051 +20130201104415438-60409859 = 9055 +20130201104415444-60409860 = 9056 +20130201104415450-60409861 = 9050 +20130201104415458-60409862 = 9053 +20130201104415464-60409863 = 9057 +20130201104415471-60409864 = 9052 +20130206162625876-60409974 = 9070 +20130206162713329-60409975 = 9079 +20130208122012573-60410015 = 9141 +20130208122012670-60410016 = 9143 +20130208122012678-60410017 = 9140 +20130208122012686-60410018 = 9139 +20130208122012693-60410019 = 9145 +20130208122012701-60410020 = 9142 +20130208122012708-60410021 = 9138 +20130208122012717-60410022 = 9144 +20130208153209913-60410024 = 9241 +20130208153209922-60410025 = 9238 +20130208153209929-60410026 = 9244 +20130208153209935-60410027 = 9243 +20130208153209941-60410028 = 9317 +20130208153209948-60410029 = 9242 +20130208153209954-60410030 = 9245 +20130208153209961-60410031 = 9239 +20130214105609636-60410104 = 9180 +20130214105609642-60410105 = 9182 +20130214105609647-60410106 = 9185 +20130214105609652-60410107 = 9186 +20130214105609659-60410108 = 9181 +20130214105609668-60410109 = 9179 +20130214105609675-60410110 = 9184 +20130214105609682-60410111 = 9183 +20130220121112375-60410143 = 9157 +20130220121209377-60410144 = 9148 +20130221110411926-60410212 = 9314 +20130221110411935-60410213 = 9312 +20130221110411943-60410214 = 9309 +20130221110411950-60410215 = 9308 +20130221110411959-60410216 = 9313 +20130221110411968-60410217 = 9315 +20130221110411976-60410218 = 9310 +20130221110411984-60410219 = 9311 +20130227114414125-60410375 = 9417 +20130227114414137-60410376 = 9420 +20130227114414149-60410377 = 9422 +20130227114414162-60410378 = 9423 +20130227114414177-60410379 = 9418 +20130227114414194-60410380 = 9424 +20130227114414206-60410381 = 9425 +20130227114414216-60410382 = 9426 +20130227115613221-60410384 = 9375 +20130227115613232-60410385 = 9377 +20130227115613243-60410386 = 9380 +20130227115613252-60410387 = 9381 +20130227115613262-60410388 = 9376 +20130227115613274-60410389 = 9374 +20130227115613284-60410390 = 9379 +20130227115613295-60410391 = 9378 +20130304141030443-60410476 = 9393 +20130312093624504-60410573 = 9438 +20130312100010331-60410586 = 9522 +20130312100010342-60410587 = 9520 +20130312100010353-60410588 = 9523 +20130312100010363-60410589 = 9524 +20130312100010373-60410590 = 9518 +20130312100010383-60410591 = 9521 +20130312100010393-60410592 = 9525 +20130312100010403-60410593 = 9529 +20130315123609176-60410776 = 9541 +20130315123609184-60410777 = 9543 +20130315123609191-60410778 = 9542 +20130315123609198-60410779 = 9547 +20130315123609206-60410780 = 9622 +20130315123609213-60410781 = 9540 +20130315123609219-60410782 = 9545 +20130315123609225-60410783 = 9544 +20130315125932485-60410785 = 9579 +20130315125932502-60410786 = 9601 +20130315125932515-60410787 = 9570 +20130315125932526-60410788 = 9564 +20130315125932542-60410789 = 9602 +20130315125932561-60410790 = 9583 +20130315125932581-60410791 = 9558 +20130315125932600-60410792 = 9592 +20130321104037354-60410985 = 9739 +20130321110812651-60410993 = 9914 +20130321110812681-60410994 = 9912 +20130321110812688-60410995 = 9909 +20130321110812696-60410996 = 9908 +20130321110812703-60410997 = 9913 +20130321110812710-60410998 = 9915 +20130321110812718-60410999 = 9910 +20130321110812726-60411000 = 9911 +20130321112012637-60411002 = 9880 +20130321112012661-60411003 = 9882 +20130321112012669-60411004 = 10085 +20130321112012675-60411005 = 9874 +20130321112012683-60411006 = 9892 +20130321112012694-60411007 = 9881 +20130321112012703-60411008 = 9873 +20130321112012712-60411009 = 9885 +20130322095006903-60411140 = 9751 +20130328104007833-60411427 = 10034 +20130328104007843-60411428 = 10037 +20130328104007852-60411429 = 10031 +20130328104007861-60411430 = 10032 +20130328104007871-60411431 = 10035 +20130328104007880-60411432 = 10033 +20130328104007888-60411433 = 10030 +20130328104007898-60411434 = 10036 +20130404103207720-60411581 = 10129 +20130404103207729-60411582 = 10131 +20130404103207738-60411583 = 10136 +20130404103207747-60411584 = 10135 +20130404103207756-60411585 = 10133 +20130404103207765-60411586 = 10130 +20130404103207773-60411587 = 10134 +20130404103207782-60411588 = 10132 +20130416105209833-60411715 = 10179 +20130416105209840-60411716 = 10182 +20130416105209849-60411717 = 10178 +20130416105209857-60411718 = 10177 +20130416105209865-60411719 = 10183 +20130416105209872-60411720 = 10180 +20130416105209881-60411721 = 10176 +20130416105209890-60411722 = 10181 +20130418110019695-60411749 = 10203 +20130418110019708-60411750 = 10206 +20130418110019721-60411751 = 10208 +20130418110019733-60411752 = 10209 +20130418110019746-60411753 = 10204 +20130418110019757-60411754 = 10202 +20130418110019769-60411755 = 10207 +20130418110019780-60411756 = 10205 +20130424110814698-60411984 = 10355 +20130424110814710-60411985 = 10353 +20130424110814721-60411986 = 10350 +20130424110814732-60411987 = 10349 +20130424110814742-60411988 = 10354 +20130424110814760-60411989 = 10356 +20130424110814773-60411990 = 10351 +20130424110814783-60411991 = 10352 +20130424115104435-60411993 = 10268 +20130424115104445-60411994 = 10270 +20130424115104456-60411995 = 10273 +20130424115104466-60411996 = 10274 +20130424115104476-60411997 = 10269 +20130424115104486-60411998 = 10267 +20130424115104496-60411999 = 10272 +20130424115104507-60412000 = 10271 +20130501110813877-60412150 = 10411 +20130501110813887-60412151 = 10409 +20130501110813896-60412152 = 10414 +20130501110813905-60412153 = 10413 +20130501110813913-60412154 = 10410 +20130501110813921-60412155 = 10412 +20130501110813930-60412156 = 10415 +20130501110813940-60412157 = 10408 +20130508143446619-60412282 = 10423 +20130514121214397-60412340 = 10451 +20130516112808409-60412347 = 10557 +20130516112808418-60412348 = 10555 +20130516112808428-60412349 = 10560 +20130516112808437-60412350 = 10559 +20130516112808446-60412351 = 10556 +20130516112808455-60412352 = 10558 +20130516112808464-60412353 = 10561 +20130516112808474-60412354 = 10554 +20130516114008448-60412358 = 10562 +20130516114008457-60412359 = 10565 +20130516114008467-60412360 = 10569 +20130516114008481-60412361 = 10568 +20130516114008496-60412362 = 10566 +20130516114008505-60412363 = 10563 +20130516114008513-60412364 = 10567 +20130516114008521-60412365 = 10658 +20130522154211227-60412585 = 10581 +20130524120807629-60412745 = 10858 +20130524120807637-60412746 = 10860 +20130524120807648-60412747 = 10855 +20130524120807657-60412748 = 10856 +20130524120807668-60412749 = 10859 +20130524120807677-60412750 = 10857 +20130524120807689-60412751 = 10854 +20130524120807699-60412752 = 10861 +20130524122006836-60412754 = 10657 +20130524122006844-60412755 = 10654 +20130524122006851-60412756 = 10650 +20130524122006858-60412757 = 10651 +20130524122006871-60412758 = 10653 +20130524122006879-60412759 = 10656 +20130524122006887-60412760 = 10652 +20130524122006898-60412761 = 10655 +20130530161331750-60412888 = 10853 +20130606125208381-60413194 = 10901 +20130606161207286-60413217 = 10951 +20130606161207305-60413218 = 10954 +20130606161207320-60413219 = 10958 +20130606161207338-60413220 = 10957 +20130606161207355-60413221 = 10964 +20130606161207375-60413222 = 10952 +20130606161207393-60413223 = 10956 +20130606161207411-60413224 = 10953 +20130611112823059-60413342 = 10976 +20130613114014501-60413396 = 11237 +20130613114014517-60413397 = 11239 +20130613114014532-60413398 = 11242 +20130613114014547-60413399 = 11243 +20130613114014559-60413400 = 11238 +20130613114014569-60413401 = 11236 +20130613114014580-60413402 = 11241 +20130613114014592-60413403 = 11240 +20130613115213549-60413405 = 11034 +20130613115213564-60413406 = 11036 +20130613115213579-60413407 = 11041 +20130613115213596-60413408 = 11040 +20130613115213612-60413409 = 11038 +20130613115213628-60413410 = 11035 +20130613115213641-60413411 = 11039 +20130613115213653-60413412 = 11037 +20130614112909080-60413417 = 11043 +20130618174007738-60413554 = 11119 +20130618174007750-60413555 = 11116 +20130618174007761-60413556 = 11120 +20130618174007775-60413557 = 11121 +20130618174007789-60413558 = 11115 +20130618174007803-60413559 = 11118 +20130618174007814-60413560 = 11122 +20130618174007825-60413561 = 11117 +20130620110018465-60413603 = 11154 +20130624120616760-60414290 = 11287 +20130625104414308-60414400 = 11651 +20130625104414323-60414401 = 11649 +20130625104414340-60414402 = 11647 +20130625104414353-60414403 = 11646 +20130625104414363-60414404 = 11650 +20130625104414376-60414405 = 11652 +20130625104414388-60414406 = 11648 +20130625141901291-60414449 = 11670 +20130625141916731-60414450 = 11669 +20130625142000668-60414451 = 11671 +20130626102411175-60414476 = 11360 +20130626102411186-60414477 = 11358 +20130626102411196-60414478 = 11353 +20130626102411207-60414479 = 11354 +20130626102411220-60414480 = 11356 +20130626102411231-60414481 = 11359 +20130626102411242-60414482 = 11355 +20130626102411254-60414483 = 11357 +20130626105611184-60414485 = 11308 +20130628174412428-60414617 = 11376 +20130701110607663-60414725 = 11428 +20130701113214336-60414727 = 11477 +20130701113214354-60414728 = 11474 +20130701113214370-60414729 = 11478 +20130701113214383-60414730 = 11479 +20130701113214394-60414731 = 11473 +20130701113214409-60414732 = 11476 +20130701113214422-60414733 = 11480 +20130701113214437-60414734 = 11475 +20130705112414430-60414934 = 11730 +20130705112414449-60414935 = 11727 +20130705112414466-60414936 = 11725 +20130705112414483-60414937 = 11724 +20130705112414497-60414938 = 11729 +20130705112414512-60414939 = 11731 +20130705112414523-60414940 = 11726 +20130705112414532-60414941 = 11728 +20130708103257720-60415116 = 11763 +20130708103327927-60415117 = 11663 +20130710113610200-60415209 = 11852 +20130710113610226-60415210 = 11854 +20130710113610248-60415211 = 11851 +20130710113610263-60415212 = 11850 +20130710113610280-60415213 = 11856 +20130710113610305-60415214 = 11853 +20130710113610325-60415215 = 11849 +20130710113610341-60415216 = 11855 +20130710123609070-60415218 = 11864 +20130710123609085-60415219 = 11861 +20130710123609100-60415220 = 11857 +20130710123609114-60415221 = 11858 +20130710123609124-60415222 = 11860 +20130710123609137-60415223 = 11863 +20130710123609147-60415224 = 11859 +20130710123609159-60415225 = 11862 +20130710154612100-60415305 = 12147 +20130715094805853-60415443 = 11889 +20130715094805859-60415444 = 11893 +20130715094805865-60415445 = 11969 +20130715094805871-60415446 = 11881 +20130715094805877-60415447 = 11894 +20130715094805882-60415448 = 11899 +20130715094805888-60415449 = 11905 +20130715094805894-60415450 = 11902 +20130717104808501-60415560 = 12114 +20130717104808507-60415561 = 12116 +20130717104808513-60415562 = 12121 +20130717104808518-60415563 = 12120 +20130717104808524-60415564 = 12157 +20130717104808530-60415565 = 12166 +20130717104808535-60415566 = 12119 +20130717104808540-60415567 = 12117 +20130718112408108-60415658 = 11961 +20130718112408114-60415659 = 11963 +20130718112408120-60415660 = 11968 +20130718112408124-60415661 = 11967 +20130718112408128-60415662 = 11965 +20130718112408133-60415663 = 11962 +20130718112408138-60415664 = 11966 +20130718112408143-60415665 = 11964 +20130724161609584-60415760 = 12039 +20130724161609588-60415761 = 12037 +20130724161609593-60415762 = 12032 +20130724161609598-60415763 = 12033 +20130724161609604-60415764 = 12035 +20130724161609610-60415765 = 12038 +20130724161609614-60415766 = 12034 +20130724161609619-60415767 = 12036 +20130725154017379-60415771 = 11989 +20130805124221737-60416105 = 12203 +20130807112811862-60416132 = 12378 +20130807112811870-60416133 = 12381 +20130807112811878-60416134 = 12383 +20130807112811887-60416135 = 12384 +20130807112811895-60416136 = 12379 +20130807112811903-60416137 = 12377 +20130807112811911-60416138 = 12382 +20130807112811919-60416139 = 12380 +20130807113441652-60416141 = 12372 +20130807113441657-60416142 = 13150 +20130807113441662-60416143 = 12375 +20130807113441667-60416144 = 12374 +20130807113441672-60416145 = 12371 +20130807113441677-60416146 = 12373 +20130807113441682-60416147 = 12376 +20130807113441688-60416148 = 12369 +20130807142813334-60416167 = 12210 +20130813161813287-60416441 = 12392 +20130814120813041-60416443 = 12525 +20130814120813048-60416444 = 12531 +20130814120813055-60416445 = 12526 +20130814120813063-60416446 = 12527 +20130814120813071-60416447 = 12529 +20130814120813078-60416448 = 12524 +20130814120813086-60416449 = 12528 +20130814120813094-60416450 = 12530 +20130814123211938-60416452 = 12519 +20130814123211944-60416453 = 12522 +20130814123211948-60416454 = 12518 +20130814123211954-60416455 = 12517 +20130814123211958-60416456 = 12523 +20130814123211963-60416457 = 12520 +20130814123211968-60416458 = 12516 +20130814123211973-60416459 = 12521 +20130821162606120-60416725 = 12817 +20130821163607577-60416727 = 12637 +20130821163607585-60416728 = 12634 +20130821163607593-60416729 = 12630 +20130821163607601-60416730 = 12631 +20130821163607608-60416731 = 12633 +20130821163607616-60416732 = 12636 +20130821163607623-60416733 = 12632 +20130821163607630-60416734 = 12635 +20130821164806568-60416736 = 12699 +20130821164806574-60416737 = 12697 +20130821164806579-60416738 = 12694 +20130821164806584-60416739 = 12693 +20130821164806590-60416740 = 12698 +20130821164806595-60416741 = 12700 +20130821164806600-60416742 = 12662 +20130821164806606-60416743 = 12661 +20130823175205935-60416760 = 12656 +20130826173805228-60416906 = 12712 +20130827144845643-60416944 = 13062 +20130827144845649-60416945 = 13065 +20130827144845662-60416947 = 13060 +20130827144845668-60416948 = 13066 +20130827144845674-60416949 = 13063 +20130827144845680-60416950 = 13059 +20130827144845686-60416951 = 13064 +20130829134413141-60417057 = 12788 +20130829134413150-60417058 = 12791 +20130829134413158-60417059 = 12787 +20130829134413166-60417060 = 12786 +20130829134413174-60417061 = 12792 +20130829134413181-60417062 = 12789 +20130829134413189-60417063 = 12785 +20130829134413197-60417064 = 12790 +20130830121406372-60417117 = 12815 +20130902143517608-60417285 = 12799 +20130902143537949-60417286 = 12816 +20130902160940923-60417294 = 12834 +20130904104807932-60417326 = 12879 +20130904104807938-60417327 = 12882 +20130904104807944-60417328 = 12886 +20130904104807950-60417329 = 12885 +20130904104807956-60417330 = 12883 +20130904104807961-60417331 = 12880 +20130904104807966-60417332 = 12884 +20130904104807972-60417333 = 12881 +20130904134409267-60417335 = 12841 +20130906090602099-60417387 = 13141 +20130906090620484-60417388 = 13132 +20130906115405137-60417401 = 12914 +20130912174135997-60417716 = 13139 +20130913152721165-60417727 = 13125 +20130913152721173-60417728 = 13123 +20130913152721181-60417729 = 13128 +20130913152721189-60417730 = 13127 +20130913152721197-60417731 = 13124 +20130913152721205-60417732 = 13126 +20130913152721212-60417733 = 13129 +20130913152721220-60417734 = 13122 +20130918145007903-60417846 = 13178 +20130919112811629-60417858 = 13219 +20130919112811637-60417859 = 13221 +20130919112811646-60417860 = 13224 +20130919112811654-60417861 = 13225 +20130919112811662-60417862 = 13220 +20130919112811670-60417863 = 13218 +20130919112811678-60417864 = 13223 +20130919112811686-60417865 = 13222 +20130920172618898-60417901 = 13253 +20130927104812194-60418051 = 13311 +20130927104812195-60418052 = 13308 +20130927104812208-60418053 = 13319 +20130927104812209-60418054 = 13305 +20130927104812210-60418055 = 13310 +20130927104812211-60418056 = 13318 +20130927104812223-60418057 = 13307 +20130927104812224-60418058 = 13309 +20130927134811435-60418067 = 13265 +20131002120013797-60418202 = 13348 +20131004110009724-60418246 = 13411 +20131004110009725-60418247 = 13412 +20131004110009730-60418248 = 13413 +20131004110009731-60418249 = 13415 +20131004110009731-60418250 = 13414 +20131004110009731-60418251 = 13416 +20131004110009737-60418252 = 13418 +20131004110009737-60418253 = 13417 +20131004111008726-60418261 = 13363 +20131007162010426-60418383 = 13442 +20131011114017120-60418474 = 13497 +20131011114017120-60418475 = 13496 +20131011114017127-60418476 = 13498 +20131011114017128-60418477 = 13499 +20131011114017128-60418478 = 13500 +20131011114017128-60418479 = 13501 +20131011114017136-60418480 = 13601 +20131011114017137-60418481 = 13602 +20131011130006700-60418489 = 13519 +20131015110007223-60418674 = 13591 +20131015110007224-60418675 = 13593 +20131015110007230-60418676 = 13592 +20131015110007230-60418677 = 13594 +20131015110007230-60418678 = 13595 +20131015110007231-60418679 = 13597 +20131015110007237-60418680 = 13596 +20131015110007237-60418681 = 13598 +20131015172009634-60418706 = 13537 +20131018165212760-60418842 = 13649 +20131018165212761-60418843 = 13651 +20131018165212761-60418844 = 13650 +20131018165212762-60418845 = 13652 +20131018165212768-60418846 = 13656 +20131018165212768-60418847 = 13657 +20131023102405433-60418950 = 13894 +20131023102405433-60418951 = 13895 +20131023102405439-60418952 = 13896 +20131023102405440-60418953 = 13897 +20131023102405440-60418954 = 13898 +20131023102405440-60418955 = 13899 +20131023102405446-60418956 = 13900 +20131023102405447-60418957 = 13901 +20131025095203804-60419085 = 13768 +20131025095203805-60419086 = 13769 +20131025095203810-60419087 = 13770 +20131025095203811-60419088 = 13772 +20131025095203811-60419089 = 13771 +20131025095203812-60419090 = 13773 +20131025095203817-60419091 = 13774 +20131025095203817-60419092 = 13775 +20131025202837639-60419119 = 13776 +20131101165406593-60419352 = 13792 +20131105142030566-60419529 = 13061 +20131105142100973-60419530 = 13017 +20131108142030412-60419588 = 14162 +20131108142104759-60419589 = 14003 +20131111155008335-60419637 = 13969 +20131114110010184-60419739 = 14130 +20131114110010185-60419740 = 14129 +20131114110010192-60419741 = 14131 +20131114110010192-60419742 = 14133 +20131114110010192-60419743 = 14132 +20131114110010193-60419744 = 14134 +20131114110010199-60419745 = 14135 +20131114110010199-60419746 = 14136 +20131114111210300-60419754 = 14268 +20131114111210301-60419755 = 14274 +20131114111210310-60419756 = 14101 +20131114111210311-60419757 = 14102 +20131114111210312-60419758 = 14104 +20131114111210313-60419759 = 14109 +20131114111210324-60419760 = 14114 +20131114111210325-60419761 = 14115 +20131115163412618-60419839 = 14021 +20131118164008350-60420015 = 14415 +20131119121606842-60420018 = 14265 +20131119121606843-60420019 = 14266 +20131119121606852-60420020 = 14267 +20131119121606853-60420021 = 14270 +20131119121606854-60420022 = 14269 +20131119121606854-60420023 = 14271 +20131119121606873-60420024 = 14272 +20131119121606873-60420025 = 14273 +20131121114413383-60420074 = 14794 +20131121114413384-60420075 = 14791 +20131121114413395-60420076 = 14789 +20131121114413396-60420077 = 14788 +20131121114413397-60420078 = 14793 +20131121114413398-60420079 = 14795 +20131121114413411-60420080 = 14790 +20131121114413412-60420081 = 14792 +20131121163507727-60420154 = 14182 +20131122142806949-60420313 = 14327 +20131122142806949-60420314 = 14328 +20131122142806966-60420315 = 14329 +20131122142806968-60420316 = 14330 +20131122142806969-60420317 = 14331 +20131122142806971-60420318 = 14332 +20131122142806989-60420319 = 14333 +20131122142806990-60420320 = 14334 +20131122162206517-60420328 = 14295 +20131126140408758-60420451 = 14408 +20131126140408758-60420452 = 14409 +20131126140408769-60420453 = 14410 +20131126140408770-60420454 = 14411 +20131126140408770-60420455 = 15089 +20131126140408771-60420456 = 14412 +20131126140408781-60420457 = 14413 +20131126140408782-60420458 = 14414 +20131202092013861-60420547 = 14391 +20131202154006378-60420696 = 14518 +20131202154006379-60420697 = 14519 +20131202154006385-60420698 = 14520 +20131202154006386-60420699 = 14521 +20131202154006386-60420700 = 14522 +20131202154006386-60420701 = 14523 +20131202154006392-60420702 = 14524 +20131202154006392-60420703 = 14525 +20131204171005384-60420763 = 14536 +20131206125614455-60420950 = 14621 +20131206125614456-60420951 = 14623 +20131206125614463-60420952 = 14622 +20131206125614463-60420953 = 14624 +20131206125614464-60420954 = 15076 +20131206125614464-60420955 = 14626 +20131206125614470-60420956 = 14627 +20131206125614471-60420957 = 14628 +20131212112413284-60421230 = 14947 +20131212112413284-60421231 = 14948 +20131212112413290-60421232 = 14949 +20131212112413290-60421233 = 14950 +20131212112413291-60421234 = 14951 +20131212112413291-60421235 = 14952 +20131212112413296-60421236 = 14953 +20131212112413296-60421237 = 14954 +20131212113603087-60421245 = 14939 +20131212113603087-60421246 = 14940 +20131212113603093-60421247 = 14941 +20131212113603093-60421248 = 14942 +20131212113603093-60421249 = 14943 +20131212113603094-60421250 = 14944 +20131212113603099-60421251 = 14945 +20131212113603100-60421252 = 14946 +20131220120710186-60421442 = 14818 +20140110142404260-60422610 = 15078 +20140110142404467-60422611 = 15079 +20140110142404468-60422612 = 15080 +20140110142404468-60422613 = 15082 +20140110142404468-60422614 = 15081 +20140110142404475-60422615 = 15083 +20140110142404475-60422616 = 15084 +20140110142404475-60422617 = 15087 +20140110142803884-60422625 = 15330 +20140110142803884-60422626 = 15331 +20140110142803894-60422627 = 15332 +20140110142803894-60422628 = 15333 +20140110142803894-60422629 = 15334 +20140110142803894-60422630 = 15335 +20140110142803902-60422631 = 15336 +20140110142803902-60422632 = 15337 +20140110151504471-60422670 = 14987 +20140114144409179-60422847 = 15153 +20140114144409179-60422848 = 15154 +20140114144409184-60422849 = 15155 +20140114144409185-60422850 = 15157 +20140114144409185-60422851 = 15156 +20140114144409185-60422852 = 15158 +20140114144409190-60422853 = 15159 +20140114144409191-60422854 = 15160 +20140117162308688-60423026 = 15171 +20140120143606073-60423047 = 15394 +20140120143606074-60423048 = 15395 +20140120143606079-60423049 = 15396 +20140120143606079-60423050 = 15407 +20140120143606080-60423051 = 15398 +20140120143606080-60423052 = 15408 +20140120143606085-60423053 = 15697 +20140120143606085-60423054 = 15400 +20140120170306862-60423064 = 15353 +20140124114016050-60423426 = 15487 +20140124114016050-60423427 = 15488 +20140124114016056-60423428 = 15489 +20140124114016056-60423429 = 15499 +20140124114016057-60423430 = 15491 +20140124114016057-60423431 = 15493 +20140124114016069-60423432 = 15492 +20140124114016069-60423433 = 15494 +20140124152112477-60423441 = 15425 +20140127131612178-60423555 = 15521 +20140127131612179-60423556 = 15522 +20140127131612183-60423557 = 15524 +20140127131612184-60423558 = 15523 +20140127131612184-60423559 = 15525 +20140127131612184-60423560 = 15526 +20140127131612189-60423561 = 15528 +20140127131612190-60423562 = 15527 +20140129104028864-60423588 = 15680 +20140129104028865-60423589 = 15681 +20140129104028873-60423590 = 15682 +20140129104028873-60423591 = 15683 +20140129104028874-60423592 = 15684 +20140129104028874-60423593 = 15685 +20140129104028883-60423594 = 15686 +20140129104028883-60423595 = 15687 +20140205135610551-60423658 = 15860 +20140205135610639-60423659 = 15861 +20140205135610639-60423660 = 15862 +20140205135610640-60423661 = 15863 +20140205135610640-60423662 = 16019 +20140205135610646-60423663 = 15865 +20140205135610646-60423664 = 15866 +20140205135610647-60423665 = 15867 +20140213142813006-60424044 = 15772 +20140213142813006-60424045 = 15773 +20140213142813013-60424046 = 15774 +20140213142813014-60424047 = 15775 +20140213142813014-60424048 = 15776 +20140213142813014-60424049 = 15777 +20140213142813021-60424050 = 15778 +20140213142813021-60424051 = 15779 +20140217145510801-60424219 = 15893 +20140218103205245-60424329 = 16009 +20140218103205246-60424330 = 16010 +20140218103205261-60424331 = 16011 +20140218103205261-60424332 = 16012 +20140218103205262-60424333 = 16013 +20140218103205263-60424334 = 16014 +20140218103205273-60424335 = 16015 +20140218103205274-60424336 = 16016 +20140219111604836-60424374 = 15942 +20140219111604837-60424375 = 15943 +20140219111604845-60424376 = 15944 +20140219111604846-60424377 = 15945 +20140219111604846-60424378 = 15946 +20140219111604847-60424379 = 15947 +20140219111604855-60424380 = 15948 +20140219111604856-60424381 = 15949 +20140219141510503-60424393 = 15917 +20140221170112019-60424409 = 15929 +20140227141608673-60424469 = 16210 +20140227141608673-60424470 = 16211 +20140227141608682-60424471 = 16212 +20140227141608682-60424472 = 16482 +20140227141608683-60424473 = 16214 +20140227141608683-60424474 = 16215 +20140227141608691-60424475 = 16216 +20140227141608691-60424476 = 16484 +20140304150510853-60424623 = 16036 +20140305145210354-60424625 = 16438 +20140305145210355-60424626 = 16439 +20140305145210362-60424627 = 16440 +20140305145210362-60424628 = 16441 +20140305145210362-60424629 = 16442 +20140305145210363-60424630 = 16443 +20140305145210370-60424631 = 16444 +20140305145210370-60424632 = 16445 +20140306115512333-60424664 = 16437 +20140313145211262-60425055 = 16327 +20140313145211263-60425056 = 16326 +20140313145211278-60425057 = 16328 +20140313145211279-60425058 = 16329 +20140313145211280-60425059 = 16330 +20140313145211281-60425060 = 16333 +20140313145211290-60425061 = 16331 +20140313145211291-60425062 = 16332 +20140314161519895-60425087 = 16436 +20140321174107914-60425292 = 16565 +20140328111212420-60425552 = 16751 +20140328111212421-60425553 = 16752 +20140328111212428-60425554 = 16753 +20140328111212429-60425555 = 16754 +20140328111212429-60425556 = 16763 +20140328111212430-60425557 = 16759 +20140328111212438-60425558 = 16760 +20140328111212439-60425559 = 16761 +20140328113731678-60425570 = 16581 +20140402112012490-60425661 = 16648 +20140402112012933-60425662 = 16649 +20140402112012934-60425663 = 16650 +20140402112012934-60425664 = 16651 +20140402112012935-60425665 = 16652 +20140402112012947-60425666 = 16653 +20140402112012948-60425667 = 16654 +20140402112012948-60425668 = 16655 +20140415105212228-60426262 = 17052 +20140415105212229-60426263 = 17069 +20140415105212239-60426264 = 17035 +20140415105212240-60426265 = 17018 +20140415105212241-60426266 = 16890 +20140415105212241-60426267 = 16870 +20140415105212254-60426268 = 16871 +20140415105212255-60426269 = 16872 +20140416172503952-60426283 = 16779 +20140422143708070-60426516 = 17000 +20140422155048794-60426528 = 16983 +20140422155048795-60426529 = 16984 +20140424104805884-60426824 = 17327 +20140424104805885-60426825 = 17328 +20140424104805893-60426826 = 17329 +20140424104805894-60426827 = 17388 +20140424104805895-60426828 = 17390 +20140424104805895-60426829 = 17392 +20140424104805904-60426830 = 17333 +20140424104805905-60426831 = 17334 +20140424110005802-60426839 = 17153 +20140424110005802-60426840 = 17154 +20140424110005810-60426841 = 17351 +20140424110005810-60426842 = 17368 +20140424110005811-60426843 = 17156 +20140424110005812-60426844 = 17158 +20140424110005821-60426845 = 17159 +20140424110005821-60426846 = 17160 +20140430110109414-60427134 = 17177 +20140430150410645-60427139 = 17230 +20140430150410645-60427140 = 17231 +20140430150410649-60427141 = 17232 +20140430150410649-60427142 = 17233 +20140430150410649-60427143 = 17234 +20140430150410650-60427144 = 17235 +20140430150410654-60427145 = 17321 +20140430150410654-60427146 = 17237 +20140506110609691-60427435 = 17386 +20140509113005970-60427555 = 17468 +20140509113005971-60427556 = 17469 +20140509113005978-60427557 = 17470 +20140509113005978-60427558 = 17471 +20140509113005979-60427559 = 17472 +20140509113005979-60427560 = 17473 +20140509113005987-60427561 = 17474 +20140509113005987-60427562 = 17475 +20140509113606735-60427571 = 17467 +20140512175108185-60427796 = 17490 +20140513111008692-60427850 = 17596 +20140513111008692-60427851 = 17675 +20140513111008700-60427852 = 17681 +20140513111008700-60427853 = 17669 +20140513111008701-60427854 = 17699 +20140513111008701-60427855 = 17717 +20140513111008708-60427856 = 17740 +20140513111008709-60427857 = 17763 +20140514144611529-60427884 = 17507 +20140516132112391-60427905 = 17523 +20140523172009416-60428050 = 17829 +20140523172009417-60428051 = 17830 +20140523172009422-60428052 = 17831 +20140523172009422-60428053 = 17832 +20140523172009422-60428054 = 17870 +20140523172009423-60428055 = 17852 +20140523172009427-60428056 = 17867 +20140523172009428-60428057 = 17836 +20140529135113917-60428571 = 17883 +20140605105012665-60428619 = 17972 +20140605105012764-60428620 = 17993 +20140605105012764-60428621 = 17974 +20140605105012765-60428622 = 17975 +20140605105012766-60428623 = 17976 +20140605105012775-60428624 = 17977 +20140605105012776-60428625 = 17978 +20140605105012777-60428626 = 18011 +20140613104007999-60428953 = 18104 +20140613104007999-60428954 = 18105 +20140613104008007-60428955 = 18106 +20140613104008007-60428956 = 18107 +20140613104008008-60428957 = 18108 +20140613104008008-60428958 = 18109 +20140613104008016-60428959 = 18110 +20140613104008016-60428960 = 18111 +20140620143018384-60429220 = 18164 +20140620143018384-60429221 = 18174 +20140620143018392-60429222 = 18184 +20140620143018393-60429223 = 18194 +20140620143018393-60429224 = 18197 +20140620143018394-60429225 = 18209 +20140620143018402-60429226 = 18217 +20140620143018403-60429227 = 18225 +20140620143106333-60429235 = 18143 +20140624143606562-60429292 = 18236 +20140624151006324-60429295 = 18769 +20140624151006324-60429296 = 18770 +20140624151006329-60429297 = 18771 +20140624151006329-60429298 = 18772 +20140624151006329-60429299 = 18773 +20140624151006330-60429300 = 18774 +20140624151006336-60429301 = 18775 +20140624151006336-60429302 = 18776 +20140627132335012-60429440 = 18324 +20140627132335012-60429441 = 18325 +20140627132335018-60429442 = 18326 +20140627132335018-60429443 = 18327 +20140627132335018-60429444 = 18328 +20140627132335019-60429445 = 18329 +20140627132335024-60429446 = 18330 +20140627132335024-60429447 = 18331 +20140627155108193-60429559 = 18246 +20140630141602041-60429677 = 18342 +20140702125014596-60429692 = 18474 +20140702125014644-60429693 = 18475 +20140702125014645-60429694 = 18625 +20140702125014645-60429695 = 18626 +20140702125014645-60429696 = 18627 +20140702125014651-60429697 = 18628 +20140702125014651-60429698 = 18629 +20140702125014651-60429699 = 18630 +20140704100601563-60430085 = 18786 +20140707165557451-60430698 = 18796 +20140708114017423-60430701 = 18861 +20140708114017424-60430702 = 18862 +20140708114017431-60430703 = 18863 +20140708114017432-60430704 = 18864 +20140708114017432-60430705 = 18865 +20140708114017433-60430706 = 18866 +20140708114017440-60430707 = 18867 +20140708114017441-60430708 = 18868 +20140710145057605-60430747 = 18885 +20140714141548837-60430876 = 18896 +20140717174541634-60430895 = 18915 +20140718104020398-60430905 = 19086 +20140718104020399-60430906 = 19093 +20140718104020407-60430907 = 19094 +20140718104020407-60430908 = 19095 +20140718104020407-60430909 = 19096 +20140718104020408-60430910 = 19102 +20140718104020417-60430911 = 19105 +20140718104020418-60430912 = 19106 +20140718104023349-60430920 = 18993 +20140718104023349-60430921 = 19045 +20140718104023356-60430922 = 19001 +20140718104023357-60430923 = 19040 +20140718104023357-60430924 = 19009 +20140718104023358-60430925 = 19017 +20140718104023365-60430926 = 19025 +20140718104023366-60430927 = 19039 +20140721160556661-60431065 = 19193 +20140724160558620-60431314 = 19194 +20140729175550270-60431401 = 19299 +20140729175550270-60431402 = 19301 +20140730154007668-60431471 = 19458 +20140730154007668-60431472 = 19460 +20140730154007674-60431473 = 19517 +20140730154007674-60431474 = 19544 +20140730154007674-60431475 = 19547 +20140730154007675-60431476 = 19550 +20140730154007680-60431477 = 19554 +20140730154007681-60431478 = 19556 +20140730154010407-60431486 = 19392 +20140730154010408-60431487 = 19393 +20140730154010418-60431488 = 19394 +20140730154010419-60431489 = 19395 +20140730154010420-60431490 = 19396 +20140730154010420-60431491 = 19397 +20140730154010429-60431492 = 19398 +20140730154010429-60431493 = 19399 +20140730160819590-60431501 = 20014 +20140731111600088-60431657 = 19305 +20140805155555874-60431970 = 19410 +20140807132014902-60431981 = 19545 +20140807132014903-60431982 = 19546 +20140807132014911-60431983 = 19548 +20140807132014911-60431984 = 19549 +20140807132014912-60431985 = 19551 +20140807132014912-60431986 = 19552 +20140807132014919-60431987 = 19553 +20140807132014920-60431988 = 19555 +20140808152414016-60432007 = 19688 +20140808152414017-60432008 = 19689 +20140808152414029-60432009 = 19690 +20140808152414030-60432010 = 19691 +20140808152414031-60432011 = 19692 +20140808152414032-60432012 = 19693 +20140808152414037-60432013 = 19812 +20140808152414038-60432014 = 19695 +20140811164056097-60432513 = 19724 +20140811191926392-60432519 = 19950 +20140812171543248-60432577 = 19803 +20140814104008736-60432583 = 20582 +20140814104008736-60432584 = 20619 +20140814104009043-60432585 = 20633 +20140814104009043-60432586 = 20635 +20140814104009044-60432587 = 20636 +20140814104009045-60432588 = 20638 +20140814104009063-60432589 = 20640 +20140814104009064-60432590 = 20643 +20140814104013004-60432598 = 20634 +20140814104013004-60432599 = 20637 +20140814104013033-60432600 = 20639 +20140814104013034-60432601 = 20641 +20140814104013034-60432602 = 20642 +20140814104013034-60432603 = 20644 +20140814104013049-60432604 = 20645 +20140814104013050-60432605 = 20646 +20140814141847739-60432623 = 19932 +20140818162702633-60432764 = 20223 +20140818162702633-60432765 = 20224 +20140818162702638-60432766 = 20225 +20140818162702639-60432767 = 20226 +20140818162702639-60432768 = 20227 +20140818162702640-60432769 = 20228 +20140818162702647-60432770 = 20292 +20140818162702647-60432771 = 20293 +20140819111555148-60432826 = 19962 +20140819143650772-60432831 = 19882 +20140819143650773-60432832 = 19883 +20140819143650782-60432833 = 19884 +20140819143650782-60432834 = 19885 +20140819143650783-60432835 = 19886 +20140819143650783-60432836 = 19887 +20140819143650793-60432837 = 20817 +20140819143650793-60432838 = 19890 +20140819143651000-60432846 = 19902 +20140822160653006-60433231 = 20239 +20140825142452246-60433514 = 20494 +20140827122044098-60434216 = 20769 +20140827145435986-60434219 = 20748 +20140903140639280-60434380 = 20773 +20140904140042238-60434387 = 20777 +20140919182158742-60434432 = 20812 +20140923113013853-60434782 = 21629 +20140923113013853-60434783 = 21630 +20140923113013858-60434784 = 21631 +20140923113013858-60434785 = 21632 +20140923113013858-60434786 = 21633 +20140923113013858-60434787 = 21634 +20140923113013863-60434788 = 21635 +20140923113013863-60434789 = 21636 +20140923135616632-60434801 = 21341 +20140923135616633-60434802 = 21342 +20140923135616638-60434803 = 21343 +20140923135616638-60434804 = 21344 +20140923135616639-60434805 = 21345 +20140923135616639-60434806 = 21346 +20140923135616645-60434807 = 21347 +20140923135616645-60434808 = 21348 +20140923143646999-60434816 = 21017 +20140923171102253-60434829 = 20856 +20140924142512654-60435113 = 21051 +20140925102442861-60435390 = 21151 +20140926131051939-60435801 = 21453 +20140926155612679-60435881 = 21425 +20140926155612679-60435882 = 21438 +20140926155612685-60435883 = 21427 +20140926155612685-60435884 = 21428 +20140926155612685-60435885 = 21429 +20140926155612686-60435886 = 21430 +20140926155612692-60435887 = 21431 +20140926155612693-60435888 = 21432 +20140926190040148-60435900 = 21401 +20140929171059197-60436286 = 21463 +20141002134330903-60436331 = 21475 +20141002141112392-60436333 = 21485 +20141006120222313-60436368 = 21628 +20141009160009792-60436577 = 21728 +20141009160009792-60436578 = 21729 +20141009160009797-60436579 = 21730 +20141009160009798-60436580 = 21731 +20141009160009798-60436581 = 21732 +20141009160009799-60436582 = 21733 +20141009160009804-60436583 = 21734 +20141009160009805-60436584 = 21735 +20141010155651744-60436599 = 21649 +20141010164013595-60436601 = 21774 +20141010164013596-60436602 = 21775 +20141010164013602-60436603 = 21776 +20141010164013602-60436604 = 21777 +20141010164013603-60436605 = 21778 +20141010164013604-60436606 = 21779 +20141010164013611-60436607 = 21780 +20141010164013612-60436608 = 21781 +20141015151047371-60436916 = 21818 +20141016180637883-60437256 = 21806 +20141017134839107-60437290 = 21830 +20141017141607122-60437293 = 22196 +20141017141607122-60437294 = 22199 +20141017151042654-60437297 = 22047 +20141020152457176-60437348 = 22093 +20141027110822794-60437421 = 22707 +20141027110822795-60437422 = 22799 +20141027110822801-60437423 = 22709 +20141027110822801-60437424 = 22711 +20141027110822802-60437425 = 22712 +20141027110822803-60437426 = 22714 +20141027110822809-60437427 = 22715 +20141027110822809-60437428 = 22717 +20141027110826201-60437436 = 22706 +20141027110826201-60437437 = 22710 +20141027110826206-60437438 = 22713 +20141027110826206-60437439 = 22716 +20141027110826206-60437440 = 22718 +20141027110826207-60437441 = 22719 +20141027110826212-60437442 = 22720 +20141027110826212-60437443 = 22789 +20141027111048941-60437451 = 21992 +20141027111048942-60437452 = 22094 +20141027111048948-60437453 = 22194 +20141027111048949-60437454 = 22195 +20141027111048949-60437455 = 22197 +20141027111048950-60437456 = 22198 +20141027111048961-60437457 = 22200 +20141027111048962-60437458 = 22201 +20141027111159189-60437466 = 22827 +20141027124728791-60437491 = 22840 +20141028170150992-60438459 = 22790 +20141029161045722-60438957 = 22855 +20141030161047748-60439004 = 22880 +20141031110527749-60439022 = 22901 +20141031110527749-60439023 = 22902 +20141031110527756-60439024 = 22903 +20141031110527757-60439025 = 24628 +20141031110527757-60439026 = 22904 +20141031110527758-60439027 = 24629 +20141031110527764-60439028 = 22905 +20141031110527765-60439029 = 22906 +20141031164811019-60439037 = 23195 +20141031164811020-60439038 = 23196 +20141031164811026-60439039 = 23197 +20141031164811027-60439040 = 23198 +20141031164811028-60439041 = 23199 +20141031164811029-60439042 = 23200 +20141031164811037-60439043 = 23201 +20141031164811037-60439044 = 23202 +20141104171047374-60439240 = 25953 +20141104172015021-60439243 = 23007 +20141106102020238-60439280 = 24107 +20141106102020239-60439281 = 24108 +20141106102020245-60439282 = 24109 +20141106102020245-60439283 = 24110 +20141106102020246-60439284 = 24111 +20141106102020246-60439285 = 24127 +20141106102020254-60439286 = 24128 +20141106102020254-60439287 = 24129 +20141106165613994-60439423 = 23423 +20141106165613994-60439424 = 23424 +20141110160637787-60439802 = 23890 +20141112092310133-60440551 = 23943 +20141114141838916-60440819 = 24130 +20141118144815685-60441078 = 24442 +20141118144815686-60441079 = 24434 +20141118144815703-60441080 = 24456 +20141118144815703-60441081 = 24470 +20141118144815704-60441082 = 24484 +20141118144815705-60441083 = 24498 +20141118144815717-60441084 = 24508 +20141118144815719-60441085 = 24518 +20141118174858623-60441167 = 24630 +20141125162445037-60441623 = 24587 +20141127171042300-60441668 = 24627 +20141128174815756-60441671 = 24919 +20141128174815756-60441672 = 24920 +20141128174815764-60441673 = 24921 +20141128174815765-60441674 = 24971 +20141128174815766-60441675 = 24923 +20141128174815766-60441676 = 24924 +20141128174815775-60441677 = 24925 +20141128174815776-60441678 = 24926 +20141201151036410-60441746 = 24947 +20141204122958560-60442407 = 25006 +20141204123057780-60442408 = 25005 +20141204123124315-60442409 = 25004 +20141204123237308-60442410 = 25003 +20141204123308629-60442411 = 25002 +20141204144842975-60442474 = 25202 +20141204153227792-60442477 = 25303 +20141204153227793-60442478 = 25327 +20141204153227801-60442479 = 25328 +20141204153227801-60442480 = 25329 +20141204153227802-60442481 = 25495 +20141204153227803-60442482 = 25331 +20141204153227809-60442483 = 25332 +20141204153227810-60442484 = 25496 +20141205132533103-60442949 = 25434 +20141208153049627-60443223 = 25442 +20141209141052407-60443243 = 27141 +20141209154907816-60443246 = 25508 +20141210165321840-60443373 = 25547 +20141212080302177-60443593 = 26042 +20141212093855654-60443611 = 25558 +20141212094000169-60443612 = 27253 +20141212094034526-60443613 = 25560 +20141212140006907-60443652 = 25814 +20141212140006907-60443653 = 25864 +20141212140006911-60443654 = 25890 +20141212140006911-60443655 = 25892 +20141212140006912-60443656 = 25894 +20141212140006912-60443657 = 25897 +20141212140006916-60443658 = 25899 +20141212140006916-60443659 = 25901 +20141212140008327-60443667 = 25891 +20141212140008328-60443668 = 25893 +20141212140008332-60443669 = 25895 +20141212140008333-60443670 = 25896 +20141212140008333-60443671 = 25898 +20141212140008333-60443672 = 25900 +20141212140008337-60443673 = 25902 +20141212140008337-60443674 = 25903 +20141212141037031-60443682 = 25927 +20141217140043269-60444854 = 26419 +20141217150011795-60444860 = 26572 +20141217150011795-60444861 = 26573 +20141217150011800-60444862 = 26574 +20141217150011800-60444863 = 26871 +20141217150011801-60444864 = 26576 +20141217150011805-60444866 = 26577 +20141217150011806-60444867 = 26578 +20141217153213800-60444875 = 26770 +20141217153213800-60444876 = 26771 +20141217153213807-60444877 = 26772 +20141217153213808-60444878 = 26773 +20141217153213808-60444879 = 26774 +20141217153213809-60444880 = 26775 +20141219111057430-60445308 = 26471 +20141219134243854-60445311 = 26446 +20150106122936809-60445847 = 26908 +20150106123145774-60445848 = 26907 +20150107142414241-60446074 = 27130 +20150107142414343-60446075 = 27134 +20150107151040832-60446082 = 27216 +20150109182612046-60446614 = 27218 +20150112164844156-60446694 = 27217 +20150113135059402-60446720 = 27254 +20150113181038196-60446726 = 27255 +20150114145610761-60446773 = 27709 +20150114145610761-60446774 = 27710 +20150114145610769-60446775 = 27711 +20150114145610770-60446776 = 27712 +20150114145610771-60446777 = 27713 +20150114145610771-60446778 = 27714 +20150114145610779-60446779 = 27715 +20150114145610780-60446780 = 27716 +20150114151040461-60446788 = 27576 +20150114174841821-60446851 = 27548 +20150115151611369-60447576 = 27733 +20150115161035851-60447578 = 27762 +20150116155430381-60447855 = 27775 +20150119154846406-60447872 = 28069 +20150120114859703-60448169 = 28084 +20150120140809720-60448171 = 28223 +20150120140809721-60448172 = 28224 +20150120140809728-60448173 = 28225 +20150120140809729-60448174 = 28226 +20150120140809729-60448175 = 28227 +20150120140809730-60448176 = 28228 +20150120140809734-60448177 = 28229 +20150120140809734-60448178 = 28230 +20150120141040639-60448186 = 28275 +20150121183648199-60448463 = 28246 +20150122132017672-60448496 = 28272 +20150123112101211-60448526 = 28256 +20150123112316771-60448528 = 28253 +20150123144814364-60448533 = 28515 +20150123144814365-60448534 = 28541 +20150123144814372-60448535 = 28599 +20150123144814373-60448536 = 28558 +20150123144814373-60448537 = 28560 +20150123144814374-60448538 = 28577 +20150123144814380-60448539 = 28578 +20150123144814380-60448540 = 28580 +20150123144818261-60448548 = 28579 +20150123144818262-60448549 = 28581 +20150123144818266-60448550 = 28582 +20150123144818266-60448551 = 28583 +20150123144818267-60448552 = 28584 +20150123144818267-60448553 = 28585 +20150123144818271-60448554 = 28586 +20150123144818271-60448555 = 28587 +20150129162423877-60449146 = 29009 +20150129162423878-60449147 = 29010 +20150129162435864-60449149 = 29029 +20150129162435864-60449150 = 29031 +20150130141816705-60449255 = 29033 +20150130164611981-60449290 = 28809 +20150202161247001-60449982 = 29115 +20150203153205865-60450067 = 29277 +20150203153205866-60450068 = 29278 +20150203153205871-60450069 = 29279 +20150203153205872-60450070 = 29280 +20150203153205873-60450071 = 29281 +20150203153205873-60450072 = 29282 +20150203153205880-60450073 = 29283 +20150203153205884-60450074 = 29284 +20150203153208776-60450082 = 29612 +20150203153208776-60450083 = 29613 +20150203153208782-60450084 = 29614 +20150203153208782-60450085 = 29615 +20150203153208783-60450086 = 29616 +20150203153208783-60450087 = 29617 +20150203153208791-60450088 = 29618 +20150203153208792-60450089 = 29619 +20150204174817644-60450130 = 29126 +20150205174243591-60450346 = 29300 +20150206143332727-60450366 = 29317 +20150209152943307-60450432 = 29399 +20150210144011059-60450516 = 29534 +20150210144011060-60450517 = 29535 +20150210144011075-60450518 = 29536 +20150210144011075-60450519 = 29537 +20150210144011076-60450520 = 29538 +20150210144011077-60450521 = 29539 +20150210144011087-60450522 = 29540 +20150210144011088-60450523 = 29541 +20150210161843154-60450531 = 29416 +20150213144812415-60450886 = 29937 +20150213144812416-60450887 = 29938 +20150213144812426-60450888 = 29939 +20150213144812426-60450889 = 29940 +20150213144812427-60450890 = 29941 +20150213144812428-60450891 = 29942 +20150213144812435-60450892 = 29943 +20150213144812435-60450893 = 29944 +20150213144815962-60450901 = 29973 +20150213144815962-60450902 = 29974 +20150213144815970-60450903 = 29975 +20150213144815972-60450904 = 29976 +20150213144815973-60450905 = 29977 +20150213144815973-60450906 = 29978 +20150213144815983-60450907 = 29979 +20150213144815984-60450908 = 29980 +20150216174841182-60450950 = 29630 +20150217142446922-60451046 = 29715 +20150218154906604-60451332 = 30004 +20150219121044340-60451481 = 30188 +20150219140019875-60451484 = 30136 +20150219140019876-60451485 = 30137 +20150219140019890-60451486 = 30138 +20150219140019891-60451487 = 30139 +20150219140019892-60451488 = 30140 +20150219140019892-60451489 = 30141 +20150219140019900-60451490 = 30142 +20150219140019901-60451491 = 30143 +20150219164548240-60451552 = 30035 +20150220171839966-60451594 = 30064 +20150224140541688-60451942 = 30246 +20150224161618336-60451945 = 30216 +20150225132544491-60452020 = 30284 diff --git a/deep_sequencing_unit/tracking/etc/tracking-local-database b/deep_sequencing_unit/tracking/etc/tracking-local-database index e5d311474237f0295dba3d5aa85d34725a16b888..af910cae04a252efd15b263014782c6389a828dd 100644 --- a/deep_sequencing_unit/tracking/etc/tracking-local-database +++ b/deep_sequencing_unit/tracking/etc/tracking-local-database @@ -1,3 +1,2 @@ -lastSeenDatasetId 392 trackedSamplesToBeProcessed 1 2 3 4 5 -trackedSamplesProcessedSuccessfully 1 2 3 \ No newline at end of file +trackedSamplesProcessedSuccessfully 1 2 3 diff --git a/deep_sequencing_unit/tracking/etc/tracking-sample-database b/deep_sequencing_unit/tracking/etc/tracking-sample-database new file mode 100644 index 0000000000000000000000000000000000000000..dac98d90e944bc053977acfcbba340491d3570e8 --- /dev/null +++ b/deep_sequencing_unit/tracking/etc/tracking-sample-database @@ -0,0 +1 @@ +20090901100144407-102 = 192 \ No newline at end of file