FALCON-30 Enable embedding pig scripts directly in a process. Contributed by Venkatesh Seetharam
diff --git a/CHANGES.txt b/CHANGES.txt
index 82cf4ae..8bc6646 100755
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -8,6 +8,9 @@
 
   IMPROVEMENTS
 
+    FALCON-30 Enable embedding pig scripts directly in a process. (Venkatesh
+    Seetharam via Srikanth Sundarrajan)
+
     FALCON-47 Falcon Replication should support configurable delays in feed, 
     parallel, timeout and bulk transfer with variable frequency (Shaik Idris
     Ali via Srikanth Sundarrajan)
diff --git a/client/src/main/resources/process-0.1.xsd b/client/src/main/resources/process-0.1.xsd
index 529d5c8..c96700c 100644
--- a/client/src/main/resources/process-0.1.xsd
+++ b/client/src/main/resources/process-0.1.xsd
@@ -283,7 +283,7 @@
     </xs:complexType>
 
     <xs:complexType name="workflow">
-        <xs:attribute type="engine-type" name="engine" use="optional"/>
+        <xs:attribute type="engine-type" name="engine" use="optional" default="oozie"/>
         <xs:attribute type="xs:string" name="path" use="required"/>
         <xs:attribute type="xs:string" name="lib" use="optional"/>
     </xs:complexType>
@@ -291,6 +291,7 @@
     <xs:simpleType name="engine-type">
         <xs:restriction base="xs:string">
             <xs:enumeration value="oozie"/>
+            <xs:enumeration value="pig"/>
         </xs:restriction>
     </xs:simpleType>
 
diff --git a/docs/src/site/twiki/EntitySpecification.twiki b/docs/src/site/twiki/EntitySpecification.twiki
index bae2612..ef86055 100644
--- a/docs/src/site/twiki/EntitySpecification.twiki
+++ b/docs/src/site/twiki/EntitySpecification.twiki
@@ -394,12 +394,25 @@
         <property name="queueName" value="hadoopQueue"/>
         <property name="jobPriority" value="VERY_HIGH"/>
 </verbatim>
+
 ---++++ Workflow
-The workflow defines the workflow engine that should be used and the path to the workflow on hdfs. The workflow definition on hdfs contains the actual job that should run and it should confirm to the workflow specification of the engine specified. The libraries required by the workflow should be in lib folder inside the workflow path.
 
-The properties defined in the cluster and cluster properties(nameNode and jobTracker) will also be available for the workflow.
+The workflow defines the workflow engine that should be used and the path to the workflow on hdfs.
+The workflow definition on hdfs contains the actual job that should run and it should confirm to
+the workflow specification of the engine specified. The libraries required by the workflow should
+be in lib folder inside the workflow path.
 
-As of now, only oozie workflow engine is supported. Refer to oozie [[http://incubator.apache.org/oozie/overview.html][workflow overview]] and [[http://incubator.apache.org/oozie/docs/3.1.3/docs/WorkflowFunctionalSpec.html][workflow specification]] for details.  
+The properties defined in the cluster and cluster properties(nameNode and jobTracker) will also
+be available for the workflow.
+
+There are 2 engines supported today.
+
+---+++++ Oozie
+
+As part of oozie workflow engine support, users can embed a oozie workflow.
+Refer to oozie [[http://incubator.apache.org/oozie/overview.html][workflow overview]] and
+[[http://incubator.apache.org/oozie/docs/3.1.3/docs/WorkflowFunctionalSpec.html][workflow specification]] for details.
+
 Syntax:
 <verbatim>
 <process name="[process name]">
@@ -417,7 +430,25 @@
 ...
 </process>
 </verbatim>
-This defines the workflow engine to be oozie and the workflow xml is defined at /projects/bootcamp/workflow/workflow.xml. The libraries are at /projects/bootcamp/workflow/lib.
+
+This defines the workflow engine to be oozie and the workflow xml is defined at
+/projects/bootcamp/workflow/workflow.xml. The libraries are at /projects/bootcamp/workflow/lib.
+
+---+++++ Pig
+
+Falcon also adds the Pig engine which enables users to embed a Pig script as a process.
+
+Example:
+<verbatim>
+<process name="sample-process">
+...
+    <workflow engine="pig" path="/projects/bootcamp/pig.script"/>
+...
+</process>
+</verbatim>
+
+This defines the workflow engine to be pig and the pig script is defined at
+/projects/bootcamp/pig.script.
 
 ---++++ Retry
 Retry policy defines how the workflow failures should be handled. Two retry policies are defined: backoff and exp-backoff(exponential backoff). Depending on the delay and number of attempts, the workflow is re-tried after specific intervals.
diff --git a/oozie/src/main/java/org/apache/falcon/logging/LogMover.java b/oozie/src/main/java/org/apache/falcon/logging/LogMover.java
index 4021464..e8a85c6 100644
--- a/oozie/src/main/java/org/apache/falcon/logging/LogMover.java
+++ b/oozie/src/main/java/org/apache/falcon/logging/LogMover.java
@@ -23,6 +23,7 @@
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.falcon.entity.v0.EntityType;
+import org.apache.falcon.entity.v0.process.EngineType;
 import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
@@ -64,6 +65,7 @@
         private String runId;
         private String logDir;
         private String entityType;
+        private String userWorkflowEngine;
     }
 
     public static void main(String[] args) throws Exception {
@@ -75,6 +77,7 @@
         try {
             ARGS args = new ARGS();
             setupArgs(arguments, args);
+
             OozieClient client = new OozieClient(args.oozieUrl);
             WorkflowJob jobInfo;
             try {
@@ -83,17 +86,18 @@
                 LOG.error("Error getting jobinfo for: " + args.subflowId, e);
                 return 0;
             }
+
             Path path = new Path(args.logDir + "/"
                     + String.format("%03d", Integer.parseInt(args.runId)));
-
             FileSystem fs = path.getFileSystem(getConf());
 
-            if (args.entityType.equalsIgnoreCase(EntityType.FEED.name())) {
-                // if replication wf
+            if (args.entityType.equalsIgnoreCase(EntityType.FEED.name())
+                    || notUserWorkflowEngineIsOozie(args.userWorkflowEngine)) {
+                // if replication wf or PIG Process
                 copyOozieLog(client, fs, path, jobInfo.getId());
                 copyTTlogs(fs, path, jobInfo.getActions().get(2));
             } else {
-                // if process wf
+                // if process wf with oozie engine
                 String subflowId = jobInfo.getExternalId();
                 copyOozieLog(client, fs, path, subflowId);
                 WorkflowJob subflowInfo = client.getJobInfo(subflowId);
@@ -107,7 +111,6 @@
                                 + action.getName());
                     }
                 }
-
             }
 
         } catch (Exception e) {
@@ -116,6 +119,11 @@
         return 0;
     }
 
+    private boolean notUserWorkflowEngineIsOozie(String userWorkflowEngine) {
+        // userWorkflowEngine will be null for replication and "pig" for pig
+        return userWorkflowEngine != null && EngineType.fromValue(userWorkflowEngine) != EngineType.OOZIE;
+    }
+
     private void copyOozieLog(OozieClient client, FileSystem fs, Path path,
                               String id) throws OozieClientException, IOException {
         InputStream in = new ByteArrayInputStream(client.getJobLog(id).getBytes());
@@ -150,23 +158,31 @@
 
     private void setupArgs(String[] arguments, ARGS args) throws ParseException {
         Options options = new Options();
-        Option opt;
-        opt = new Option("workflowEngineUrl", true,
-                "url of workflow engine, ex:oozie");
+
+        Option opt = new Option("workflowEngineUrl", true, "url of workflow engine, ex:oozie");
         opt.setRequired(true);
         options.addOption(opt);
+
         opt = new Option("subflowId", true, "external id of userworkflow");
         opt.setRequired(true);
         options.addOption(opt);
+
+        opt = new Option("userWorkflowEngine", true, "user workflow engine type");
+        opt.setRequired(false);  // replication will NOT have this arg sent
+        options.addOption(opt);
+
         opt = new Option("runId", true, "current workflow's runid");
         opt.setRequired(true);
         options.addOption(opt);
+
         opt = new Option("logDir", true, "log dir where job logs are stored");
         opt.setRequired(true);
         options.addOption(opt);
+
         opt = new Option("status", true, "user workflow status");
         opt.setRequired(true);
         options.addOption(opt);
+
         opt = new Option("entityType", true, "entity type feed or process");
         opt.setRequired(true);
         options.addOption(opt);
@@ -175,6 +191,7 @@
 
         args.oozieUrl = cmd.getOptionValue("workflowEngineUrl");
         args.subflowId = cmd.getOptionValue("subflowId");
+        args.userWorkflowEngine = cmd.getOptionValue("userWorkflowEngine");
         args.runId = cmd.getOptionValue("runId");
         args.logDir = cmd.getOptionValue("logDir");
         args.entityType = cmd.getOptionValue("entityType");
diff --git a/oozie/src/main/java/org/apache/falcon/workflow/FalconPostProcessing.java b/oozie/src/main/java/org/apache/falcon/workflow/FalconPostProcessing.java
index 392f145..914828b 100644
--- a/oozie/src/main/java/org/apache/falcon/workflow/FalconPostProcessing.java
+++ b/oozie/src/main/java/org/apache/falcon/workflow/FalconPostProcessing.java
@@ -59,6 +59,7 @@
         LOG_FILE("logFile", "log file path where feeds to be deleted are recorded"),
         WF_ENGINE_URL("workflowEngineUrl", "url of workflow engine server, ex:oozie"),
         USER_SUBFLOW_ID("subflowId", "external id of user workflow"),
+        USER_WORKFLOW_ENGINE("userWorkflowEngine", "user workflow engine type"),
         LOG_DIR("logDir", "log dir where job logs are copied");
 
         private String name;
@@ -80,7 +81,6 @@
         public String getOptionValue(CommandLine cmd) {
             return cmd.getOptionValue(this.name);
         }
-
     }
 
     public static void main(String[] args) throws Exception {
@@ -94,9 +94,11 @@
 
         LOG.info("Sending user message " + cmd);
         invokeUserMessageProducer(cmd);
+
         //LogMover doesnt throw exception, a failed logmover will not fail the user workflow
         LOG.info("Moving logs " + cmd);
         invokeLogProducer(cmd);
+
         LOG.info("Sending falcon message " + cmd);
         invokeFalconMessageProducer(cmd);
 
@@ -154,7 +156,6 @@
         addArg(args, cmd, Arg.LOG_FILE);
 
         MessageProducer.main(args.toArray(new String[0]));
-
     }
 
     private void invokeLogProducer(CommandLine cmd) throws Exception {
@@ -162,12 +163,12 @@
         addArg(args, cmd, Arg.WF_ENGINE_URL);
         addArg(args, cmd, Arg.ENTITY_TYPE);
         addArg(args, cmd, Arg.USER_SUBFLOW_ID);
+        addArg(args, cmd, Arg.USER_WORKFLOW_ENGINE);
         addArg(args, cmd, Arg.RUN_ID);
         addArg(args, cmd, Arg.LOG_DIR);
         addArg(args, cmd, Arg.STATUS);
 
         LogMover.main(args.toArray(new String[0]));
-
     }
 
     private void addArg(List<String> args, CommandLine cmd, Arg arg) {
@@ -198,15 +199,18 @@
         addOption(options, Arg.LOG_FILE);
         addOption(options, Arg.WF_ENGINE_URL);
         addOption(options, Arg.USER_SUBFLOW_ID);
+        addOption(options, Arg.USER_WORKFLOW_ENGINE, false);
         addOption(options, Arg.LOG_DIR);
         return new GnuParser().parse(options, arguments);
     }
 
     private static void addOption(Options options, Arg arg) {
-        Option option = arg.getOption();
-        option.setRequired(true);
-        options.addOption(option);
+        addOption(options, arg, true);
     }
 
-
+    private static void addOption(Options options, Arg arg, boolean isRequired) {
+        Option option = arg.getOption();
+        option.setRequired(isRequired);
+        options.addOption(option);
+    }
 }
diff --git a/oozie/src/test/java/org/apache/falcon/oozie/workflow/FalconPostProcessingTest.java b/oozie/src/test/java/org/apache/falcon/oozie/workflow/FalconPostProcessingTest.java
index 5ac8006..c6485cd 100644
--- a/oozie/src/test/java/org/apache/falcon/oozie/workflow/FalconPostProcessingTest.java
+++ b/oozie/src/test/java/org/apache/falcon/oozie/workflow/FalconPostProcessingTest.java
@@ -68,7 +68,8 @@
                             "-" + Arg.WF_ENGINE_URL.getOptionName(),
                             "http://localhost:11000/oozie/",
                             "-" + Arg.LOG_DIR.getOptionName(), "target/log",
-                            "-" + Arg.USER_SUBFLOW_ID.getOptionName(), "userflow@wf-id" + "test", };
+                            "-" + Arg.USER_SUBFLOW_ID.getOptionName(), "userflow@wf-id" + "test",
+                            "-" + Arg.USER_WORKFLOW_ENGINE.getOptionName(), "oozie", };
         broker = new BrokerService();
         broker.addConnector(BROKER_URL);
         broker.setDataDirectory("target/activemq");
diff --git a/pom.xml b/pom.xml
index 9121dd0..a518f54 100644
--- a/pom.xml
+++ b/pom.xml
@@ -823,6 +823,7 @@
                         <exclude>**/.project</exclude>
                         <exclude>**/.settings/**</exclude>
                         <exclude>**/test-output/**</exclude>
+                        <exclude>**/data.txt</exclude>
                     </excludes>
                 </configuration>
                 <executions>
diff --git a/process/src/main/java/org/apache/falcon/converter/OozieProcessMapper.java b/process/src/main/java/org/apache/falcon/converter/OozieProcessMapper.java
index 592f089..8f75736 100644
--- a/process/src/main/java/org/apache/falcon/converter/OozieProcessMapper.java
+++ b/process/src/main/java/org/apache/falcon/converter/OozieProcessMapper.java
@@ -21,6 +21,7 @@
 import org.apache.commons.lang.StringUtils;
 import org.apache.falcon.FalconException;
 import org.apache.falcon.Tag;
+import org.apache.falcon.entity.ClusterHelper;
 import org.apache.falcon.entity.EntityUtil;
 import org.apache.falcon.entity.FeedHelper;
 import org.apache.falcon.entity.ProcessHelper;
@@ -30,18 +31,34 @@
 import org.apache.falcon.entity.v0.cluster.Cluster;
 import org.apache.falcon.entity.v0.feed.Feed;
 import org.apache.falcon.entity.v0.feed.LocationType;
+import org.apache.falcon.entity.v0.process.EngineType;
 import org.apache.falcon.entity.v0.process.Input;
 import org.apache.falcon.entity.v0.process.Output;
 import org.apache.falcon.entity.v0.process.Process;
 import org.apache.falcon.entity.v0.process.Property;
+import org.apache.falcon.entity.v0.process.Workflow;
 import org.apache.falcon.expression.ExpressionHelper;
 import org.apache.falcon.messaging.EntityInstanceMessage.ARG;
-import org.apache.falcon.oozie.coordinator.*;
+import org.apache.falcon.oozie.coordinator.CONTROLS;
+import org.apache.falcon.oozie.coordinator.COORDINATORAPP;
+import org.apache.falcon.oozie.coordinator.DATAIN;
+import org.apache.falcon.oozie.coordinator.DATAOUT;
+import org.apache.falcon.oozie.coordinator.DATASETS;
+import org.apache.falcon.oozie.coordinator.INPUTEVENTS;
+import org.apache.falcon.oozie.coordinator.OUTPUTEVENTS;
+import org.apache.falcon.oozie.coordinator.SYNCDATASET;
+import org.apache.falcon.oozie.coordinator.WORKFLOW;
 import org.apache.falcon.oozie.workflow.ACTION;
-import org.apache.falcon.oozie.workflow.SUBWORKFLOW;
+import org.apache.falcon.oozie.workflow.DELETE;
+import org.apache.falcon.oozie.workflow.PIG;
+import org.apache.falcon.oozie.workflow.PREPARE;
 import org.apache.falcon.oozie.workflow.WORKFLOWAPP;
+import org.apache.hadoop.fs.FileStatus;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.PathFilter;
 
+import java.io.IOException;
 import java.util.*;
 
 /**
@@ -64,20 +81,6 @@
         return apps;
     }
 
-    private void createWorkflow(Cluster cluster, String template, String wfName, Path wfPath) throws FalconException {
-        WORKFLOWAPP wfApp = getWorkflowTemplate(template);
-        wfApp.setName(wfName);
-
-        for (Object object : wfApp.getDecisionOrForkOrJoin()) {
-            if (object instanceof ACTION && ((ACTION) object).getName().equals("user-workflow")) {
-                SUBWORKFLOW subWf = ((ACTION) object).getSubWorkflow();
-                subWf.setAppPath(getStoragePath(getEntity().getWorkflow().getPath()));
-            }
-        }
-
-        marshal(cluster, wfApp, wfPath);
-    }
-
     /**
      * Creates default oozie coordinator.
      *
@@ -97,15 +100,57 @@
         Path coordPath = getCoordPath(bundlePath, coordName);
 
         // coord attributes
+        initializeCoordAttributes(cluster, process, coord, coordName);
+
+        CONTROLS controls = initializeControls(process); // controls
+        coord.setControls(controls);
+
+        // Configuration
+        Map<String, String> props = createCoordDefaultConfiguration(cluster, coordPath, coordName);
+
+        List<String> inputFeeds = new ArrayList<String>();
+        List<String> inputPaths = new ArrayList<String>();
+        initializeInputPaths(cluster, process, coord, props, inputFeeds, inputPaths); // inputs
+        props.put("falconInPaths", join(inputPaths.iterator(), '#'));
+        props.put("falconInputFeeds", join(inputFeeds.iterator(), '#'));
+
+        List<String> outputFeeds = new ArrayList<String>();
+        List<String> outputPaths = new ArrayList<String>();
+        initializeOutputPaths(cluster, process, coord, props, outputFeeds, outputPaths);  // outputs
+        // Output feed name and path for parent workflow
+        props.put(ARG.feedNames.getPropName(), join(outputFeeds.iterator(), ','));
+        props.put(ARG.feedInstancePaths.getPropName(), join(outputPaths.iterator(), ','));
+
+        Workflow processWorkflow = process.getWorkflow();
+        props.put("userWorkflowEngine", processWorkflow.getEngine().value());
+
+        // create parent wf
+        createWorkflow(cluster, process, processWorkflow, coordName, coordPath);
+
+        WORKFLOW wf = new WORKFLOW();
+        wf.setAppPath(getStoragePath(coordPath.toString()));
+        wf.setConfiguration(getCoordConfig(props));
+
+        // set coord action to parent wf
+        org.apache.falcon.oozie.coordinator.ACTION action = new org.apache.falcon.oozie.coordinator.ACTION();
+        action.setWorkflow(wf);
+        coord.setAction(action);
+
+        return coord;
+    }
+
+    private void initializeCoordAttributes(Cluster cluster, Process process, COORDINATORAPP coord, String coordName) {
         coord.setName(coordName);
-        org.apache.falcon.entity.v0.process.Cluster processCluster = ProcessHelper.getCluster(process,
-                cluster.getName());
+        org.apache.falcon.entity.v0.process.Cluster processCluster =
+                ProcessHelper.getCluster(process, cluster.getName());
         coord.setStart(SchemaHelper.formatDateUTC(processCluster.getValidity().getStart()));
         coord.setEnd(SchemaHelper.formatDateUTC(processCluster.getValidity().getEnd()));
         coord.setTimezone(process.getTimezone().getID());
         coord.setFrequency("${coord:" + process.getFrequency().toString() + "}");
+    }
 
-        // controls
+    private CONTROLS initializeControls(Process process)
+        throws FalconException {
         CONTROLS controls = new CONTROLS();
         controls.setConcurrency(String.valueOf(process.getParallel()));
         controls.setExecution(process.getOrder().name());
@@ -123,95 +168,80 @@
             }
         }
         controls.setTimeout(String.valueOf(timeoutInMillis / (1000 * 60)));
+
         if (timeoutInMillis / frequencyInMillis * 2 > 0) {
             controls.setThrottle(String.valueOf(timeoutInMillis / frequencyInMillis * 2));
         }
-        coord.setControls(controls);
 
-        // Configuration
-        Map<String, String> props = createCoordDefaultConfiguration(cluster, coordPath, coordName);
+        return controls;
+    }
 
-        List<String> inputFeeds = new ArrayList<String>();
-        List<String> inputPaths = new ArrayList<String>();
-        // inputs
-        if (process.getInputs() != null) {
-            for (Input input : process.getInputs().getInputs()) {
-                if (!input.isOptional()) {
-                    if (coord.getDatasets() == null) {
-                        coord.setDatasets(new DATASETS());
-                    }
-                    if (coord.getInputEvents() == null) {
-                        coord.setInputEvents(new INPUTEVENTS());
-                    }
+    private void initializeInputPaths(Cluster cluster, Process process, COORDINATORAPP coord,
+                                      Map<String, String> props, List<String> inputFeeds, List<String> inputPaths)
+        throws FalconException {
+        if (process.getInputs() == null) {
+            return;
+        }
 
-                    SYNCDATASET syncdataset = createDataSet(input.getFeed(), cluster, input.getName(),
-                            LocationType.DATA);
-                    coord.getDatasets().getDatasetOrAsyncDataset().add(syncdataset);
-
-                    DATAIN datain = createDataIn(input);
-                    coord.getInputEvents().getDataIn().add(datain);
+        for (Input input : process.getInputs().getInputs()) {
+            if (!input.isOptional()) {
+                if (coord.getDatasets() == null) {
+                    coord.setDatasets(new DATASETS());
+                }
+                if (coord.getInputEvents() == null) {
+                    coord.setInputEvents(new INPUTEVENTS());
                 }
 
-                String inputExpr = getELExpression("dataIn('" + input.getName() + "', '" + input.getPartition() + "')");
-                props.put(input.getName(), inputExpr);
-                inputFeeds.add(input.getName());
-                inputPaths.add(inputExpr);
-
-            }
-        }
-        props.put("falconInPaths", join(inputPaths.iterator(), '#'));
-        props.put("falconInputFeeds", join(inputFeeds.iterator(), '#'));
-
-        // outputs
-        List<String> outputFeeds = new ArrayList<String>();
-        List<String> outputPaths = new ArrayList<String>();
-        if (process.getOutputs() != null) {
-            if (coord.getDatasets() == null) {
-                coord.setDatasets(new DATASETS());
-            }
-            if (coord.getOutputEvents() == null) {
-                coord.setOutputEvents(new OUTPUTEVENTS());
-            }
-
-            for (Output output : process.getOutputs().getOutputs()) {
-                SYNCDATASET syncdataset = createDataSet(output.getFeed(), cluster, output.getName(), LocationType.DATA);
+                SYNCDATASET syncdataset = createDataSet(input.getFeed(), cluster, input.getName(),
+                        LocationType.DATA);
                 coord.getDatasets().getDatasetOrAsyncDataset().add(syncdataset);
 
-                DATAOUT dataout = createDataOut(output);
-                coord.getOutputEvents().getDataOut().add(dataout);
-
-                String outputExpr = "${coord:dataOut('" + output.getName() + "')}";
-                props.put(output.getName(), outputExpr);
-                outputFeeds.add(output.getName());
-                outputPaths.add(outputExpr);
-
-                // stats and meta paths
-                createOutputEvent(output.getFeed(), output.getName(), cluster, "stats",
-                        LocationType.STATS, coord, props, output.getInstance());
-                createOutputEvent(output.getFeed(), output.getName(), cluster, "meta",
-                        LocationType.META, coord, props, output.getInstance());
-                createOutputEvent(output.getFeed(), output.getName(), cluster, "tmp",
-                        LocationType.TMP, coord, props, output.getInstance());
-
+                DATAIN datain = createDataIn(input);
+                coord.getInputEvents().getDataIn().add(datain);
             }
+
+            String inputExpr = getELExpression("dataIn('" + input.getName() + "', '" + input.getPartition() + "')");
+            props.put(input.getName(), inputExpr);
+            inputFeeds.add(input.getName());
+            inputPaths.add(inputExpr);
         }
-        // Output feed name and path for parent workflow
-        props.put(ARG.feedNames.getPropName(), join(outputFeeds.iterator(), ','));
-        props.put(ARG.feedInstancePaths.getPropName(), join(outputPaths.iterator(), ','));
+    }
 
-        // create parent wf
-        createWorkflow(cluster, DEFAULT_WF_TEMPLATE, coordName, coordPath);
+    private void initializeOutputPaths(Cluster cluster, Process process, COORDINATORAPP coord,
+                                       Map<String, String> props, List<String> outputFeeds, List<String> outputPaths)
+        throws FalconException {
+        if (process.getOutputs() == null) {
+            return;
+        }
 
-        WORKFLOW wf = new WORKFLOW();
-        wf.setAppPath(getStoragePath(coordPath.toString()));
-        wf.setConfiguration(getCoordConfig(props));
+        if (coord.getDatasets() == null) {
+            coord.setDatasets(new DATASETS());
+        }
 
-        // set coord action to parent wf
-        org.apache.falcon.oozie.coordinator.ACTION action = new org.apache.falcon.oozie.coordinator.ACTION();
-        action.setWorkflow(wf);
-        coord.setAction(action);
+        if (coord.getOutputEvents() == null) {
+            coord.setOutputEvents(new OUTPUTEVENTS());
+        }
 
-        return coord;
+        for (Output output : process.getOutputs().getOutputs()) {
+            SYNCDATASET syncdataset = createDataSet(output.getFeed(), cluster, output.getName(), LocationType.DATA);
+            coord.getDatasets().getDatasetOrAsyncDataset().add(syncdataset);
+
+            DATAOUT dataout = createDataOut(output);
+            coord.getOutputEvents().getDataOut().add(dataout);
+
+            String outputExpr = "${coord:dataOut('" + output.getName() + "')}";
+            props.put(output.getName(), outputExpr);
+            outputFeeds.add(output.getName());
+            outputPaths.add(outputExpr);
+
+            // stats and meta paths
+            createOutputEvent(output.getFeed(), output.getName(), cluster, "stats",
+                    LocationType.STATS, coord, props, output.getInstance());
+            createOutputEvent(output.getFeed(), output.getName(), cluster, "meta",
+                    LocationType.META, coord, props, output.getInstance());
+            createOutputEvent(output.getFeed(), output.getName(), cluster, "tmp",
+                    LocationType.TMP, coord, props, output.getInstance());
+        }
     }
 
     private DATAOUT createDataOut(Output output) {
@@ -261,7 +291,7 @@
 
     private SYNCDATASET createDataSet(String feedName, Cluster cluster, String datasetName,
                                       LocationType locationType) throws FalconException {
-        Feed feed = (Feed) EntityUtil.getEntity(EntityType.FEED, feedName);
+        Feed feed = EntityUtil.getEntity(EntityType.FEED, feedName);
 
         SYNCDATASET syncdataset = new SYNCDATASET();
         syncdataset.setName(datasetName);
@@ -300,4 +330,127 @@
         }
         return props;
     }
+
+    private void createWorkflow(Cluster cluster, Process process, Workflow processWorkflow,
+                                String wfName, Path wfPath) throws FalconException {
+        WORKFLOWAPP wfApp = getWorkflowTemplate(DEFAULT_WF_TEMPLATE);
+        wfApp.setName(wfName);
+
+        EngineType engineType = processWorkflow.getEngine();
+        for (Object object : wfApp.getDecisionOrForkOrJoin()) {
+            if (!(object instanceof ACTION)) {
+                continue;
+            }
+
+            String storagePath = getStoragePath(getEntity().getWorkflow().getPath());
+            ACTION action = (ACTION) object;
+            String actionName = action.getName();
+            if (engineType == EngineType.OOZIE && actionName.equals("user-oozie-workflow")) {
+                action.getSubWorkflow().setAppPath(storagePath);
+            } else if (engineType == EngineType.PIG && actionName.equals("user-pig-job")) {
+                decoratePIGAction(cluster, process, processWorkflow, storagePath, action.getPig());
+            }
+        }
+
+        marshal(cluster, wfApp, wfPath);
+    }
+
+    private void decoratePIGAction(Cluster cluster, Process process, Workflow processWorkflow,
+                                   String storagePath, PIG pigAction) throws FalconException {
+
+        pigAction.setScript(storagePath);
+
+        addPrepareDeleteOutputPath(process, pigAction);
+
+        addInputOutputFeedsAsParams(pigAction, process);
+
+        propagateProcessProperties(pigAction, process);
+
+        addArchiveForCustomJars(cluster, processWorkflow, pigAction);
+    }
+
+    private void addPrepareDeleteOutputPath(Process process, PIG pigAction) {
+        final PREPARE prepare = new PREPARE();
+        final List<DELETE> deleteList = prepare.getDelete();
+        for (Output output : process.getOutputs().getOutputs()) {
+            final DELETE delete = new DELETE();
+            delete.setPath("${wf:conf('" + output.getName() + "')}");
+            deleteList.add(delete);
+        }
+
+        if (!deleteList.isEmpty()) {
+            pigAction.setPrepare(prepare);
+        }
+    }
+
+    private void addInputOutputFeedsAsParams(PIG pigAction, Process process) throws FalconException {
+        final List<String> paramList = pigAction.getParam();
+        for (Input input : process.getInputs().getInputs()) {
+            paramList.add(input.getName() + "=${" + input.getName() + "}");
+        }
+
+        for (Output output : process.getOutputs().getOutputs()) {
+            paramList.add(output.getName() + "=${" + output.getName() + "}");
+        }
+    }
+
+    private void propagateProcessProperties(PIG pigAction, Process process) {
+        org.apache.falcon.entity.v0.process.Properties processProperties = process.getProperties();
+        if (processProperties == null) {
+            return;
+        }
+
+        // Propagate user defined properties to job configuration
+        final List<org.apache.falcon.oozie.workflow.CONFIGURATION.Property> configuration =
+                pigAction.getConfiguration().getProperty();
+        for (org.apache.falcon.entity.v0.process.Property property : processProperties.getProperties()) {
+            org.apache.falcon.oozie.workflow.CONFIGURATION.Property configProperty =
+                    new org.apache.falcon.oozie.workflow.CONFIGURATION.Property();
+            configProperty.setName(property.getName());
+            configProperty.setValue(property.getValue());
+            configuration.add(configProperty);
+        }
+
+        // Propagate user defined properties to pig script as macros
+        // passed as parameters -p name=value that can be accessed as $name
+        final List<String> paramList = pigAction.getParam();
+        for (org.apache.falcon.entity.v0.process.Property property : processProperties.getProperties()) {
+            paramList.add(property.getName() + "=" + property.getValue());
+        }
+    }
+
+    private void addArchiveForCustomJars(Cluster cluster, Workflow processWorkflow,
+                                         PIG pigAction) throws FalconException {
+        String processWorkflowLib = processWorkflow.getLib();
+        if (processWorkflowLib == null) {
+            return;
+        }
+
+        Path libPath = new Path(processWorkflowLib);
+        try {
+            final FileSystem fs = libPath.getFileSystem(ClusterHelper.getConfiguration(cluster));
+            if (fs.isFile(libPath)) {  // File, not a Dir
+                pigAction.getArchive().add(processWorkflowLib);
+                return;
+            }
+
+            // lib path is a directory, add each file under the lib dir to archive
+            final FileStatus[] fileStatuses = fs.listStatus(libPath, new PathFilter() {
+                @Override
+                public boolean accept(Path path) {
+                    try {
+                        return fs.isFile(path) && path.getName().endsWith(".jar");
+                    } catch (IOException ignore) {
+                        return false;
+                    }
+                }
+            });
+
+            for (FileStatus fileStatus : fileStatuses) {
+                pigAction.getArchive().add(fileStatus.getPath().toString());
+            }
+        } catch (IOException e) {
+            throw new FalconException("Error adding archive for custom jars under: " + libPath, e);
+        }
+    }
 }
diff --git a/process/src/main/resources/config/workflow/process-parent-workflow.xml b/process/src/main/resources/config/workflow/process-parent-workflow.xml
index 8c800eb..4f6dd43 100644
--- a/process/src/main/resources/config/workflow/process-parent-workflow.xml
+++ b/process/src/main/resources/config/workflow/process-parent-workflow.xml
@@ -52,7 +52,37 @@
         <error to="fail"/>
     </action>
 
-    <action name='user-workflow'>
+    <decision name='user-workflow'>
+        <switch>
+            <case to="user-oozie-workflow">
+                ${userWorkflowEngine=="oozie"}
+            </case>
+            <case to="user-pig-job">
+                ${userWorkflowEngine=="pig"}
+            </case>
+            <default to="user-oozie-workflow"/>
+        </switch>
+    </decision>
+    <action name='user-pig-job'>
+        <pig>
+            <job-tracker>${jobTracker}</job-tracker>
+            <name-node>${nameNode}</name-node>
+            <configuration>
+                <property>
+                    <name>mapred.job.queue.name</name>
+                    <value>${queueName}</value>
+                </property>
+                <property>
+                    <name>oozie.launcher.mapred.job.priority</name>
+                    <value>${jobPriority}</value>
+                </property>
+            </configuration>
+            <script>#USER_WF_PATH#</script>
+        </pig>
+        <ok to="succeeded-post-processing"/>
+        <error to="failed-post-processing"/>
+    </action>
+    <action name='user-oozie-workflow'>
         <sub-workflow>
             <app-path>#USER_WF_PATH#</app-path>
             <propagate-configuration/>
@@ -113,7 +143,9 @@
             <arg>-workflowEngineUrl</arg>
             <arg>${workflowEngineUrl}</arg>
             <arg>-subflowId</arg>
-            <arg>${wf:id()}@user-workflow</arg>
+            <arg>${wf:id()}${userWorkflowEngine == "oozie" ? "@user-oozie-workflow" : ""}</arg>
+            <arg>-userWorkflowEngine</arg>
+            <arg>${userWorkflowEngine}</arg>
             <arg>-logDir</arg>
             <arg>${logDir}/job-${nominalTime}/</arg>
             <file>${wf:conf("falcon.libpath")}/activemq-core.jar</file>
@@ -179,7 +211,9 @@
             <arg>-workflowEngineUrl</arg>
             <arg>${workflowEngineUrl}</arg>
             <arg>-subflowId</arg>
-            <arg>${wf:id()}@user-workflow</arg>
+            <arg>${wf:id()}${userWorkflowEngine == "oozie" ? "@user-oozie-workflow" : ""}</arg>
+            <arg>-userWorkflowEngine</arg>
+            <arg>${userWorkflowEngine}</arg>
             <arg>-logDir</arg>
             <arg>${logDir}/job-${nominalTime}/</arg>
             <file>${wf:conf("falcon.libpath")}/activemq-core.jar</file>
@@ -194,8 +228,8 @@
         <error to="fail"/>
     </action>
     <kill name="fail">
-        <message>Workflow failed, error
-            message[${wf:errorMessage(wf:lastErrorNode())}]
+        <message>
+            Workflow failed, error message[${wf:errorMessage(wf:lastErrorNode())}]
         </message>
     </kill>
     <end name='end'/>
diff --git a/process/src/test/java/org/apache/falcon/converter/AbstractTestBase.java b/process/src/test/java/org/apache/falcon/converter/AbstractTestBase.java
index 9cc02df..2c7ee8b 100644
--- a/process/src/test/java/org/apache/falcon/converter/AbstractTestBase.java
+++ b/process/src/test/java/org/apache/falcon/converter/AbstractTestBase.java
@@ -33,26 +33,27 @@
     private static final String PROCESS_XML = "/config/process/process-0.1.xml";
     private static final String FEED_XML = "/config/feed/feed-0.1.xml";
     private static final String CLUSTER_XML = "/config/cluster/cluster-0.1.xml";
+    private static final String PIG_PROCESS_XML = "/config/process/pig-process-0.1.xml";
 
-    private void storeEntity(EntityType type, String name) throws Exception {
+    protected void storeEntity(EntityType type, String name, String resource) throws Exception {
         Unmarshaller unmarshaller = type.getUnmarshaller();
         ConfigurationStore store = ConfigurationStore.get();
         store.remove(type, name);
         switch (type) {
         case CLUSTER:
-            Cluster cluster = (Cluster) unmarshaller.unmarshal(this.getClass().getResource(CLUSTER_XML));
+            Cluster cluster = (Cluster) unmarshaller.unmarshal(this.getClass().getResource(resource));
             cluster.setName(name);
             store.publish(type, cluster);
             break;
 
         case FEED:
-            Feed feed = (Feed) unmarshaller.unmarshal(this.getClass().getResource(FEED_XML));
+            Feed feed = (Feed) unmarshaller.unmarshal(this.getClass().getResource(resource));
             feed.setName(name);
             store.publish(type, feed);
             break;
 
         case PROCESS:
-            Process process = (Process) unmarshaller.unmarshal(this.getClass().getResource(PROCESS_XML));
+            Process process = (Process) unmarshaller.unmarshal(this.getClass().getResource(resource));
             process.setName(name);
             store.publish(type, process);
             break;
@@ -62,15 +63,17 @@
     }
 
     public void setup() throws Exception {
-        storeEntity(EntityType.CLUSTER, "corp");
-        storeEntity(EntityType.FEED, "clicks");
-        storeEntity(EntityType.FEED, "impressions");
-        storeEntity(EntityType.FEED, "clicksummary");
-        storeEntity(EntityType.PROCESS, "clicksummary");
+        storeEntity(EntityType.CLUSTER, "corp", CLUSTER_XML);
+        storeEntity(EntityType.FEED, "clicks", FEED_XML);
+        storeEntity(EntityType.FEED, "impressions", FEED_XML);
+        storeEntity(EntityType.FEED, "clicksummary", FEED_XML);
+        storeEntity(EntityType.PROCESS, "clicksummary", PROCESS_XML);
+        storeEntity(EntityType.PROCESS, "pig-process", PIG_PROCESS_XML);
     }
 
     public void cleanup() throws Exception {
         ConfigurationStore store = ConfigurationStore.get();
+        store.remove(EntityType.PROCESS, "pig-process");
         store.remove(EntityType.PROCESS, "clicksummary");
         store.remove(EntityType.FEED, "clicksummary");
         store.remove(EntityType.FEED, "impressions");
diff --git a/process/src/test/java/org/apache/falcon/converter/OozieProcessMapperTest.java b/process/src/test/java/org/apache/falcon/converter/OozieProcessMapperTest.java
index fe3cc58..abf664c 100644
--- a/process/src/test/java/org/apache/falcon/converter/OozieProcessMapperTest.java
+++ b/process/src/test/java/org/apache/falcon/converter/OozieProcessMapperTest.java
@@ -60,6 +60,8 @@
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.InputStreamReader;
+import java.util.Collections;
+import java.util.List;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;
@@ -161,37 +163,44 @@
             Assert.assertTrue(new File(path).mkdirs());
         }
         Process process = ConfigurationStore.get().get(EntityType.PROCESS, "clicksummary");
-        Cluster cluster = ConfigurationStore.get().get(EntityType.CLUSTER, "corp");
-        OozieProcessMapper mapper = new OozieProcessMapper(process);
-        Path bundlePath = new Path("/", EntityUtil.getStagingPath(process));
-        mapper.map(cluster, bundlePath);
 
-        FileSystem fs = new Path(hdfsUrl).getFileSystem(new Configuration());
-        assertTrue(fs.exists(bundlePath));
-
-        BUNDLEAPP bundle = getBundle(fs, bundlePath);
-        assertEquals(EntityUtil.getWorkflowName(process).toString(), bundle.getName());
-        assertEquals(1, bundle.getCoordinator().size());
-        assertEquals(EntityUtil.getWorkflowName(Tag.DEFAULT, process).toString(),
-                bundle.getCoordinator().get(0).getName());
-        String coordPath = bundle.getCoordinator().get(0).getAppPath().replace("${nameNode}", "");
-
-        COORDINATORAPP coord = getCoordinator(fs, new Path(coordPath));
-        testDefCoordMap(process, coord);
-        assertEquals(coord.getControls().getThrottle(), "12");
-        assertEquals(coord.getControls().getTimeout(), "360");
-
-        String wfPath = coord.getAction().getWorkflow().getAppPath().replace("${nameNode}", "");
-        WORKFLOWAPP parentWorkflow = getParentWorkflow(fs, new Path(wfPath));
+        WORKFLOWAPP parentWorkflow = initializeProcessMapper(process, "12", "360");
         testParentWorkflow(process, parentWorkflow);
     }
 
     @Test
     public void testBundle1() throws Exception {
         Process process = ConfigurationStore.get().get(EntityType.PROCESS, "clicksummary");
-        Cluster cluster = ConfigurationStore.get().get(EntityType.CLUSTER, "corp");
         process.setFrequency(Frequency.fromString("minutes(1)"));
         process.setTimeout(Frequency.fromString("minutes(15)"));
+
+        WORKFLOWAPP parentWorkflow = initializeProcessMapper(process, "30", "15");
+        testParentWorkflow(process, parentWorkflow);
+    }
+
+    @Test
+    public void testPigProcessMapper() throws Exception {
+        Process process = ConfigurationStore.get().get(EntityType.PROCESS, "pig-process");
+        Assert.assertEquals("pig", process.getWorkflow().getEngine().value());
+
+        WORKFLOWAPP parentWorkflow = initializeProcessMapper(process, "12", "360");
+        testParentWorkflow(process, parentWorkflow);
+
+        List<Object> decisionOrForkOrJoin = parentWorkflow.getDecisionOrForkOrJoin();
+
+        ACTION pigAction = (ACTION) decisionOrForkOrJoin.get(3);
+        Assert.assertEquals("user-pig-job", pigAction.getName());
+        Assert.assertEquals("${nameNode}/apps/pig/id.pig", pigAction.getPig().getScript());
+        Assert.assertEquals(Collections.EMPTY_LIST, pigAction.getPig().getArchive());
+
+        ACTION oozieAction = (ACTION) decisionOrForkOrJoin.get(4);
+        Assert.assertEquals("user-oozie-workflow", oozieAction.getName());
+        Assert.assertEquals("#USER_WF_PATH#", oozieAction.getSubWorkflow().getAppPath());
+    }
+
+    private WORKFLOWAPP initializeProcessMapper(Process process, String throttle, String timeout)
+        throws Exception {
+        Cluster cluster = ConfigurationStore.get().get(EntityType.CLUSTER, "corp");
         OozieProcessMapper mapper = new OozieProcessMapper(process);
         Path bundlePath = new Path("/", EntityUtil.getStagingPath(process));
         mapper.map(cluster, bundlePath);
@@ -208,23 +217,22 @@
 
         COORDINATORAPP coord = getCoordinator(fs, new Path(coordPath));
         testDefCoordMap(process, coord);
-        assertEquals(coord.getControls().getThrottle(), "30");
-        assertEquals(coord.getControls().getTimeout(), "15");
+        assertEquals(coord.getControls().getThrottle(), throttle);
+        assertEquals(coord.getControls().getTimeout(), timeout);
 
         String wfPath = coord.getAction().getWorkflow().getAppPath().replace("${nameNode}", "");
-        WORKFLOWAPP parentWorkflow = getParentWorkflow(fs, new Path(wfPath));
-        testParentWorkflow(process, parentWorkflow);
+        return getParentWorkflow(fs, new Path(wfPath));
     }
 
     public void testParentWorkflow(Process process, WORKFLOWAPP parentWorkflow) {
         Assert.assertEquals(EntityUtil.getWorkflowName(Tag.DEFAULT, process).toString(), parentWorkflow.getName());
-        Assert.assertEquals("should-record", ((DECISION) parentWorkflow.getDecisionOrForkOrJoin().get(0)).getName());
-        Assert.assertEquals("recordsize", ((ACTION) parentWorkflow.getDecisionOrForkOrJoin().get(1)).getName());
-        Assert.assertEquals("user-workflow", ((ACTION) parentWorkflow.getDecisionOrForkOrJoin().get(2)).getName());
-        Assert.assertEquals("succeeded-post-processing",
-                ((ACTION) parentWorkflow.getDecisionOrForkOrJoin().get(3)).getName());
-        Assert.assertEquals("failed-post-processing",
-                ((ACTION) parentWorkflow.getDecisionOrForkOrJoin().get(4)).getName());
+
+        List<Object> decisionOrForkOrJoin = parentWorkflow.getDecisionOrForkOrJoin();
+        Assert.assertEquals("should-record", ((DECISION) decisionOrForkOrJoin.get(0)).getName());
+        Assert.assertEquals("recordsize", ((ACTION) decisionOrForkOrJoin.get(1)).getName());
+        Assert.assertEquals("user-workflow", ((DECISION) decisionOrForkOrJoin.get(2)).getName());
+        Assert.assertEquals("succeeded-post-processing", ((ACTION) decisionOrForkOrJoin.get(5)).getName());
+        Assert.assertEquals("failed-post-processing", ((ACTION) decisionOrForkOrJoin.get(6)).getName());
     }
 
     private COORDINATORAPP getCoordinator(FileSystem fs, Path path) throws Exception {
@@ -266,7 +274,7 @@
     private String readFile(FileSystem fs, Path path) throws Exception {
         BufferedReader reader = new BufferedReader(new InputStreamReader(fs.open(path)));
         String line;
-        StringBuffer contents = new StringBuffer();
+        StringBuilder contents = new StringBuilder();
         while ((line = reader.readLine()) != null) {
             contents.append(line);
         }
diff --git a/process/src/test/resources/config/process/pig-process-0.1.xml b/process/src/test/resources/config/process/pig-process-0.1.xml
new file mode 100644
index 0000000..318f0da
--- /dev/null
+++ b/process/src/test/resources/config/process/pig-process-0.1.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<process name="pig-process" xmlns="uri:falcon:process:0.1">
+    <!-- where -->
+    <clusters>
+        <cluster name="corp">
+            <validity start="2011-11-02T00:00Z" end="2011-12-30T00:00Z"/>
+        </cluster>
+    </clusters>
+
+    <!-- when -->
+    <parallel>1</parallel>
+    <order>LIFO</order>
+    <frequency>hours(1)</frequency>
+    <timezone>UTC</timezone>
+
+    <!-- what -->
+    <inputs>
+        <input name="impression" feed="impressions" start="today(0,0)" end="today(0,2)"/>
+        <input name="click" feed="clicks" start="yesterday(0,0)" end="latest(0)" partition="*/US"/>
+    </inputs>
+
+    <outputs>
+        <output name="clicksummary" feed="impressions" instance="today(0,0)"/>
+    </outputs>
+
+    <properties>
+        <property name="procprop" value="procprop"/>
+        <property name="mapred.job.priority" value="LOW"/>
+    </properties>
+
+    <!-- how -->
+    <workflow engine="pig" path="/apps/pig/id.pig"/>
+
+    <retry policy="periodic" delay="hours(10)" attempts="3"/>
+
+</process>
diff --git a/webapp/pom.xml b/webapp/pom.xml
index e9c1c8f..54d6938 100644
--- a/webapp/pom.xml
+++ b/webapp/pom.xml
@@ -209,6 +209,15 @@
                                     <outputDirectory>${project.build.directory}/webapps</outputDirectory>
                                     <destFileName>hadoop.war</destFileName>
                                 </artifactItem>
+                                <artifactItem>
+                                    <groupId>org.apache.pig</groupId>
+                                    <artifactId>pig</artifactId>
+                                    <version>0.11.1</version>
+                                    <type>jar</type>
+                                    <overWrite>false</overWrite>
+                                    <outputDirectory>${project.build.directory}/sharelib</outputDirectory>
+                                    <destFileName>pig.jar</destFileName>
+                                </artifactItem>
                             </artifactItems>
                         </configuration>
                     </execution>
diff --git a/webapp/src/test/java/org/apache/falcon/cli/FalconCLIIT.java b/webapp/src/test/java/org/apache/falcon/cli/FalconCLIIT.java
index e87fa06..4730728 100644
--- a/webapp/src/test/java/org/apache/falcon/cli/FalconCLIIT.java
+++ b/webapp/src/test/java/org/apache/falcon/cli/FalconCLIIT.java
@@ -18,8 +18,8 @@
 
 package org.apache.falcon.cli;
 
-import junit.framework.Assert;
 import org.apache.falcon.resource.TestContext;
+import org.testng.Assert;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
@@ -56,7 +56,7 @@
         TestContext context = new TestContext();
         Map<String, String> overlay = context.getUniqueOverlay();
 
-        filePath = context.overlayParametersOverTemplate(context.CLUSTER_TEMPLATE, overlay);
+        filePath = context.overlayParametersOverTemplate(TestContext.CLUSTER_TEMPLATE, overlay);
         Assert.assertEquals(
                 0,
                 executeWithURL("entity -submit -type cluster -file " + filePath));
diff --git a/webapp/src/test/java/org/apache/falcon/logging/LogMoverIT.java b/webapp/src/test/java/org/apache/falcon/logging/LogMoverIT.java
index ae4b5ad..4e26bff 100644
--- a/webapp/src/test/java/org/apache/falcon/logging/LogMoverIT.java
+++ b/webapp/src/test/java/org/apache/falcon/logging/LogMoverIT.java
@@ -63,7 +63,7 @@
         overlay.put("cluster", "testCluster");
         TestContext context = new TestContext();
         String file = context.
-                overlayParametersOverTemplate(context.CLUSTER_TEMPLATE, overlay);
+                overlayParametersOverTemplate(TestContext.CLUSTER_TEMPLATE, overlay);
         testCluster = StandAloneCluster.newCluster(file);
         STORE.publish(EntityType.CLUSTER, testCluster.getCluster());
 /*
@@ -135,7 +135,7 @@
         Assert.assertTrue(fs.exists(oozieLogPath));
 
         testLogMoverWithNextRunId(job.getId());
-
+        testLogMoverWithNextRunIdWithEngine(job.getId());
     }
 
     private Path getLogPath() throws FalconException {
@@ -156,7 +156,18 @@
         Path oozieLogPath = new Path(getLogPath(),
                 "job-2010-01-01-01-00/001/oozie.log");
         Assert.assertTrue(fs.exists(oozieLogPath));
-
     }
 
+    private void testLogMoverWithNextRunIdWithEngine(String jobId) throws Exception {
+        LogMover.main(new String[]{"-workflowEngineUrl",
+                                   ClusterHelper.getOozieUrl(testCluster.getCluster()),
+                                   "-subflowId", jobId + "@user-workflow", "-runId", "1",
+                                   "-logDir", getLogPath().toString() + "/job-2010-01-01-01-00",
+                                   "-status", "SUCCEEDED", "-entityType", "process",
+                                   "-userWorkflowEngine", "oozie", });
+
+        Path oozieLogPath = new Path(getLogPath(),
+                "job-2010-01-01-01-00/001/oozie.log");
+        Assert.assertTrue(fs.exists(oozieLogPath));
+    }
 }
diff --git a/webapp/src/test/java/org/apache/falcon/resource/PigProcessIT.java b/webapp/src/test/java/org/apache/falcon/resource/PigProcessIT.java
new file mode 100644
index 0000000..1cb5825
--- /dev/null
+++ b/webapp/src/test/java/org/apache/falcon/resource/PigProcessIT.java
@@ -0,0 +1,119 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.falcon.resource;
+
+import org.apache.falcon.entity.ClusterHelper;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * Integration tests for Pig Processing Engine.
+ */
+@Test
+public class PigProcessIT {
+
+    private static final String SHARE_LIB_HDFS_PATH = "/user/oozie/share/lib";
+
+    private final TestContext context = new TestContext();
+    private Map<String, String> overlay;
+
+
+    @BeforeClass
+    public void prepare() throws Exception {
+        TestContext.prepare();
+
+        overlay = context.getUniqueOverlay();
+
+        String filePath = context.overlayParametersOverTemplate(TestContext.CLUSTER_TEMPLATE, overlay);
+        context.setCluster(filePath);
+
+        String storageUrl = ClusterHelper.getStorageUrl(context.getCluster().getCluster());
+        System.out.println("nn = " + storageUrl);
+        TestContext.copyOozieShareLibsToHDFS("./target/sharelib", storageUrl + SHARE_LIB_HDFS_PATH);
+
+        // copyPigScriptToHDFS
+        TestContext.copyResourceToHDFS(
+                "/apps/pig/id.pig", "id.pig", storageUrl + "/falcon/test/apps/pig");
+        // copyTestDataToHDFS
+        TestContext.copyResourceToHDFS(
+                "/apps/pig/data.txt", "data.txt", storageUrl + "/falcon/test/input/2012/04/21/00");
+    }
+
+    @AfterClass
+    public void tearDown() throws IOException {
+        TestContext.deleteOozieShareLibsFromHDFS(SHARE_LIB_HDFS_PATH);
+    }
+
+    @Test
+    public void testSubmitAndSchedulePigProcess() throws Exception {
+
+        Thread.sleep(5000);
+
+        String filePath = context.overlayParametersOverTemplate(TestContext.CLUSTER_TEMPLATE, overlay);
+        Assert.assertEquals(0, TestContext.executeWithURL("entity -submit -type cluster -file " + filePath));
+        // context.setCluster(filePath);
+
+        filePath = context.overlayParametersOverTemplate(TestContext.FEED_TEMPLATE1, overlay);
+        Assert.assertEquals(0,
+                TestContext.executeWithURL("entity -submitAndSchedule -type feed -file " + filePath));
+
+        filePath = context.overlayParametersOverTemplate(TestContext.FEED_TEMPLATE2, overlay);
+        Assert.assertEquals(0,
+                TestContext.executeWithURL("entity -submitAndSchedule -type feed -file " + filePath));
+
+        filePath = context.overlayParametersOverTemplate(TestContext.FEED_TEMPLATE1, overlay);
+        Assert.assertEquals(0,
+                TestContext.executeWithURL("entity -submit -type feed -file " + filePath));
+
+        filePath = context.overlayParametersOverTemplate(TestContext.FEED_TEMPLATE2, overlay);
+        Assert.assertEquals(0,
+                TestContext.executeWithURL("entity -submit -type feed -file " + filePath));
+
+        final String pigProcessName = "pig-" + context.getProcessName();
+        overlay.put("processName", pigProcessName);
+
+        filePath = context.overlayParametersOverTemplate(TestContext.PIG_PROCESS_TEMPLATE, overlay);
+        Assert.assertEquals(0,
+                TestContext.executeWithURL("entity -submitAndSchedule -type process -file " + filePath));
+
+/*
+        WorkflowJob jobInfo = context.getWorkflowJob(
+                OozieClient.FILTER_NAME + "=FALCON_PROCESS_DEFAULT_" + pigProcessName);
+        Assert.assertEquals(WorkflowJob.Status.SUCCEEDED, jobInfo.getStatus());
+
+        InstancesResult response = context.service.path("api/instance/running/process/" + pigProcessName)
+                .header("Remote-User", "guest").accept(MediaType.APPLICATION_JSON).get(InstancesResult.class);
+        org.testng.Assert.assertEquals(APIResult.Status.SUCCEEDED, response.getStatus());
+        org.testng.Assert.assertNotNull(response.getInstances());
+        org.testng.Assert.assertEquals(1, response.getInstances().length);
+
+        // verify LogMover
+        Path oozieLogPath = context.getOozieLogPath(jobInfo);
+        System.out.println("oozieLogPath = " + oozieLogPath);
+        Assert.assertTrue(context.getCluster().getFileSystem().exists(oozieLogPath));
+*/
+
+        TestContext.executeWithURL("entity -delete -type process -name " + pigProcessName);
+    }
+}
diff --git a/webapp/src/test/java/org/apache/falcon/resource/TestContext.java b/webapp/src/test/java/org/apache/falcon/resource/TestContext.java
index 9f67a80..6fa07c9 100644
--- a/webapp/src/test/java/org/apache/falcon/resource/TestContext.java
+++ b/webapp/src/test/java/org/apache/falcon/resource/TestContext.java
@@ -23,8 +23,10 @@
 import com.sun.jersey.api.client.WebResource;
 import com.sun.jersey.api.client.config.ClientConfig;
 import com.sun.jersey.api.client.config.DefaultClientConfig;
+import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.RandomStringUtils;
 import org.apache.falcon.FalconException;
+import org.apache.falcon.cli.FalconCLI;
 import org.apache.falcon.cluster.util.EmbeddedCluster;
 import org.apache.falcon.cluster.util.StandAloneCluster;
 import org.apache.falcon.entity.store.ConfigurationStore;
@@ -34,6 +36,7 @@
 import org.apache.falcon.entity.v0.feed.Feed;
 import org.apache.falcon.util.StartupProperties;
 import org.apache.falcon.workflow.engine.OozieClientFactory;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.permission.FsPermission;
@@ -55,6 +58,7 @@
 import javax.xml.bind.Unmarshaller;
 import java.io.BufferedReader;
 import java.io.File;
+import java.io.FileFilter;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.FileReader;
@@ -82,6 +86,7 @@
 
     public static final String SAMPLE_PROCESS_XML = "/process-version-0.xml";
     public static final String PROCESS_TEMPLATE = "/process-template.xml";
+    public static final String PIG_PROCESS_TEMPLATE = "/pig-process-template.xml";
 
     public static final String BASE_URL = "http://localhost:41000/falcon-webapp";
     public static final String REMOTE_USER = System.getProperty("user.name");
@@ -244,7 +249,7 @@
     /**
      * Converts a InputStream into ServletInputStream.
      *
-     * @param fileName
+     * @param fileName file name
      * @return ServletInputStream
      * @throws java.io.IOException
      */
@@ -386,6 +391,51 @@
         return false;
     }
 
+    /*
+    public WorkflowJob getWorkflowJob(String filter) throws Exception {
+        OozieClient ozClient = OozieClientFactory.get(cluster.getCluster());
+
+        List<WorkflowJob> jobs;
+        while (true) {
+            jobs = ozClient.getJobsInfo(filter);
+            System.out.println("jobs = " + jobs);
+            if (jobs.size() > 0) {
+                break;
+            } else {
+                Thread.sleep(1000);
+            }
+        }
+
+        WorkflowJob jobInfo = jobs.get(0);
+        while (true) {
+            if (!(jobInfo.getStatus() == WorkflowJob.Status.RUNNING
+                    || jobInfo.getStatus() == WorkflowJob.Status.PREP)) {
+                break;
+            } else {
+                Thread.sleep(1000);
+                jobInfo = ozClient.getJobInfo(jobInfo.getId());
+                System.out.println("jobInfo = " + jobInfo);
+            }
+        }
+
+        return jobInfo;
+    }
+
+    public Path getOozieLogPath(WorkflowJob jobInfo) throws Exception {
+        Path stagingPath = new Path(ClusterHelper.getLocation(cluster.getCluster(), "staging"),
+                EntityUtil.getStagingPath(cluster.getCluster()) + "/../logs");
+        final Path logPath = new Path(ClusterHelper.getStorageUrl(cluster.getCluster()), stagingPath);
+        LogMover.main(new String[]{"-workflowEngineUrl",
+                ClusterHelper.getOozieUrl(cluster.getCluster()),
+                "-subflowId", jobInfo.getId(), "-runId", "1",
+                "-logDir", logPath.toString() + "/job-2012-04-21-00-00",
+                "-status", "SUCCEEDED", "-entityType", "process",
+                "-userWorkflowEngine", "pig",});
+
+        return new Path(logPath, "job-2012-04-21-00-00/001/oozie.log");
+    }
+    */
+
     public Map<String, String> getUniqueOverlay() throws FalconException {
         Map<String, String> overlay = new HashMap<String, String>();
         long time = System.currentTimeMillis();
@@ -408,7 +458,7 @@
         overlay.put("cluster", RandomStringUtils.randomAlphabetic(5));
         TestContext context = new TestContext();
         String file = context.
-                overlayParametersOverTemplate(context.CLUSTER_TEMPLATE, overlay);
+                overlayParametersOverTemplate(TestContext.CLUSTER_TEMPLATE, overlay);
         EmbeddedCluster cluster = StandAloneCluster.newCluster(file);
 
         cleanupStore();
@@ -422,8 +472,7 @@
         Path wfPath = new Path(wfParent, "workflow");
         fs.mkdirs(wfPath);
         fs.copyFromLocalFile(false, true, new Path(TestContext.class.getResource("/fs-workflow.xml").getPath()),
-                new Path(wfPath,
-                        "workflow.xml"));
+                new Path(wfPath, "workflow.xml"));
         fs.mkdirs(new Path(wfParent, "input/2012/04/20/00"));
         Path outPath = new Path(wfParent, "output");
         fs.mkdirs(outPath);
@@ -437,4 +486,75 @@
             }
         }
     }
+
+    public static void copyOozieShareLibsToHDFS(String shareLibLocalPath, String shareLibHdfsPath)
+        throws IOException {
+        File shareLibDir = new File(shareLibLocalPath);
+        if (!shareLibDir.exists()) {
+            throw new IllegalArgumentException("Sharelibs dir must exist for tests to run.");
+        }
+
+        File[] jarFiles = shareLibDir.listFiles(new FileFilter() {
+            @Override
+            public boolean accept(File file) {
+                return file.isFile() && file.getName().endsWith(".jar");
+            }
+        });
+
+        for (File jarFile : jarFiles) {
+            copyFileToHDFS(jarFile, shareLibHdfsPath);
+        }
+    }
+
+    public static void copyFileToHDFS(File jarFile, String shareLibHdfsPath) throws IOException {
+        System.out.println("Copying jarFile = " + jarFile);
+        Path shareLibPath = new Path(shareLibHdfsPath);
+        FileSystem fs = shareLibPath.getFileSystem(new Configuration());
+        if (!fs.exists(shareLibPath)) {
+            fs.mkdirs(shareLibPath);
+        }
+
+        OutputStream os = null;
+        InputStream is = null;
+        try {
+            os = fs.create(new Path(shareLibPath, jarFile.getName()));
+            is = new FileInputStream(jarFile);
+            IOUtils.copy(is, os);
+        } finally {
+            IOUtils.closeQuietly(is);
+            IOUtils.closeQuietly(os);
+        }
+    }
+
+    public static void copyResourceToHDFS(String localResource, String resourceName, String hdfsPath)
+        throws IOException {
+        Path appPath = new Path(hdfsPath);
+        FileSystem fs = appPath.getFileSystem(new Configuration());
+        if (!fs.exists(appPath)) {
+            fs.mkdirs(appPath);
+        }
+
+        OutputStream os = null;
+        InputStream is = null;
+        try {
+            os = fs.create(new Path(appPath, resourceName));
+            is = TestContext.class.getResourceAsStream(localResource);
+            IOUtils.copy(is, os);
+        } finally {
+            IOUtils.closeQuietly(is);
+            IOUtils.closeQuietly(os);
+        }
+    }
+
+    public static void deleteOozieShareLibsFromHDFS(String shareLibHdfsPath) throws IOException {
+        Path shareLibPath = new Path(shareLibHdfsPath);
+        FileSystem fs = shareLibPath.getFileSystem(new Configuration());
+        if (fs.exists(shareLibPath)) {
+            fs.delete(shareLibPath, true);
+        }
+    }
+
+    public static int executeWithURL(String command) throws Exception {
+        return new FalconCLI().run((command + " -url " + TestContext.BASE_URL).split("\\s+"));
+    }
 }
diff --git a/webapp/src/test/resources/apps/pig/data.txt b/webapp/src/test/resources/apps/pig/data.txt
new file mode 100644
index 0000000..e51d124
--- /dev/null
+++ b/webapp/src/test/resources/apps/pig/data.txt
@@ -0,0 +1,585 @@
+# This is customer data which is part of sakila sample database licensed under the New BSD license
+505,1,RAFAEL,ABNEY,RAFAEL.ABNEY@sakilacustomer.org,510,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+504,1,NATHANIEL,ADAM,NATHANIEL.ADAM@sakilacustomer.org,509,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+36,2,KATHLEEN,ADAMS,KATHLEEN.ADAMS@sakilacustomer.org,40,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+96,1,DIANA,ALEXANDER,DIANA.ALEXANDER@sakilacustomer.org,100,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+470,1,GORDON,ALLARD,GORDON.ALLARD@sakilacustomer.org,475,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+27,2,SHIRLEY,ALLEN,SHIRLEY.ALLEN@sakilacustomer.org,31,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+220,2,CHARLENE,ALVAREZ,CHARLENE.ALVAREZ@sakilacustomer.org,224,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+11,2,LISA,ANDERSON,LISA.ANDERSON@sakilacustomer.org,15,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+326,1,JOSE,ANDREW,JOSE.ANDREW@sakilacustomer.org,331,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+183,2,IDA,ANDREWS,IDA.ANDREWS@sakilacustomer.org,187,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+449,2,OSCAR,AQUINO,OSCAR.AQUINO@sakilacustomer.org,454,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+560,1,JORDAN,ARCHULETA,JORDAN.ARCHULETA@sakilacustomer.org,566,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+188,1,MELANIE,ARMSTRONG,MELANIE.ARMSTRONG@sakilacustomer.org,192,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+170,1,BEATRICE,ARNOLD,BEATRICE.ARNOLD@sakilacustomer.org,174,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+591,1,KENT,ARSENAULT,KENT.ARSENAULT@sakilacustomer.org,597,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+345,1,CARL,ARTIS,CARL.ARTIS@sakilacustomer.org,350,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+530,2,DARRYL,ASHCRAFT,DARRYL.ASHCRAFT@sakilacustomer.org,536,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+540,1,TYRONE,ASHER,TYRONE.ASHER@sakilacustomer.org,546,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+196,1,ALMA,AUSTIN,ALMA.AUSTIN@sakilacustomer.org,200,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+60,1,MILDRED,BAILEY,MILDRED.BAILEY@sakilacustomer.org,64,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+37,1,PAMELA,BAKER,PAMELA.BAKER@sakilacustomer.org,41,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+383,1,MARTIN,BALES,MARTIN.BALES@sakilacustomer.org,388,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+559,2,EVERETT,BANDA,EVERETT.BANDA@sakilacustomer.org,565,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+215,2,JESSIE,BANKS,JESSIE.BANKS@sakilacustomer.org,219,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+551,2,CLAYTON,BARBEE,CLAYTON.BARBEE@sakilacustomer.org,557,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+503,1,ANGEL,BARCLAY,ANGEL.BARCLAY@sakilacustomer.org,508,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+362,1,NICHOLAS,BARFIELD,NICHOLAS.BARFIELD@sakilacustomer.org,367,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+382,2,VICTOR,BARKLEY,VICTOR.BARKLEY@sakilacustomer.org,387,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+79,1,RACHEL,BARNES,RACHEL.BARNES@sakilacustomer.org,83,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+275,2,CAROLE,BARNETT,CAROLE.BARNETT@sakilacustomer.org,280,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+280,2,TRACEY,BARRETT,TRACEY.BARRETT@sakilacustomer.org,285,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+295,1,DAISY,BATES,DAISY.BATES@sakilacustomer.org,300,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+317,2,EDWARD,BAUGH,EDWARD.BAUGH@sakilacustomer.org,322,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+301,2,ROBERT,BAUGHMAN,ROBERT.BAUGHMAN@sakilacustomer.org,306,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+58,1,JEAN,BELL,JEAN.BELL@sakilacustomer.org,62,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+511,1,CHESTER,BENNER,CHESTER.BENNER@sakilacustomer.org,516,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+77,2,JANE,BENNETT,JANE.BENNETT@sakilacustomer.org,81,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+168,1,REGINA,BERRY,REGINA.BERRY@sakilacustomer.org,172,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+495,2,CHARLIE,BESS,CHARLIE.BESS@sakilacustomer.org,500,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+448,1,MIGUEL,BETANCOURT,MIGUEL.BETANCOURT@sakilacustomer.org,453,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+344,1,HENRY,BILLINGSLEY,HENRY.BILLINGSLEY@sakilacustomer.org,349,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+217,2,AGNES,BISHOP,AGNES.BISHOP@sakilacustomer.org,221,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+149,1,VALERIE,BLACK,VALERIE.BLACK@sakilacustomer.org,153,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+461,1,DEREK,BLAKELY,DEREK.BLAKELY@sakilacustomer.org,466,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+539,1,MATHEW,BOLIN,MATHEW.BOLIN@sakilacustomer.org,545,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+433,1,DON,BONE,DON.BONE@sakilacustomer.org,438,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+460,1,LEON,BOSTIC,LEON.BOSTIC@sakilacustomer.org,465,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+381,2,BOBBY,BOUDREAU,BOBBY.BOUDREAU@sakilacustomer.org,386,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+476,1,DERRICK,BOURQUE,DERRICK.BOURQUE@sakilacustomer.org,481,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+447,1,CLIFFORD,BOWENS,CLIFFORD.BOWENS@sakilacustomer.org,452,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+248,1,CAROLINE,BOWMAN,CAROLINE.BOWMAN@sakilacustomer.org,252,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+573,1,BYRON,BOX,BYRON.BOX@sakilacustomer.org,579,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+134,1,EMMA,BOYD,EMMA.BOYD@sakilacustomer.org,138,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+181,2,ANA,BRADLEY,ANA.BRADLEY@sakilacustomer.org,185,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+538,2,TED,BREAUX,TED.BREAUX@sakilacustomer.org,544,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+251,2,VICKIE,BREWER,VICKIE.BREWER@sakilacustomer.org,255,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+380,1,RUSSELL,BRINSON,RUSSELL.BRINSON@sakilacustomer.org,385,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+73,2,BEVERLY,BROOKS,BEVERLY.BROOKS@sakilacustomer.org,77,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+394,2,CHRIS,BROTHERS,CHRIS.BROTHERS@sakilacustomer.org,399,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+5,1,ELIZABETH,BROWN,ELIZABETH.BROWN@sakilacustomer.org,9,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+550,2,GUY,BROWNLEE,GUY.BROWNLEE@sakilacustomer.org,556,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+95,2,PAULA,BRYANT,PAULA.BRYANT@sakilacustomer.org,99,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+537,2,CLINTON,BUFORD,CLINTON.BUFORD@sakilacustomer.org,543,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+469,2,WESLEY,BULL,WESLEY.BULL@sakilacustomer.org,474,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+325,1,TIMOTHY,BUNN,TIMOTHY.BUNN@sakilacustomer.org,330,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+432,1,EDWIN,BURK,EDWIN.BURK@sakilacustomer.org,437,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+243,1,LYDIA,BURKE,LYDIA.BURKE@sakilacustomer.org,247,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+572,1,SIDNEY,BURLESON,SIDNEY.BURLESON@sakilacustomer.org,578,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+142,1,APRIL,BURNS,APRIL.BURNS@sakilacustomer.org,146,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+227,1,COLLEEN,BURTON,COLLEEN.BURTON@sakilacustomer.org,231,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+442,1,LEROY,BUSTAMANTE,LEROY.BUSTAMANTE@sakilacustomer.org,447,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+91,2,LOIS,BUTLER,LOIS.BUTLER@sakilacustomer.org,95,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+412,2,ALLEN,BUTTERFIELD,ALLEN.BUTTERFIELD@sakilacustomer.org,417,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+261,1,DEANNA,BYRD,DEANNA.BYRD@sakilacustomer.org,266,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+310,2,DANIEL,CABRAL,DANIEL.CABRAL@sakilacustomer.org,315,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+272,1,KAY,CALDWELL,KAY.CALDWELL@sakilacustomer.org,277,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+46,2,CATHERINE,CAMPBELL,CATHERINE.CAMPBELL@sakilacustomer.org,50,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+419,1,CHAD,CARBONE,CHAD.CARBONE@sakilacustomer.org,424,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+253,1,TERRY,CARLSON,TERRY.CARLSON@sakilacustomer.org,258,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+189,1,LORETTA,CARPENTER,LORETTA.CARPENTER@sakilacustomer.org,193,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+205,2,EILEEN,CARR,EILEEN.CARR@sakilacustomer.org,209,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+401,2,TONY,CARRANZA,TONY.CARRANZA@sakilacustomer.org,406,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+176,1,JUNE,CARROLL,JUNE.CARROLL@sakilacustomer.org,180,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+40,2,AMANDA,CARTER,AMANDA.CARTER@sakilacustomer.org,44,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+468,1,TIM,CARY,TIM.CARY@sakilacustomer.org,473,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+423,2,ALFRED,CASILLAS,ALFRED.CASILLAS@sakilacustomer.org,428,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+207,1,GERTRUDE,CASTILLO,GERTRUDE.CASTILLO@sakilacustomer.org,211,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+282,2,JENNY,CASTRO,JENNY.CASTRO@sakilacustomer.org,287,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+393,1,PHILIP,CAUSEY,PHILIP.CAUSEY@sakilacustomer.org,398,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+290,1,KRISTINA,CHAMBERS,KRISTINA.CHAMBERS@sakilacustomer.org,295,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+483,2,VERNON,CHAPA,VERNON.CHAPA@sakilacustomer.org,488,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+209,2,TONYA,CHAPMAN,TONYA.CHAPMAN@sakilacustomer.org,213,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+194,2,KRISTEN,CHAVEZ,KRISTEN.CHAVEZ@sakilacustomer.org,198,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+441,1,MARIO,CHEATHAM,MARIO.CHEATHAM@sakilacustomer.org,446,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+475,2,PEDRO,CHESTNUT,PEDRO.CHESTNUT@sakilacustomer.org,480,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+571,2,JOHNNIE,CHISHOLM,JOHNNIE.CHISHOLM@sakilacustomer.org,577,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+494,2,RAMON,CHOATE,RAMON.CHOATE@sakilacustomer.org,499,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+549,1,NELSON,CHRISTENSON,NELSON.CHRISTENSON@sakilacustomer.org,555,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+536,2,FERNANDO,CHURCHILL,FERNANDO.CHURCHILL@sakilacustomer.org,542,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+599,2,AUSTIN,CINTRON,AUSTIN.CINTRON@sakilacustomer.org,605,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+21,1,MICHELLE,CLARK,MICHELLE.CLARK@sakilacustomer.org,25,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+525,2,ADRIAN,CLARY,ADRIAN.CLARY@sakilacustomer.org,531,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+440,1,BERNARD,COLBY,BERNARD.COLBY@sakilacustomer.org,445,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+108,1,TRACY,COLE,TRACY.COLE@sakilacustomer.org,112,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+82,1,KATHRYN,COLEMAN,KATHRYN.COLEMAN@sakilacustomer.org,86,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+459,1,TOMMY,COLLAZO,TOMMY.COLLAZO@sakilacustomer.org,464,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+50,1,DIANE,COLLINS,DIANE.COLLINS@sakilacustomer.org,54,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+56,1,GLORIA,COOK,GLORIA.COOK@sakilacustomer.org,60,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+62,1,JOAN,COOPER,JOAN.COOPER@sakilacustomer.org,66,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+548,1,ALLAN,CORNISH,ALLAN.CORNISH@sakilacustomer.org,554,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+502,1,BRETT,CORNWELL,BRETT.CORNWELL@sakilacustomer.org,507,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+379,1,CARLOS,COUGHLIN,CARLOS.COUGHLIN@sakilacustomer.org,384,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+324,2,GARY,COY,GARY.COY@sakilacustomer.org,329,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+288,1,BOBBIE,CRAIG,BOBBIE.CRAIG@sakilacustomer.org,293,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+132,2,ESTHER,CRAWFORD,ESTHER.CRAWFORD@sakilacustomer.org,136,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+570,2,IVAN,CROMWELL,IVAN.CROMWELL@sakilacustomer.org,576,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+352,1,ALBERT,CROUSE,ALBERT.CROUSE@sakilacustomer.org,357,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+118,1,KIM,CRUZ,KIM.CRUZ@sakilacustomer.org,122,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+378,1,EUGENE,CULPEPPER,EUGENE.CULPEPPER@sakilacustomer.org,383,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+180,2,STACY,CUNNINGHAM,STACY.CUNNINGHAM@sakilacustomer.org,184,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+316,1,STEVEN,CURLEY,STEVEN.CURLEY@sakilacustomer.org,321,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+411,1,NORMAN,CURRIER,NORMAN.CURRIER@sakilacustomer.org,416,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+270,1,LEAH,CURTIS,LEAH.CURTIS@sakilacustomer.org,275,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+150,2,DANIELLE,DANIELS,DANIELLE.DANIELS@sakilacustomer.org,154,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+262,2,PATSY,DAVIDSON,PATSY.DAVIDSON@sakilacustomer.org,267,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+6,2,JENNIFER,DAVIS,JENNIFER.DAVIS@sakilacustomer.org,10,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+245,1,COURTNEY,DAY,COURTNEY.DAY@sakilacustomer.org,249,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+236,1,MARCIA,DEAN,MARCIA.DEAN@sakilacustomer.org,240,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+467,2,ALVIN,DELOACH,ALVIN.DELOACH@sakilacustomer.org,472,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+519,2,RON,DELUCA,RON.DELUCA@sakilacustomer.org,525,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+598,1,WADE,DELVALLE,WADE.DELVALLE@sakilacustomer.org,604,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+481,1,HERMAN,DEVORE,HERMAN.DEVORE@sakilacustomer.org,486,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+99,2,EMILY,DIAZ,EMILY.DIAZ@sakilacustomer.org,103,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+139,1,AMBER,DIXON,AMBER.DIXON@sakilacustomer.org,143,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+257,2,MARSHA,DOUGLAS,MARSHA.DOUGLAS@sakilacustomer.org,262,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+392,2,SEAN,DOUGLASS,SEAN.DOUGLASS@sakilacustomer.org,397,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+458,1,LLOYD,DOWD,LLOYD.DOWD@sakilacustomer.org,463,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+597,1,FREDDIE,DUGGAN,FREDDIE.DUGGAN@sakilacustomer.org,603,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+177,2,SAMANTHA,DUNCAN,SAMANTHA.DUNCAN@sakilacustomer.org,181,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+160,2,ERIN,DUNN,ERIN.DUNN@sakilacustomer.org,164,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+418,2,JEFF,EAST,JEFF.EAST@sakilacustomer.org,423,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+466,1,LEO,EBERT,LEO.EBERT@sakilacustomer.org,471,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+49,2,JOYCE,EDWARDS,JOYCE.EDWARDS@sakilacustomer.org,53,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+422,1,MELVIN,ELLINGTON,MELVIN.ELLINGTON@sakilacustomer.org,427,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+193,2,KATIE,ELLIOTT,KATIE.ELLIOTT@sakilacustomer.org,197,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+114,2,GRACE,ELLIS,GRACE.ELLIS@sakilacustomer.org,118,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+535,1,JAVIER,ELROD,JAVIER.ELROD@sakilacustomer.org,541,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+524,1,JARED,ELY,JARED.ELY@sakilacustomer.org,530,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+547,1,KURT,EMMONS,KURT.EMMONS@sakilacustomer.org,553,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+417,1,TRAVIS,ESTEP,TRAVIS.ESTEP@sakilacustomer.org,422,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+48,1,ANN,EVANS,ANN.EVANS@sakilacustomer.org,52,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+300,1,JOHN,FARNSWORTH,JOHN.FARNSWORTH@sakilacustomer.org,305,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+439,2,ALEXANDER,FENNELL,ALEXANDER.FENNELL@sakilacustomer.org,444,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+156,1,BERTHA,FERGUSON,BERTHA.FERGUSON@sakilacustomer.org,160,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+223,1,MELINDA,FERNANDEZ,MELINDA.FERNANDEZ@sakilacustomer.org,227,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+201,1,VICKI,FIELDS,VICKI.FIELDS@sakilacustomer.org,205,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+113,2,CINDY,FISHER,CINDY.FISHER@sakilacustomer.org,117,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+258,1,MYRTLE,FLEMING,MYRTLE.FLEMING@sakilacustomer.org,263,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+293,2,MAE,FLETCHER,MAE.FLETCHER@sakilacustomer.org,298,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+89,1,JULIA,FLORES,JULIA.FLORES@sakilacustomer.org,93,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+102,1,CRYSTAL,FORD,CRYSTAL.FORD@sakilacustomer.org,106,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+445,1,MICHEAL,FORMAN,MICHEAL.FORMAN@sakilacustomer.org,450,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+596,1,ENRIQUE,FORSYTHE,ENRIQUE.FORSYTHE@sakilacustomer.org,602,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+509,1,RAUL,FORTIER,RAUL.FORTIER@sakilacustomer.org,514,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+377,1,HOWARD,FORTNER,HOWARD.FORTNER@sakilacustomer.org,382,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+93,1,PHYLLIS,FOSTER,PHYLLIS.FOSTER@sakilacustomer.org,97,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+351,1,JACK,FOUST,JACK.FOUST@sakilacustomer.org,356,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+250,2,JO,FOWLER,JO.FOWLER@sakilacustomer.org,254,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+186,2,HOLLY,FOX,HOLLY.FOX@sakilacustomer.org,190,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+350,1,JUAN,FRALEY,JUAN.FRALEY@sakilacustomer.org,355,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+431,2,JOEL,FRANCISCO,JOEL.FRANCISCO@sakilacustomer.org,436,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+199,2,BETH,FRANKLIN,BETH.FRANKLIN@sakilacustomer.org,203,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+242,1,GLENDA,FRAZIER,GLENDA.FRAZIER@sakilacustomer.org,246,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+123,2,SHANNON,FREEMAN,SHANNON.FREEMAN@sakilacustomer.org,127,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+234,1,CLAUDIA,FULLER,CLAUDIA.FULLER@sakilacustomer.org,238,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+356,2,GERALD,FULTZ,GERALD.FULTZ@sakilacustomer.org,361,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+557,1,FELIX,GAFFNEY,FELIX.GAFFNEY@sakilacustomer.org,563,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+376,1,RANDY,GAITHER,RANDY.GAITHER@sakilacustomer.org,381,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+391,1,CLARENCE,GAMEZ,CLARENCE.GAMEZ@sakilacustomer.org,396,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+465,1,FLOYD,GANDY,FLOYD.GANDY@sakilacustomer.org,470,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+299,2,JAMES,GANNON,JAMES.GANNON@sakilacustomer.org,304,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+18,2,CAROL,GARCIA,CAROL.GARCIA@sakilacustomer.org,22,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+569,2,DAVE,GARDINER,DAVE.GARDINER@sakilacustomer.org,575,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+164,2,JOANN,GARDNER,JOANN.GARDNER@sakilacustomer.org,168,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+238,1,NELLIE,GARRETT,NELLIE.GARRETT@sakilacustomer.org,242,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+224,2,PEARL,GARZA,PEARL.GARZA@sakilacustomer.org,228,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+457,2,BILL,GAVIN,BILL.GAVIN@sakilacustomer.org,462,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+501,1,RUBEN,GEARY,RUBEN.GEARY@sakilacustomer.org,506,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+230,2,JOY,GEORGE,JOY.GEORGE@sakilacustomer.org,234,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+116,1,VICTORIA,GIBSON,VICTORIA.GIBSON@sakilacustomer.org,120,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+237,1,TANYA,GILBERT,TANYA.GILBERT@sakilacustomer.org,241,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+474,2,DUSTIN,GILLETTE,DUSTIN.GILLETTE@sakilacustomer.org,479,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+349,2,JOE,GILLILAND,JOE.GILLILAND@sakilacustomer.org,354,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+338,1,DENNIS,GILMAN,DENNIS.GILMAN@sakilacustomer.org,343,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+121,1,JOSEPHINE,GOMEZ,JOSEPHINE.GOMEZ@sakilacustomer.org,125,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+94,1,NORMA,GONZALES,NORMA.GONZALES@sakilacustomer.org,98,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+38,1,MARTHA,GONZALEZ,MARTHA.GONZALEZ@sakilacustomer.org,42,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+367,1,ADAM,GOOCH,ADAM.GOOCH@sakilacustomer.org,372,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+143,1,LESLIE,GORDON,LESLIE.GORDON@sakilacustomer.org,147,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+343,1,DOUGLAS,GRAF,DOUGLAS.GRAF@sakilacustomer.org,348,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+104,1,RITA,GRAHAM,RITA.GRAHAM@sakilacustomer.org,108,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+154,2,MICHELE,GRANT,MICHELE.GRANT@sakilacustomer.org,158,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+276,1,BRANDY,GRAVES,BRANDY.GRAVES@sakilacustomer.org,281,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+69,2,JUDY,GRAY,JUDY.GRAY@sakilacustomer.org,73,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+309,1,CHRISTOPHER,GRECO,CHRISTOPHER.GRECO@sakilacustomer.org,314,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+35,2,VIRGINIA,GREEN,VIRGINIA.GREEN@sakilacustomer.org,39,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+191,1,JEANETTE,GREENE,JEANETTE.GREENE@sakilacustomer.org,195,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+284,1,SONIA,GREGORY,SONIA.GREGORY@sakilacustomer.org,289,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+454,2,ALEX,GRESHAM,ALEX.GRESHAM@sakilacustomer.org,459,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+580,1,ROSS,GREY,ROSS.GREY@sakilacustomer.org,586,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+98,1,LILLIAN,GRIFFIN,LILLIAN.GRIFFIN@sakilacustomer.org,102,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+308,1,THOMAS,GRIGSBY,THOMAS.GRIGSBY@sakilacustomer.org,313,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+355,2,TERRY,GRISSOM,TERRY.GRISSOM@sakilacustomer.org,360,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+556,2,ARMANDO,GRUBER,ARMANDO.GRUBER@sakilacustomer.org,562,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+523,1,HARVEY,GUAJARDO,HARVEY.GUAJARDO@sakilacustomer.org,529,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+529,2,ERIK,GUILLEN,ERIK.GUILLEN@sakilacustomer.org,535,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+595,1,TERRENCE,GUNDERSON,TERRENCE.GUNDERSON@sakilacustomer.org,601,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+202,2,CARLA,GUTIERREZ,CARLA.GUTIERREZ@sakilacustomer.org,206,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+296,2,RAMONA,HALE,RAMONA.HALE@sakilacustomer.org,301,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+26,2,JESSICA,HALL,JESSICA.HALL@sakilacustomer.org,30,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+103,1,GLADYS,HAMILTON,GLADYS.HAMILTON@sakilacustomer.org,107,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+590,2,SETH,HANNON,SETH.HANNON@sakilacustomer.org,596,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+222,2,DELORES,HANSEN,DELORES.HANSEN@sakilacustomer.org,226,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+244,2,VIOLA,HANSON,VIOLA.HANSON@sakilacustomer.org,248,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+518,1,GABRIEL,HARDER,GABRIEL.HARDER@sakilacustomer.org,524,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+400,2,BRYAN,HARDISON,BRYAN.HARDISON@sakilacustomer.org,405,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+493,1,BRENT,HARKINS,BRENT.HARKINS@sakilacustomer.org,498,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+185,1,ROBERTA,HARPER,ROBERTA.HARPER@sakilacustomer.org,189,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+15,1,HELEN,HARRIS,HELEN.HARRIS@sakilacustomer.org,19,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+115,1,WENDY,HARRISON,WENDY.HARRISON@sakilacustomer.org,119,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+179,1,DANA,HART,DANA.HART@sakilacustomer.org,183,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+225,1,ARLENE,HARVEY,ARLENE.HARVEY@sakilacustomer.org,229,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+480,1,COREY,HAUSER,COREY.HAUSER@sakilacustomer.org,485,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+522,2,ARNOLD,HAVENS,ARNOLD.HAVENS@sakilacustomer.org,528,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+159,1,JILL,HAWKINS,JILL.HAWKINS@sakilacustomer.org,163,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+421,1,LEE,HAWKS,LEE.HAWKS@sakilacustomer.org,426,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+100,1,ROBIN,HAYES,ROBIN.HAYES@sakilacustomer.org,104,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+390,1,SHAWN,HEATON,SHAWN.HEATON@sakilacustomer.org,395,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+81,1,ANDREA,HENDERSON,ANDREA.HENDERSON@sakilacustomer.org,85,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+568,2,ALBERTO,HENNING,ALBERTO.HENNING@sakilacustomer.org,574,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+133,1,PAULINE,HENRY,PAULINE.HENRY@sakilacustomer.org,137,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+29,2,ANGELA,HERNANDEZ,ANGELA.HERNANDEZ@sakilacustomer.org,33,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+266,2,NORA,HERRERA,NORA.HERRERA@sakilacustomer.org,271,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+589,1,TRACY,HERRMANN,TRACY.HERRMANN@sakilacustomer.org,595,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+528,1,CLAUDE,HERZOG,CLAUDE.HERZOG@sakilacustomer.org,534,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+594,1,EDUARDO,HIATT,EDUARDO.HIATT@sakilacustomer.org,600,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+131,2,MONICA,HICKS,MONICA.HICKS@sakilacustomer.org,135,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+444,2,MARCUS,HIDALGO,MARCUS.HIDALGO@sakilacustomer.org,449,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+33,2,ANNA,HILL,ANNA.HILL@sakilacustomer.org,37,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+479,1,ZACHARY,HITE,ZACHARY.HITE@sakilacustomer.org,484,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+252,2,MATTIE,HOFFMAN,MATTIE.HOFFMAN@sakilacustomer.org,256,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+256,2,MABEL,HOLLAND,MABEL.HOLLAND@sakilacustomer.org,261,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+385,1,PHILLIP,HOLM,PHILLIP.HOLM@sakilacustomer.org,390,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+145,1,LUCILLE,HOLMES,LUCILLE.HOLMES@sakilacustomer.org,149,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+291,1,TONI,HOLT,TONI.HOLT@sakilacustomer.org,296,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+263,1,HILDA,HOPKINS,HILDA.HOPKINS@sakilacustomer.org,268,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+278,2,BILLIE,HORTON,BILLIE.HORTON@sakilacustomer.org,283,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+430,1,RAY,HOULE,RAY.HOULE@sakilacustomer.org,435,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+65,2,ROSE,HOWARD,ROSE.HOWARD@sakilacustomer.org,69,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+219,2,WILLIE,HOWELL,WILLIE.HOWELL@sakilacustomer.org,223,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+508,2,MILTON,HOWLAND,MILTON.HOWLAND@sakilacustomer.org,513,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+162,2,LAUREN,HUDSON,LAUREN.HUDSON@sakilacustomer.org,166,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+366,1,BRANDON,HUEY,BRANDON.HUEY@sakilacustomer.org,371,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+88,2,BONNIE,HUGHES,BONNIE.HUGHES@sakilacustomer.org,92,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+148,1,ELEANOR,HUNT,ELEANOR.HUNT@sakilacustomer.org,152,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+130,1,CHARLOTTE,HUNTER,CHARLOTTE.HUNTER@sakilacustomer.org,134,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+374,2,JEREMY,HURTADO,JEREMY.HURTADO@sakilacustomer.org,379,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+410,2,CURTIS,IRBY,CURTIS.IRBY@sakilacustomer.org,415,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+429,2,FREDERICK,ISBELL,FREDERICK.ISBELL@sakilacustomer.org,434,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+399,1,DANNY,ISOM,DANNY.ISOM@sakilacustomer.org,404,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+13,2,KAREN,JACKSON,KAREN.JACKSON@sakilacustomer.org,17,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+231,1,GEORGIA,JACOBS,GEORGIA.JACOBS@sakilacustomer.org,235,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+71,1,KATHY,JAMES,KATHY.JAMES@sakilacustomer.org,75,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+83,1,LOUISE,JENKINS,LOUISE.JENKINS@sakilacustomer.org,87,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+274,1,NAOMI,JENNINGS,NAOMI.JENNINGS@sakilacustomer.org,279,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+259,2,LENA,JENSEN,LENA.JENSEN@sakilacustomer.org,264,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+277,2,OLGA,JIMENEZ,OLGA.JIMENEZ@sakilacustomer.org,282,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+2,1,PATRICIA,JOHNSON,PATRICIA.JOHNSON@sakilacustomer.org,6,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+214,1,KRISTIN,JOHNSTON,KRISTIN.JOHNSTON@sakilacustomer.org,218,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+4,2,BARBARA,JONES,BARBARA.JONES@sakilacustomer.org,8,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+110,2,TIFFANY,JORDAN,TIFFANY.JORDAN@sakilacustomer.org,114,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+337,1,JERRY,JORDON,JERRY.JORDON@sakilacustomer.org,342,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+307,2,JOSEPH,JOY,JOSEPH.JOY@sakilacustomer.org,312,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+389,1,ALAN,KAHN,ALAN.KAHN@sakilacustomer.org,394,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+198,2,ELSIE,KELLEY,ELSIE.KELLEY@sakilacustomer.org,202,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+74,1,DENISE,KELLY,DENISE.KELLY@sakilacustomer.org,78,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+137,2,RHONDA,KENNEDY,RHONDA.KENNEDY@sakilacustomer.org,141,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+464,1,JEROME,KENYON,JEROME.KENYON@sakilacustomer.org,469,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+233,2,LILLIE,KIM,LILLIE.KIM@sakilacustomer.org,237,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+500,1,REGINALD,KINDER,REGINALD.KINDER@sakilacustomer.org,505,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+30,1,MELISSA,KING,MELISSA.KING@sakilacustomer.org,34,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+155,1,GAIL,KNIGHT,GAIL.KNIGHT@sakilacustomer.org,159,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+546,1,KELLY,KNOTT,KELLY.KNOTT@sakilacustomer.org,552,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+306,1,CHARLES,KOWALSKI,CHARLES.KOWALSKI@sakilacustomer.org,311,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+492,2,LESTER,KRAUS,LESTER.KRAUS@sakilacustomer.org,497,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+428,2,HERBERT,KRUGER,HERBERT.KRUGER@sakilacustomer.org,433,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+292,2,MISTY,LAMBERT,MISTY.LAMBERT@sakilacustomer.org,297,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+420,1,JACOB,LANCE,JACOB.LANCE@sakilacustomer.org,425,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+182,1,RENEE,LANE,RENEE.LANE@sakilacustomer.org,186,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+579,2,DARYL,LARUE,DARYL.LARUE@sakilacustomer.org,585,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+192,1,LAURIE,LAWRENCE,LAURIE.LAWRENCE@sakilacustomer.org,196,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+200,2,JEANNE,LAWSON,JEANNE.LAWSON@sakilacustomer.org,204,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+361,2,LAWRENCE,LAWTON,LAWRENCE.LAWTON@sakilacustomer.org,366,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+24,2,KIMBERLY,LEE,KIMBERLY.LEE@sakilacustomer.org,28,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+373,1,LOUIS,LEONE,LOUIS.LEONE@sakilacustomer.org,378,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+23,2,SARAH,LEWIS,SARAH.LEWIS@sakilacustomer.org,27,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+314,1,GEORGE,LINTON,GEORGE.LINTON@sakilacustomer.org,319,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+226,2,MAUREEN,LITTLE,MAUREEN.LITTLE@sakilacustomer.org,230,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+555,1,DWIGHT,LOMBARDI,DWIGHT.LOMBARDI@sakilacustomer.org,561,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+86,2,JACQUELINE,LONG,JACQUELINE.LONG@sakilacustomer.org,90,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+32,1,AMY,LOPEZ,AMY.LOPEZ@sakilacustomer.org,36,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+438,1,BARRY,LOVELACE,BARRY.LOVELACE@sakilacustomer.org,443,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+273,2,PRISCILLA,LOWE,PRISCILLA.LOWE@sakilacustomer.org,278,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+286,1,VELMA,LUCAS,VELMA.LUCAS@sakilacustomer.org,291,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+578,2,WILLARD,LUMPKIN,WILLARD.LUMPKIN@sakilacustomer.org,584,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+478,1,LEWIS,LYMAN,LEWIS.LYMAN@sakilacustomer.org,483,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+235,1,JACKIE,LYNCH,JACKIE.LYNCH@sakilacustomer.org,239,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+372,2,STEVE,MACKENZIE,STEVE.MACKENZIE@sakilacustomer.org,377,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+360,2,RALPH,MADRIGAL,RALPH.MADRIGAL@sakilacustomer.org,365,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+323,2,MATTHEW,MAHAN,MATTHEW.MAHAN@sakilacustomer.org,328,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+313,2,DONALD,MAHON,DONALD.MAHON@sakilacustomer.org,318,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+577,2,CLIFTON,MALCOLM,CLIFTON.MALCOLM@sakilacustomer.org,583,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+336,1,JOSHUA,MARK,JOSHUA.MARK@sakilacustomer.org,341,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+359,2,WILLIE,MARKHAM,WILLIE.MARKHAM@sakilacustomer.org,364,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+358,2,SAMUEL,MARLOW,SAMUEL.MARLOW@sakilacustomer.org,363,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+119,1,SHERRY,MARSHALL,SHERRY.MARSHALL@sakilacustomer.org,123,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+453,1,CALVIN,MARTEL,CALVIN.MARTEL@sakilacustomer.org,458,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+19,1,RUTH,MARTINEZ,RUTH.MARTINEZ@sakilacustomer.org,23,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+342,1,HAROLD,MARTINO,HAROLD.MARTINO@sakilacustomer.org,347,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+135,2,JUANITA,MASON,JUANITA.MASON@sakilacustomer.org,139,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+491,2,RICK,MATTOX,RICK.MATTOX@sakilacustomer.org,496,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+335,1,GREGORY,MAULDIN,GREGORY.MAULDIN@sakilacustomer.org,340,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+264,1,GWENDOLYN,MAY,GWENDOLYN.MAY@sakilacustomer.org,269,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+567,2,ALFREDO,MCADAMS,ALFREDO.MCADAMS@sakilacustomer.org,573,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+593,2,RENE,MCALISTER,RENE.MCALISTER@sakilacustomer.org,599,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+576,2,MORRIS,MCCARTER,MORRIS.MCCARTER@sakilacustomer.org,582,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+427,2,JESUS,MCCARTNEY,JESUS.MCCARTNEY@sakilacustomer.org,432,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+218,1,VERA,MCCOY,VERA.MCCOY@sakilacustomer.org,222,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+305,1,RICHARD,MCCRARY,RICHARD.MCCRARY@sakilacustomer.org,310,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+517,2,BRAD,MCCURDY,BRAD.MCCURDY@sakilacustomer.org,523,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+117,1,EDITH,MCDONALD,EDITH.MCDONALD@sakilacustomer.org,121,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+490,1,SAM,MCDUFFIE,SAM.MCDUFFIE@sakilacustomer.org,495,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+285,1,MIRIAM,MCKINNEY,MIRIAM.MCKINNEY@sakilacustomer.org,290,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+334,2,RAYMOND,MCWHORTER,RAYMOND.MCWHORTER@sakilacustomer.org,339,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+489,1,RICARDO,MEADOR,RICARDO.MEADOR@sakilacustomer.org,494,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+249,2,DORA,MEDINA,DORA.MEDINA@sakilacustomer.org,253,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+527,1,CORY,MEEHAN,CORY.MEEHAN@sakilacustomer.org,533,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+398,1,ANTONIO,MEEK,ANTONIO.MEEK@sakilacustomer.org,403,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+566,1,CASEY,MENA,CASEY.MENA@sakilacustomer.org,572,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+341,1,PETER,MENARD,PETER.MENARD@sakilacustomer.org,346,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+246,1,MARIAN,MENDOZA,MARIAN.MENDOZA@sakilacustomer.org,250,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+216,1,NATALIE,MEYER,NATALIE.MEYER@sakilacustomer.org,220,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+533,1,JESSIE,MILAM,JESSIE.MILAM@sakilacustomer.org,539,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+287,2,BECKY,MILES,BECKY.MILES@sakilacustomer.org,292,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+488,2,SHANE,MILLARD,SHANE.MILLARD@sakilacustomer.org,493,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+7,1,MARIA,MILLER,MARIA.MILLER@sakilacustomer.org,11,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+152,1,ALICIA,MILLS,ALICIA.MILLS@sakilacustomer.org,156,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+452,1,TOM,MILNER,TOM.MILNER@sakilacustomer.org,457,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+41,1,STEPHANIE,MITCHELL,STEPHANIE.MITCHELL@sakilacustomer.org,45,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+409,2,RODNEY,MOELLER,RODNEY.MOELLER@sakilacustomer.org,414,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+211,1,STACEY,MONTGOMERY,STACEY.MONTGOMERY@sakilacustomer.org,215,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+9,2,MARGARET,MOORE,MARGARET.MOORE@sakilacustomer.org,13,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+136,2,ANITA,MORALES,ANITA.MORALES@sakilacustomer.org,140,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+247,1,STELLA,MORENO,STELLA.MORENO@sakilacustomer.org,251,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+57,2,EVELYN,MORGAN,EVELYN.MORGAN@sakilacustomer.org,61,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+388,2,CRAIG,MORRELL,CRAIG.MORRELL@sakilacustomer.org,393,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+53,1,HEATHER,MORRIS,HEATHER.MORRIS@sakilacustomer.org,57,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+221,1,BESSIE,MORRISON,BESSIE.MORRISON@sakilacustomer.org,225,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+322,1,JASON,MORRISSEY,JASON.MORRISSEY@sakilacustomer.org,327,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+426,1,BRADLEY,MOTLEY,BRADLEY.MOTLEY@sakilacustomer.org,431,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+59,1,CHERYL,MURPHY,CHERYL.MURPHY@sakilacustomer.org,63,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+122,1,THELMA,MURRAY,THELMA.MURRAY@sakilacustomer.org,126,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+408,1,MANUEL,MURRELL,MANUEL.MURRELL@sakilacustomer.org,413,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+101,1,PEGGY,MYERS,PEGGY.MYERS@sakilacustomer.org,105,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+39,1,DEBRA,NELSON,DEBRA.NELSON@sakilacustomer.org,43,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+565,2,JAIME,NETTLES,JAIME.NETTLES@sakilacustomer.org,571,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+437,2,RANDALL,NEUMANN,RANDALL.NEUMANN@sakilacustomer.org,442,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+340,1,PATRICK,NEWSOM,PATRICK.NEWSOM@sakilacustomer.org,345,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+354,2,JUSTIN,NGO,JUSTIN.NGO@sakilacustomer.org,359,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+229,1,TAMARA,NGUYEN,TAMARA.NGUYEN@sakilacustomer.org,233,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+153,2,SUZANNE,NICHOLS,SUZANNE.NICHOLS@sakilacustomer.org,157,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+516,2,ELMER,NOE,ELMER.NOE@sakilacustomer.org,522,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+545,2,JULIO,NOLAND,JULIO.NOLAND@sakilacustomer.org,551,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+544,2,CODY,NOLEN,CODY.NOLEN@sakilacustomer.org,550,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+281,2,LEONA,OBRIEN,LEONA.OBRIEN@sakilacustomer.org,286,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+588,1,MARION,OCAMPO,MARION.OCAMPO@sakilacustomer.org,594,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+575,2,ISAAC,OGLESBY,ISAAC.OGLESBY@sakilacustomer.org,581,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+473,2,JORGE,OLIVARES,JORGE.OLIVARES@sakilacustomer.org,478,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+210,2,ELLA,OLIVER,ELLA.OLIVER@sakilacustomer.org,214,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+175,1,ANNETTE,OLSON,ANNETTE.OLSON@sakilacustomer.org,179,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+554,1,DWAYNE,OLVERA,DWAYNE.OLVERA@sakilacustomer.org,560,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+120,2,SYLVIA,ORTIZ,SYLVIA.ORTIZ@sakilacustomer.org,124,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+499,2,MARC,OUTLAW,MARC.OUTLAW@sakilacustomer.org,504,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+111,1,CARMEN,OWENS,CARMEN.OWENS@sakilacustomer.org,115,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+477,1,DAN,PAINE,DAN.PAINE@sakilacustomer.org,482,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+151,2,MEGAN,PALMER,MEGAN.PALMER@sakilacustomer.org,155,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+47,1,FRANCES,PARKER,FRANCES.PARKER@sakilacustomer.org,51,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+87,1,WANDA,PATTERSON,WANDA.PATTERSON@sakilacustomer.org,91,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+166,1,LYNN,PAYNE,LYNN.PAYNE@sakilacustomer.org,170,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+255,2,IRMA,PEARSON,IRMA.PEARSON@sakilacustomer.org,260,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+543,1,LANCE,PEMBERTON,LANCE.PEMBERTON@sakilacustomer.org,549,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+298,1,ERIKA,PENA,ERIKA.PENA@sakilacustomer.org,303,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+42,2,CAROLYN,PEREZ,CAROLYN.PEREZ@sakilacustomer.org,46,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+161,1,GERALDINE,PERKINS,GERALDINE.PERKINS@sakilacustomer.org,165,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+84,2,SARA,PERRY,SARA.PERRY@sakilacustomer.org,88,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+339,2,WALTER,PERRYMAN,WALTER.PERRYMAN@sakilacustomer.org,344,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+197,2,SUE,PETERS,SUE.PETERS@sakilacustomer.org,201,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+68,1,NICOLE,PETERSON,NICOLE.PETERSON@sakilacustomer.org,72,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+564,2,BOB,PFEIFFER,BOB.PFEIFFER@sakilacustomer.org,570,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+45,1,JANET,PHILLIPS,JANET.PHILLIPS@sakilacustomer.org,49,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+167,2,SALLY,PIERCE,SALLY.PIERCE@sakilacustomer.org,171,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+416,2,JEFFERY,PINSON,JEFFERY.PINSON@sakilacustomer.org,421,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+553,1,MAX,PITT,MAX.PITT@sakilacustomer.org,559,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+487,2,HECTOR,POINDEXTER,HECTOR.POINDEXTER@sakilacustomer.org,492,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+129,1,CARRIE,PORTER,CARRIE.PORTER@sakilacustomer.org,133,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+371,1,BILLY,POULIN,BILLY.POULIN@sakilacustomer.org,376,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+85,2,ANNE,POWELL,ANNE.POWELL@sakilacustomer.org,89,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+463,2,DARRELL,POWER,DARRELL.POWER@sakilacustomer.org,468,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+563,2,KEN,PREWITT,KEN.PREWITT@sakilacustomer.org,569,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+76,2,IRENE,PRICE,IRENE.PRICE@sakilacustomer.org,80,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+415,1,GLENN,PULLEN,GLENN.PULLEN@sakilacustomer.org,420,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+333,2,ANDREW,PURDY,ANDREW.PURDY@sakilacustomer.org,338,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+332,1,STEPHEN,QUALLS,STEPHEN.QUALLS@sakilacustomer.org,337,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+436,1,TROY,QUIGLEY,TROY.QUIGLEY@sakilacustomer.org,441,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+348,2,ROGER,QUINTANILLA,ROGER.QUINTANILLA@sakilacustomer.org,353,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+414,1,VINCENT,RALSTON,VINCENT.RALSTON@sakilacustomer.org,419,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+70,2,CHRISTINA,RAMIREZ,CHRISTINA.RAMIREZ@sakilacustomer.org,74,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+140,1,EVA,RAMOS,EVA.RAMOS@sakilacustomer.org,144,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+515,1,ANDRE,RAPP,ANDRE.RAPP@sakilacustomer.org,521,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+407,1,DALE,RATCLIFF,DALE.RATCLIFF@sakilacustomer.org,412,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+173,1,AUDREY,RAY,AUDREY.RAY@sakilacustomer.org,177,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+451,1,JIM,REA,JIM.REA@sakilacustomer.org,456,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+55,2,DORIS,REED,DORIS.REED@sakilacustomer.org,59,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+232,2,CONSTANCE,REID,CONSTANCE.REID@sakilacustomer.org,236,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+532,2,NEIL,RENNER,NEIL.RENNER@sakilacustomer.org,538,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+141,1,DEBBIE,REYES,DEBBIE.REYES@sakilacustomer.org,145,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+112,2,ROSA,REYNOLDS,ROSA.REYNOLDS@sakilacustomer.org,116,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+507,2,EDGAR,RHOADS,EDGAR.RHOADS@sakilacustomer.org,512,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+297,1,SHERRI,RHODES,SHERRI.RHODES@sakilacustomer.org,302,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+146,1,JAMIE,RICE,JAMIE.RICE@sakilacustomer.org,150,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+212,2,WILMA,RICHARDS,WILMA.RICHARDS@sakilacustomer.org,216,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+63,1,ASHLEY,RICHARDSON,ASHLEY.RICHARDSON@sakilacustomer.org,67,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+456,2,RONNIE,RICKETTS,RONNIE.RICKETTS@sakilacustomer.org,461,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+357,1,KEITH,RICO,KEITH.RICO@sakilacustomer.org,362,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+187,2,BRITTANY,RILEY,BRITTANY.RILEY@sakilacustomer.org,191,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+312,2,MARK,RINEHART,MARK.RINEHART@sakilacustomer.org,317,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+61,2,KATHERINE,RIVERA,KATHERINE.RIVERA@sakilacustomer.org,65,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+450,1,JAY,ROBB,JAY.ROBB@sakilacustomer.org,455,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+331,1,ERIC,ROBERT,ERIC.ROBERT@sakilacustomer.org,336,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+43,2,CHRISTINE,ROBERTS,CHRISTINE.ROBERTS@sakilacustomer.org,47,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+147,2,JOANNE,ROBERTSON,JOANNE.ROBERTSON@sakilacustomer.org,151,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+472,1,GREG,ROBINS,GREG.ROBINS@sakilacustomer.org,477,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+20,2,SHARON,ROBINSON,SHARON.ROBINSON@sakilacustomer.org,24,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+22,1,LAURA,RODRIGUEZ,LAURA.RODRIGUEZ@sakilacustomer.org,26,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+289,1,VIOLET,RODRIQUEZ,VIOLET.RODRIQUEZ@sakilacustomer.org,294,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+54,1,TERESA,ROGERS,TERESA.ROGERS@sakilacustomer.org,58,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+239,2,MINNIE,ROMERO,MINNIE.ROMERO@sakilacustomer.org,243,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+157,2,DARLENE,ROSE,DARLENE.ROSE@sakilacustomer.org,161,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+80,1,MARILYN,ROSS,MARILYN.ROSS@sakilacustomer.org,84,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+304,2,DAVID,ROYAL,DAVID.ROYAL@sakilacustomer.org,309,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+184,1,VIVIAN,RUIZ,VIVIAN.RUIZ@sakilacustomer.org,188,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+97,2,ANNIE,RUSSELL,ANNIE.RUSSELL@sakilacustomer.org,101,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+203,1,TARA,RYAN,TARA.RYAN@sakilacustomer.org,207,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+347,2,RYAN,SALISBURY,RYAN.SALISBURY@sakilacustomer.org,352,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+498,1,GENE,SANBORN,GENE.SANBORN@sakilacustomer.org,503,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+52,1,JULIE,SANCHEZ,JULIE.SANCHEZ@sakilacustomer.org,56,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+75,2,TAMMY,SANDERS,TAMMY.SANDERS@sakilacustomer.org,79,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+303,2,WILLIAM,SATTERFIELD,WILLIAM.SATTERFIELD@sakilacustomer.org,308,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+471,1,DEAN,SAUER,DEAN.SAUER@sakilacustomer.org,476,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+353,1,JONATHAN,SCARBOROUGH,JONATHAN.SCARBOROUGH@sakilacustomer.org,358,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+387,2,JESSE,SCHILLING,JESSE.SCHILLING@sakilacustomer.org,392,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+204,1,ROSEMARY,SCHMIDT,ROSEMARY.SCHMIDT@sakilacustomer.org,208,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+405,1,LEONARD,SCHOFIELD,LEONARD.SCHOFIELD@sakilacustomer.org,410,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+397,1,JIMMY,SCHRADER,JIMMY.SCHRADER@sakilacustomer.org,402,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+321,1,KEVIN,SCHULER,KEVIN.SCHULER@sakilacustomer.org,326,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+320,2,ANTHONY,SCHWAB,ANTHONY.SCHWAB@sakilacustomer.org,325,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+365,2,BRUCE,SCHWARZ,BRUCE.SCHWARZ@sakilacustomer.org,370,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+34,2,REBECCA,SCOTT,REBECCA.SCOTT@sakilacustomer.org,38,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+404,2,STANLEY,SCROGGINS,STANLEY.SCROGGINS@sakilacustomer.org,409,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+526,2,KARL,SEAL,KARL.SEAL@sakilacustomer.org,532,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+375,2,AARON,SELBY,AARON.SELBY@sakilacustomer.org,380,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+506,2,LESLIE,SEWARD,LESLIE.SEWARD@sakilacustomer.org,511,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+396,1,EARL,SHANKS,EARL.SHANKS@sakilacustomer.org,401,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+144,1,CLARA,SHAW,CLARA.SHAW@sakilacustomer.org,148,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+435,2,RICKY,SHELBY,RICKY.SHELBY@sakilacustomer.org,440,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+330,1,SCOTT,SHELLEY,SCOTT.SHELLEY@sakilacustomer.org,335,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+279,2,DIANNE,SHELTON,DIANNE.SHELTON@sakilacustomer.org,284,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+462,2,WARREN,SHERROD,WARREN.SHERROD@sakilacustomer.org,467,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+425,2,FRANCIS,SIKES,FRANCIS.SIKES@sakilacustomer.org,430,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+254,2,MAXINE,SILVA,MAXINE.SILVA@sakilacustomer.org,259,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+302,1,MICHAEL,SILVERMAN,MICHAEL.SILVERMAN@sakilacustomer.org,307,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+92,2,TINA,SIMMONS,TINA.SIMMONS@sakilacustomer.org,96,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+346,1,ARTHUR,SIMPKINS,ARTHUR.SIMPKINS@sakilacustomer.org,351,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+126,1,ELLEN,SIMPSON,ELLEN.SIMPSON@sakilacustomer.org,130,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+195,1,VANESSA,SIMS,VANESSA.SIMS@sakilacustomer.org,199,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+443,2,FRANCISCO,SKIDMORE,FRANCISCO.SKIDMORE@sakilacustomer.org,448,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+497,2,GILBERT,SLEDGE,GILBERT.SLEDGE@sakilacustomer.org,502,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+562,1,WALLACE,SLONE,WALLACE.SLONE@sakilacustomer.org,568,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+1,1,MARY,SMITH,MARY.SMITH@sakilacustomer.org,5,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+178,2,MARION,SNYDER,MARION.SNYDER@sakilacustomer.org,182,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+268,1,NINA,SOTO,NINA.SOTO@sakilacustomer.org,273,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+521,2,ROLAND,SOUTH,ROLAND.SOUTH@sakilacustomer.org,527,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+328,2,JEFFREY,SPEAR,JEFFREY.SPEAR@sakilacustomer.org,333,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+163,1,CATHY,SPENCER,CATHY.SPENCER@sakilacustomer.org,167,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+424,2,KYLE,SPURLOCK,KYLE.SPURLOCK@sakilacustomer.org,429,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+587,1,SERGIO,STANFIELD,SERGIO.STANFIELD@sakilacustomer.org,593,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+228,2,ALLISON,STANLEY,ALLISON.STANLEY@sakilacustomer.org,232,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+586,1,KIRK,STCLAIR,KIRK.STCLAIR@sakilacustomer.org,592,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+165,2,LORRAINE,STEPHENS,LORRAINE.STEPHENS@sakilacustomer.org,169,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+384,2,ERNEST,STEPP,ERNEST.STEPP@sakilacustomer.org,389,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+127,2,ELAINE,STEVENS,ELAINE.STEVENS@sakilacustomer.org,131,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+51,1,ALICE,STEWART,ALICE.STEWART@sakilacustomer.org,55,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+561,2,IAN,STILL,IAN.STILL@sakilacustomer.org,567,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+158,1,VERONICA,STONE,VERONICA.STONE@sakilacustomer.org,162,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+105,1,DAWN,SULLIVAN,DAWN.SULLIVAN@sakilacustomer.org,109,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+283,1,FELICIA,SUTTON,FELICIA.SUTTON@sakilacustomer.org,288,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+585,1,PERRY,SWAFFORD,PERRY.SWAFFORD@sakilacustomer.org,591,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+486,1,GLEN,TALBERT,GLEN.TALBERT@sakilacustomer.org,491,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+386,1,TODD,TAN,TODD.TAN@sakilacustomer.org,391,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+10,1,DOROTHY,TAYLOR,DOROTHY.TAYLOR@sakilacustomer.org,14,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+584,2,SALVADOR,TEEL,SALVADOR.TEEL@sakilacustomer.org,590,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+265,2,JENNIE,TERRY,JENNIE.TERRY@sakilacustomer.org,270,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+12,1,NANCY,THOMAS,NANCY.THOMAS@sakilacustomer.org,16,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+17,1,DONNA,THOMPSON,DONNA.THOMPSON@sakilacustomer.org,21,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+583,1,MARSHALL,THORN,MARSHALL.THORN@sakilacustomer.org,589,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+327,2,LARRY,THRASHER,LARRY.THRASHER@sakilacustomer.org,332,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+542,2,LONNIE,TIRADO,LONNIE.TIRADO@sakilacustomer.org,548,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+485,1,CLYDE,TOBIAS,CLYDE.TOBIAS@sakilacustomer.org,490,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+434,1,EDDIE,TOMLIN,EDDIE.TOMLIN@sakilacustomer.org,439,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+67,1,KELLY,TORRES,KELLY.TORRES@sakilacustomer.org,71,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+311,2,PAUL,TROUT,PAUL.TROUT@sakilacustomer.org,316,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+514,2,FRANKLIN,TROUTMAN,FRANKLIN.TROUTMAN@sakilacustomer.org,520,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+370,2,WAYNE,TRUONG,WAYNE.TRUONG@sakilacustomer.org,375,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+513,2,DUANE,TUBBS,DUANE.TUBBS@sakilacustomer.org,519,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+128,1,MARJORIE,TUCKER,MARJORIE.TUCKER@sakilacustomer.org,132,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+44,1,MARIE,TURNER,MARIE.TURNER@sakilacustomer.org,48,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+395,2,JOHNNY,TURPIN,JOHNNY.TURPIN@sakilacustomer.org,400,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+582,2,ANDY,VANHORN,ANDY.VANHORN@sakilacustomer.org,588,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+260,1,CHRISTY,VARGAS,CHRISTY.VARGAS@sakilacustomer.org,265,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+364,1,BENJAMIN,VARNEY,BENJAMIN.VARNEY@sakilacustomer.org,369,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+206,1,TERRI,VASQUEZ,TERRI.VASQUEZ@sakilacustomer.org,210,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+574,2,JULIAN,VEST,JULIAN.VEST@sakilacustomer.org,580,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+512,1,CECIL,VINES,CECIL.VINES@sakilacustomer.org,517,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+484,1,ROBERTO,VU,ROBERTO.VU@sakilacustomer.org,489,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+267,1,MARGIE,WADE,MARGIE.WADE@sakilacustomer.org,272,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+329,2,FRANK,WAGGONER,FRANK.WAGGONER@sakilacustomer.org,334,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+171,2,DOLORES,WAGNER,DOLORES.WAGNER@sakilacustomer.org,175,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+552,2,HUGH,WALDROP,HUGH.WALDROP@sakilacustomer.org,558,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+25,1,DEBORAH,WALKER,DEBORAH.WALKER@sakilacustomer.org,29,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+106,1,CONNIE,WALLACE,CONNIE.WALLACE@sakilacustomer.org,110,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+269,1,CASSANDRA,WALTERS,CASSANDRA.WALTERS@sakilacustomer.org,274,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+66,2,JANICE,WARD,JANICE.WARD@sakilacustomer.org,70,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+138,1,HAZEL,WARREN,HAZEL.WARREN@sakilacustomer.org,142,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+90,2,RUBY,WASHINGTON,RUBY.WASHINGTON@sakilacustomer.org,94,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+174,2,YVONNE,WATKINS,YVONNE.WATKINS@sakilacustomer.org,178,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+72,2,THERESA,WATSON,THERESA.WATSON@sakilacustomer.org,76,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+294,2,SHELLY,WATTS,SHELLY.WATTS@sakilacustomer.org,299,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+531,2,JAMIE,WAUGH,JAMIE.WAUGH@sakilacustomer.org,537,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+403,1,MIKE,WAY,MIKE.WAY@sakilacustomer.org,408,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+190,2,YOLANDA,WEAVER,YOLANDA.WEAVER@sakilacustomer.org,194,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+125,1,ETHEL,WEBB,ETHEL.WEBB@sakilacustomer.org,129,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+319,2,RONALD,WEINER,RONALD.WEINER@sakilacustomer.org,324,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+240,1,MARLENE,WELCH,MARLENE.WELCH@sakilacustomer.org,244,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+109,2,EDNA,WEST,EDNA.WEST@sakilacustomer.org,113,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+520,2,MITCHELL,WESTMORELAND,MITCHELL.WESTMORELAND@sakilacustomer.org,526,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+369,2,FRED,WHEAT,FRED.WHEAT@sakilacustomer.org,374,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+208,1,LUCY,WHEELER,LUCY.WHEELER@sakilacustomer.org,212,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+14,2,BETTY,WHITE,BETTY.WHITE@sakilacustomer.org,18,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+363,2,ROY,WHITING,ROY.WHITING@sakilacustomer.org,368,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+455,2,JON,WILES,JON.WILES@sakilacustomer.org,460,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+3,1,LINDA,WILLIAMS,LINDA.WILLIAMS@sakilacustomer.org,7,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+213,1,GINA,WILLIAMSON,GINA.WILLIAMSON@sakilacustomer.org,217,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+172,1,BERNICE,WILLIS,BERNICE.WILLIS@sakilacustomer.org,176,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+8,2,SUSAN,WILSON,SUSAN.WILSON@sakilacustomer.org,12,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+541,2,DARREN,WINDHAM,DARREN.WINDHAM@sakilacustomer.org,547,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+581,1,VIRGIL,WOFFORD,VIRGIL.WOFFORD@sakilacustomer.org,587,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+78,1,LORI,WOOD,LORI.WOOD@sakilacustomer.org,82,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+107,1,FLORENCE,WOODS,FLORENCE.WOODS@sakilacustomer.org,111,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+496,2,TYLER,WREN,TYLER.WREN@sakilacustomer.org,501,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+31,2,BRENDA,WRIGHT,BRENDA.WRIGHT@sakilacustomer.org,35,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
+318,1,BRIAN,WYMAN,BRIAN.WYMAN@sakilacustomer.org,323,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+402,1,LUIS,YANEZ,LUIS.YANEZ@sakilacustomer.org,407,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+413,2,MARVIN,YEE,MARVIN.YEE@sakilacustomer.org,418,1,2006-02-14 22:04:37.0,2006-02-15 04:57:20.0
+28,1,CYNTHIA,YOUNG,CYNTHIA.YOUNG@sakilacustomer.org,32,1,2006-02-14 22:04:36.0,2006-02-15 04:57:20.0
diff --git a/webapp/src/test/resources/apps/pig/id.pig b/webapp/src/test/resources/apps/pig/id.pig
new file mode 100644
index 0000000..5e821aa
--- /dev/null
+++ b/webapp/src/test/resources/apps/pig/id.pig
@@ -0,0 +1,20 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements.  See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership.  The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License.  You may obtain a copy of the License at
+--
+--     http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+A = load '$input' using PigStorage(',');
+B = foreach A generate $0 as id;
+store B into '$output' USING PigStorage();
diff --git a/webapp/src/test/resources/pig-process-template.xml b/webapp/src/test/resources/pig-process-template.xml
new file mode 100644
index 0000000..ba54285
--- /dev/null
+++ b/webapp/src/test/resources/pig-process-template.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<process name="##processName##" xmlns="uri:falcon:process:0.1">
+    <clusters>
+        <cluster name="##cluster##">
+            <validity end="2012-04-22T00:00Z" start="2012-04-21T00:00Z"/>
+        </cluster>
+    </clusters>
+
+    <parallel>1</parallel>
+    <order>FIFO</order>
+    <frequency>days(1)</frequency>
+    <timezone>UTC</timezone>
+
+    <inputs>
+        <input end="today(0,0)" start="today(0,0)" feed="##inputFeedName##" name="input"/>
+    </inputs>
+
+    <outputs>
+        <output instance="now(0,2)" feed="##outputFeedName##" name="output"/>
+    </outputs>
+
+    <properties>
+        <property name="blah" value="blah"/>
+    </properties>
+
+    <!--<workflow engine="pig" path="/falcon/test/apps/pig/id.pig" lib="/falcon/test/apps/lib"/>-->
+    <workflow engine="pig" path="/falcon/test/apps/pig/id.pig"/>
+
+    <retry policy="periodic" delay="minutes(10)" attempts="3"/>
+
+</process>