Index: trunk/ippTasks/Makefile.am
===================================================================
--- trunk/ippTasks/Makefile.am	(revision 32983)
+++ trunk/ippTasks/Makefile.am	(revision 33030)
@@ -38,4 +38,5 @@
 	minidvodb.pro \
 	minidvodbcopy.pro \
+	mergedvodb.pro \
 	nightly_science.pro \
 	burntool.pro \
Index: trunk/ippTasks/addstar.pro
===================================================================
--- trunk/ippTasks/addstar.pro	(revision 32983)
+++ trunk/ippTasks/addstar.pro	(revision 33030)
@@ -53,10 +53,28 @@
 
 macro addstar.revert.off
-  task addstar.revert
+  task addstar.revert.cam
+    active false
+  end
+ task addstar.revert.stack
+    active false
+  end
+ task addstar.revert.staticsky
+    active false
+  end
+ task addstar.revert.staticsky_multi
     active false
   end
 end
 macro addstar.revert.on
-  task addstar.revert
+  task addstar.revert.cam
+    active true
+  end
+  task addstar.revert.stack
+    active true
+  end
+  task addstar.revert.staticsky_multi
+    active true
+  end
+  task addstar.revert.staticsky
     active true
   end
@@ -65,6 +83,10 @@
 
 # this variable will cycle through the known database names
-$addstar_DB = 0
-$addstar_revert_DB = 0
+$addstar_DB = 0 
+#this may not work for more databases (addstar) will do that later)
+$addstar_revert_DB_C = 0
+$addstar_revert_DB_S = 0
+$addstar_revert_DB_SS = 0
+$addstar_revert_DB_SSM = 0
 
 
@@ -318,5 +340,6 @@
     book getword addPendingExp $pageName stage_extra1 -var STAGE_EXTRA1
     book getword addPendingExp $pageName stageroot -var STAGEROOT
-    book getword addPendingExp $pageName stage -var STAGE  
+    book getword addPendingExp $pageName stage -var STAGE
+    book getword addPendingExp $pageName stage_id -var STAGE_ID
     book getword addPendingExp $pageName workdir -var WORKDIR_TEMPLATE
     book getword addPendingExp $pageName reduction -var REDUCTION
@@ -367,4 +390,7 @@
     if ("$STAGE" == "staticsky_multi")
       $run = $run --multi_num $STAGE_EXTRA1
+    end
+    if ("$STAGE" == "cam") 
+      $run = $run --stage_id $STAGE_ID
     end
     if ("$IMAGE_ONLY" == "T")
@@ -411,5 +437,5 @@
 end
 
-task addstar.revert
+task addstar.revert.cam
   host         local
 
@@ -425,13 +451,13 @@
   task.exec
     if ($LABEL:n == 0) break
-    $run = addtool -revertprocessedexp
-    if ($DB:n == 0)
-      option DEFAULT
-    else
-      # save the DB name for the exit tasks
-      option $DB:$addstar_revert_DB
-      $run = $run -dbname $DB:$addstar_revert_DB
-      $addstar_revert_DB ++
-      if ($addstar_revert_DB >= $DB:n) set addstar_revert_DB = 0
+    $run = addtool -revertprocessedexp -stage cam
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$addstar_revert_DB_C
+      $run = $run -dbname $DB:$addstar_revert_DB_C
+      $addstar_revert_DB_C ++
+      if ($addstar_revert_DB_C >= $DB:n) set addstar_revert_DB_C = 0
     end
     add_poll_labels run
@@ -457,2 +483,140 @@
   end
 end
+task addstar.revert.stack
+  host         local
+
+  periods      -poll 5.0
+  periods      -exec 60.0
+  periods      -timeout 1200
+  npending     1
+  active        false
+
+  stdout NULL
+  stderr $LOGDIR/revert.log
+
+  task.exec
+    if ($LABEL:n == 0) break
+    $run = addtool -revertprocessedexp -stage stack
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$addstar_revert_DB_S
+      $run = $run -dbname $DB:$addstar_revert_DB_S
+      $addstar_revert_DB_S ++
+      if ($addstar_revert_DB_S >= $DB:n) set addstar_revert_DB_S = 0
+    end
+    add_poll_labels run
+    command $run
+  end
+
+  # success
+  task.exit    0
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
+task addstar.revert.staticsky
+  host         local
+
+  periods      -poll 5.0
+  periods      -exec 60.0
+  periods      -timeout 1200
+  npending     1
+  active        false
+
+  stdout NULL
+  stderr $LOGDIR/revert.log
+
+  task.exec
+    if ($LABEL:n == 0) break
+    $run = addtool -revertprocessedexp -stage staticsky
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$addstar_revert_DB_SS
+      $run = $run -dbname $DB:$addstar_revert_DB_SS
+      $addstar_revert_DB_SS ++
+      if ($addstar_revert_DB_SS >= $DB:n) set addstar_revert_DB_SS = 0
+    end
+    add_poll_labels run
+    command $run
+  end
+
+  # success
+  task.exit    0
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
+task addstar.revert.staticsky_multi
+  host         local
+
+  periods      -poll 5.0
+  periods      -exec 60.0
+  periods      -timeout 1200
+  npending     1
+  active        false
+
+  stdout NULL
+  stderr $LOGDIR/revert.log
+
+  task.exec
+    if ($LABEL:n == 0) break
+    $run = addtool -revertprocessedexp -stage staticsky_multi
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$addstar_revert_DB_SSM
+      $run = $run -dbname $DB:$addstar_revert_DB_SSM
+      $addstar_revert_DB_SSM ++
+      if ($addstar_revert_DB_SSM >= $DB:n) set addstar_revert_DB_SSM = 0
+    end
+    add_poll_labels run
+    command $run
+  end
+
+  # success
+  task.exit    0
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
Index: trunk/ippTasks/mergedvodb.pro
===================================================================
--- trunk/ippTasks/mergedvodb.pro	(revision 33030)
+++ trunk/ippTasks/mergedvodb.pro	(revision 33030)
@@ -0,0 +1,226 @@
+## addstar.pro : globals and support macros : -*- sh -*-
+## this file contains the tasks for running the addstar analysis stage
+## these tasks use the book addPendingExp
+
+# test for required global variables
+check.globals
+
+
+#There is a book for each task, because I don't use labels. 
+
+if (not($?havemergedvodbBooks))
+  book create MERGEDVODB_MERGE
+  $havemergedvodbBooks = TRUE
+end
+
+$MERGEDVODB_DB = 0
+$MERGEDVODB_MERGE_DB = 0
+
+book init mergedvodbMergelist
+
+macro mergedvodb.merge.status
+  book listbook mergedvodbMergelist
+end
+
+macro mergedvodb.merge.reset
+  book init mergedvodbMergelist
+end
+
+macro mergedvodb.merge.on
+  task mergedvodb.merge.load
+    active true
+  end
+  task mergedvodb.merge.run
+    active true
+  end  
+end
+macro mergedvodb.merge.off
+  task mergedvodb.merge.load
+    active false
+  end
+  task mergedvodb.merge.run
+    active false
+  end  
+end
+
+## you get no choice - you add all of them in at the same time. you can always turn off the tasks you don't want to run.
+macro add.mergedvodb
+  if ($0 != 2)
+    echo "USAGE: add.mergedvodb (mergedvodb)"
+    break
+  end
+    #merge  
+  book newpage MERGEDVODB_MERGE $1
+  book setword MERGEDVODB_MERGE $1 MERGEDVODB $1
+  book setword MERGEDVODB_MERGE $1 STATE PENDING
+end
+
+macro del.mergedvodb
+  if ($0 != 2)
+    echo "USAGE: del.mergedvodb (mergedvodb)"
+    break
+  end
+  book delpage MERGEDVODB_MERGE $1
+end
+
+macro show.mergedvodb
+  if ($0 != 1)
+    echo "USAGE: show.mergedvodb"
+    break
+  end
+  echo "mergedvodb merge"
+  book listbook MERGEDVODB_MERGE
+  echo "n pages"
+  book npages MERGEDVODB_MERGE -var N
+  echo $N
+end
+
+
+task           mergedvodb.merge.load
+  host         local
+
+  periods      -poll $LOADPOLL
+  periods      -exec $LOADEXEC
+  periods      -timeout 30
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/mergedvodb.merge.load.log
+
+  task.exec
+    book npages MERGEDVODB_MERGE -var N
+    if ($N == 0)
+      echo "No labels for processing"
+      break
+    endif
+    book getpage MERGEDVODB_MERGE 0 -var mergedvodb -key STATE NEW
+    if ("$mergedvodb" == "NULL")
+      # All labels have been done --- reset
+      for i 0 $N
+        book getpage MERGEDVODB_MERGE $i -var mergedvodb
+        book setword MERGEDVODB_MERGE $mergedvodb STATE NEW
+      end
+      book getpage MERGEDVODB_MERGE 0 -var mergedvodb -key STATE NEW
+
+      # Select different database
+      $MERGEDVODB_DB ++
+      if ($MERGEDVODB_DB >= $DB:n) set MERGEDVODB_DB = 0
+    end
+    book setword MERGEDVODB_MERGE $mergedvodb STATE DONE
+    
+    $run = mergetool -pendingmerge -limit 1
+    $run = $run -mergedvodb $mergedvodb
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$MERGEDVODB_DB
+      $run = $run -dbname $DB:$MERGEDVODB_DB
+      $MERGEDVODB_DB ++
+      if ($MERGEDVODB_DB >= $DB:n) set MERGEDVODB_DB = 0
+    end
+    #add_poll_args run
+    #echo $run
+    command $run
+  end
+
+  # success
+  task.exit    0
+    #echo "success"
+    # convert 'stdout' to book format
+    ipptool2book stdout mergedvodbMergelist -key merge_id -uniq -setword dbname $options:0 -setword pantaskState INIT
+    if ($VERBOSE > 2)
+      book listbook mergedvodbMergelist
+    end
+    # delete existing entries in the appropriate pantaskStates
+    process_cleanup mergedvodbMergelist
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
+
+task           mergedvodb.merge.run
+  periods      -poll $RUNPOLL
+  periods      -exec $RUNEXEC
+  periods      -timeout 60000
+  
+  #we only want one running at a time
+
+  host         local
+  npending     1
+
+  task.exec
+    # if we are unable to run the 'exec', use a long retry time
+    periods -exec $RUNEXEC
+    book npages mergedvodbMergelist -var N
+    if ($N == 0) break
+    # look for new images in minidvodbWaitlist (pantaskState == INIT)
+    book getpage mergedvodbMergelist 0 -var pageName -key pantaskState INIT
+    if ("$pageName" == "NULL") break
+    book setword mergedvodbMergelist $pageName pantaskState RUN
+    book getword mergedvodbMergelist $pageName merge_id -var MERGE_ID
+    book getword mergedvodbMergelist $pageName mergedvodb -var MERGEDVODB
+    book getword mergedvodbMergelist $pageName mergedvodb_path -var MERGEDVODB_PATH
+    book getword mergedvodbMergelist $pageName minidvodb_path -var MINIDVODB_PATH
+    book getword mergedvodbMergelist $pageName state -var STATE
+    stdout $LOGDIR/mergedvodb.merge.run.log
+    stderr $LOGDIR/mergedvodb.merge.run.log
+    $run = mergedvodb_merge.pl --camera GPC1 
+    $run = $run --mergedvodb_path $MERGEDVODB_PATH 
+    $run = $run --minidvodb_path $MINIDVODB_PATH 
+    $run = $run --merge_id $MERGE_ID --mergedvodb $MERGEDVODB
+    echo $run
+  if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$MERGEDVODB_DB
+      $run = $run --dbname $DB:$MERGEDVODB_DB
+      $MERGEDVODB_DB ++
+      if ($MERGEDVODB_DB >= $DB:n) set MERGEDVODB_DB = 0
+    end
+  # save the pageName for future reference below
+    options $pageName
+
+    # create the command line
+    if ($VERBOSE > 1)
+      echo command $run
+    end
+    # if we are unable to run the 'exec', use a long retry time
+    periods -exec 0.05
+    command $run
+  end
+  # default exit status
+    task.exit    default
+    process_exit mergedvodbMergelist $options:0 $JOB_STATUS
+  end
+
+  # locked list
+  task.exit    crash
+  
+    echo "hostname: $JOB_HOSTNAME"
+
+    # Set a fault code in the database
+    
+    process_exit mergedvodbMergelist $options:0 $EXIT_CRASH_ERR
+  end
+
+  # operation timed out?
+    task.exit    timeout
+	showcommand timeout
+    book setword mergedvodbMergelist $options:0 pantaskState TIMEOUT
+  end
+end
+
Index: trunk/ippTasks/minidvodb.pro
===================================================================
--- trunk/ippTasks/minidvodb.pro	(revision 32983)
+++ trunk/ippTasks/minidvodb.pro	(revision 33030)
@@ -11,5 +11,5 @@
 if (not($?haveminidvodbBooks))
  book create MINIDVODB
- book create MINIDVODB_MERGE
+ book create MINIDVODB_PREMERGE
  book create MINIDVODB_CREATE
  book create MINIDVODB_ACTIVE   
@@ -20,10 +20,10 @@
 
 $MINIDVODB_WAIT_DB = 0
-$MINIDVODB_MERGE_DB = 0
+$MINIDVODB_PREMERGE_DB = 0
 $MINIDVODB_CREATE_DB = 0
 $MINIDVODB_ACTIVE_DB = 0
 
 book init minidvodbWaitlist
-book init minidvodbMergelist
+book init minidvodbPreMergelist
 book init minidvodbCreatelist
 book init minidvodbActivelist
@@ -54,10 +54,10 @@
 end
 
-macro minidvodb.merge.status
-  book listbook minidvodbMergelist
-end
-
-macro minidvodb.merge.reset
-  book init minidvodbMergelist
+macro minidvodb.premerge.status
+  book listbook minidvodbPreMergelist
+end
+
+macro minidvodb.premerge.reset
+  book init minidvodbPreMergelist
 end
 
@@ -112,17 +112,17 @@
 ##these merge the dbs
 
-macro minidvodb.merge.on
-  task minidvodb.merge.load
+macro minidvodb.premerge.on
+  task minidvodb.premerge.load
     active true
   end
-  task minidvodb.merge.run
+  task minidvodb.premerge.run
     active true
   end  
 end
-macro minidvodb.merge.off
-  task minidvodb.merge.load
+macro minidvodb.premerge.off
+  task minidvodb.premerge.load
     active false
   end
-  task minidvodb.merge.run
+  task minidvodb.premerge.run
     active false
   end  
@@ -142,8 +142,8 @@
   book setword MINIDVODB $1 STATE PENDING
   #merge  
-  book newpage MINIDVODB_MERGE $1
-  book setword MINIDVODB_MERGE $1 MINIDVODB_GROUP $1
-  book setword MINIDVODB_MERGE $1 DVODB $3
-  book setword MINIDVODB_MERGE $1 STATE PENDING
+  book newpage MINIDVODB_PREMERGE $1
+  book setword MINIDVODB_PREMERGE $1 MINIDVODB_GROUP $1
+  book setword MINIDVODB_PREMERGE $1 DVODB $3
+  book setword MINIDVODB_PREMERGE $1 STATE PENDING
   #active  
   book newpage MINIDVODB_ACTIVE $1
@@ -168,5 +168,5 @@
   end
   book delpage MINIDVODB $1
-  book delpage MINIDVODB_MERGE $1
+  book delpage MINIDVODB_PREMERGE $1
   book delpage MINIDVODB_CREATE $1  
   book delpage MINIDVODB_ACTIVE $1
@@ -180,6 +180,6 @@
   echo "minidvodb wait"
   book listbook MINIDVODB
-  echo "minidvodb merge"
-  book listbook MINIDVODB_MERGE
+  echo "minidvodb premerge"
+  book listbook MINIDVODB_PREMERGE
   echo "minidvodb create"
   book listbook MINIDVODB_CREATE 
@@ -339,5 +339,5 @@
 
 
-task           minidvodb.merge.load
+task           minidvodb.premerge.load
   host         local
 
@@ -348,8 +348,8 @@
 
   stdout NULL
-  stderr $LOGDIR/minidvodb.merge.load.log
+  stderr $LOGDIR/minidvodb.premerge.load.log
 
   task.exec
-    book npages MINIDVODB_MERGE -var N
+    book npages MINIDVODB_PREMERGE -var N
     if ($N == 0)
 #      echo "No labels for processing"
@@ -357,13 +357,13 @@
     endif
 
-    book getpage MINIDVODB_MERGE 0 -var minidvodb_group -key STATE NEW
+    book getpage MINIDVODB_PREMERGE 0 -var minidvodb_group -key STATE NEW
     if ("$minidvodb_group" == "NULL")
       # All labels have been done --- reset
 #      echo "Resetting labels"
       for i 0 $N
-        book getpage MINIDVODB_MERGE $i -var minidvodb_group
-        book setword MINIDVODB_MERGE $minidvodb_group STATE NEW
+        book getpage MINIDVODB_PREMERGE $i -var minidvodb_group
+        book setword MINIDVODB_PREMERGE $minidvodb_group STATE NEW
       end
-      book getpage MINIDVODB_MERGE 0 -var minidvodb_group -key STATE NEW
+      book getpage MINIDVODB_PREMERGE 0 -var minidvodb_group -key STATE NEW
 
       # Select different database
@@ -372,5 +372,5 @@
     end
     #finds the minidvodbs in a state of 'to_be_merged' 
-    book setword MINIDVODB_MERGE $minidvodb_group STATE DONE
+    book setword MINIDVODB_PREMERGE $minidvodb_group STATE DONE
     $run = addtool -listminidvodbrun -state to_be_merged -limit 1
     $run = $run -minidvodb_group $minidvodb_group
@@ -392,10 +392,10 @@
   task.exit    0
     # convert 'stdout' to book format
-    ipptool2book stdout minidvodbMergelist -key minidvodb_id -uniq -setword dbname $options:0 -setword pantaskState INIT
+    ipptool2book stdout minidvodbPreMergelist -key minidvodb_id -uniq -setword dbname $options:0 -setword pantaskState INIT
     if ($VERBOSE > 2)
-      book listbook minidvodbMergelist
+      book listbook minidvodbPreMergelist
     end
     # delete existing entries in the appropriate pantaskStates
-    process_cleanup minidvodbMergelist
+    process_cleanup minidvodbPreMergelist
   end
 
@@ -418,5 +418,5 @@
 
 
-task           minidvodb.merge.run
+task           minidvodb.premerge.run
   periods      -poll $RUNPOLL
   periods      -exec $RUNEXEC
@@ -432,21 +432,20 @@
     periods -exec $RUNEXEC
 
-    book npages minidvodbMergelist -var N
+    book npages minidvodbPreMergelist -var N
     if ($N == 0) break
     
     # look for new images in minidvodbWaitlist (pantaskState == INIT)
-    book getpage minidvodbMergelist 0 -var pageName -key pantaskState INIT
+    book getpage minidvodbPreMergelist 0 -var pageName -key pantaskState INIT
     if ("$pageName" == "NULL") break
 
-    book setword minidvodbMergelist $pageName pantaskState RUN
-    book getword minidvodbMergelist $pageName minidvodb_id -var MINIDVODB_ID
-    book getword minidvodbMergelist $pageName minidvodb_group -var MINIDVODB_GROUP
-    book getword minidvodbMergelist $pageName mergedvodb_path -var MERGEDVODB_PATH
-    book getword minidvodbMergelist $pageName minidvodb_path -var MINIDVODB_PATH
-    book getword minidvodbMergelist $pageName state -var STATE
-    stdout $LOGDIR/minidvodb.merge.run.log
-    stderr $LOGDIR/minidvodb.merge.run.log
-
-    $run = minidvodb_merge.pl --camera GPC1 --mergedvodb $MERGEDVODB_PATH --minidvodb $MINIDVODB_PATH --minidvodb_group $MINIDVODB_GROUP --minidvodb_id $MINIDVODB_ID
+    book setword minidvodbPreMergelist $pageName pantaskState RUN
+    book getword minidvodbPreMergelist $pageName minidvodb_id -var MINIDVODB_ID
+    book getword minidvodbPreMergelist $pageName minidvodb_group -var MINIDVODB_GROUP
+    book getword minidvodbPreMergelist $pageName minidvodb_path -var MINIDVODB_PATH
+    book getword minidvodbPreMergelist $pageName state -var STATE
+    stdout $LOGDIR/minidvodb.premerge.run.log
+    stderr $LOGDIR/minidvodb.premerge.run.log
+
+    $run = minidvodb_premerge.pl --camera GPC1 --minidvodb $MINIDVODB_PATH --minidvodb_group $MINIDVODB_GROUP --minidvodb_id $MINIDVODB_ID
     
   if ($DB:n == 0)
@@ -472,5 +471,5 @@
   # default exit status
     task.exit    default
-    process_exit minidvodbMergelist $options:0 $JOB_STATUS
+    process_exit minidvodbPreMergelist $options:0 $JOB_STATUS
   end
 
@@ -482,5 +481,5 @@
     # Set a fault code in the database
     
-    process_exit minidvodbMergelist $options:0 $EXIT_CRASH_ERR
+    process_exit minidvodbPreMergelist $options:0 $EXIT_CRASH_ERR
   end
 
@@ -488,5 +487,5 @@
     task.exit    timeout
 	showcommand timeout
-    book setword minidvodbMergelist $options:0 pantaskState TIMEOUT
+    book setword minidvodbPreMergelist $options:0 pantaskState TIMEOUT
   end
 end
Index: trunk/ippTasks/survey.pro
===================================================================
--- trunk/ippTasks/survey.pro	(revision 32983)
+++ trunk/ippTasks/survey.pro	(revision 33030)
@@ -3,22 +3,4 @@
 # test for required global variables
 check.globals
-
-# there is a bug in 'getbook', use a different method below
-# book getbook SURVEY_DIFF -var isBook
-# if ("$isBook" != "SURVEY_DIFF")
-#   book create SURVEY_DIFF
-# end
-# book getbook SURVEY_MAGIC -var isBook
-# if ("$isBook" == "NULL")
-#   book create SURVEY_MAGIC
-# end
-# book getbook SURVEY_DESTREAK -var isBook
-# if ("$isBook" == "NULL")
-#   book create SURVEY_DESTREAK
-# end
-# book getbook SURVEY_DIST -var isBook
-# if ("$isBook" == "NULL")
-#   book create SURVEY_DIST
-# end
 
 if (not($?haveSurveyBooks))
@@ -30,4 +12,5 @@
  book create SURVEY_DIST
  book create SURVEY_ADDSTAR   
+ book create SURVEY_MERGEDVODB
  book create SURVEY_CHIP_BG
  book create SURVEY_WARP_BG
@@ -44,4 +27,5 @@
 $SURVEY_DIST_DB = 0
 $SURVEY_ADDSTAR_DB = 0
+$SURVEY_MERGEDVODB_DB = 0
 $SURVEY_CHIP_BG_DB = 0
 $SURVEY_WARP_BG_DB = 0
@@ -68,4 +52,7 @@
     active true
   end
+  task survey.mergedvodb
+    active true
+  end
   task survey.destreak
     active true
@@ -104,4 +91,7 @@
     active false
   end
+  task survey.mergedvodb
+    active false
+  end  
   task survey.destreak
     active false
@@ -270,4 +260,31 @@
   book listbook SURVEY_ADDSTAR
 end
+
+macro survey.add.mergedvodb
+  if ($0 != 4)
+    echo "USAGE: survey.add.mergedvodb (tag) (mergedvodb) (minidvodb_group)"
+    break
+  end
+  book newpage SURVEY_MERGEDVODB $1
+  book setword SURVEY_MERGEDVODB $1 MERGEDVODB $2
+  book setword SURVEY_MERGEDVODB $1 MINIDVODB_GROUP $3
+end
+
+macro survey.del.mergedvodb
+  if ($0 != 2)
+    echo "USAGE: survey.del.mergedvodb (tag)"
+    break
+  end
+  book delpage SURVEY_MERGEDVODB $1
+end
+
+macro survey.show.mergedvodb
+  if ($0 != 1)
+    echo "USAGE: survey.show.mergedvodb"
+    break
+  end
+  book listbook SURVEY_MERGEDVODB
+end
+
 
 # user functions to manipulate destreak labels
@@ -826,11 +843,12 @@
     if ("$stage" == "cam") 
         #only queue destreaked cams. stacks and staticsky don't need this
-        if ("$DB:$SURVEY_ADDSTAR_DB" == "isp")
+    #    if ("$DB:$SURVEY_ADDSTAR_DB" == "isp")
             #this is the only way I can think of how to handle this (but it is messy). If it is a database that we KNOW doesn't use magicked (ie, isp), then do not queue destreaked
+           # now with no magic, all are uncensored
            $run = $run -uncensored
-	else
+#	else
 	   #if not isp, then run destreaked version only
-	   $run = $run -destreaked
-	end
+#	   $run = $run -destreaked
+#	end
     end
     if ("$stage" == "staticsky") 
@@ -875,4 +893,82 @@
   end
 end
+
+
+task survey.mergedvodb
+  host local
+ 
+  periods      -poll $SURVEY_POLL
+  periods      -exec $SURVEY_EXEC
+  periods      -timeout $SURVEY_TIMEOUT
+  npending     1
+
+  stdout $LOGDIR/survey.mergedvodb.log
+  stderr $LOGDIR/survey.mergedvodb.log
+
+  task.exec
+    book npages SURVEY_MERGEDVODB -var N
+    if ($N == 0)
+#      echo "No labels for processing"
+      break
+    endif
+
+    book getpage SURVEY_MERGEDVODB 0 -var tag -key STATE NEW
+    if ("$tag" == "NULL")
+      # All labels have been done --- reset
+    # echo "Resetting labels"
+      for i 0 $N
+        book getpage SURVEY_MERGEDVODB $i -var tag
+	book setword SURVEY_MERGEDVODB $tag STATE NEW
+      end
+      book getpage SURVEY_MERGEDVODB 0 -var tag -key STATE NEW
+
+      # Select different database
+      $SURVEY_MERGEDVODB_DB ++
+      if ($SURVEY_MERGEDVODB_DB >= $DB:n) set SURVEY_MERGEDVODB_DB = 0
+    end
+   book setword SURVEY_MERGEDVODB $tag STATE DONE
+   book getword SURVEY_MERGEDVODB $tag MERGEDVODB -var mergedvodb
+   book getword SURVEY_MERGEDVODB $tag MINIDVODB_GROUP -var minidvodb_group
+     
+ #   $run = addtool -definebyquery -destreaked -label $label -set_dvodb $dbodb
+    #$run = mergetool 
+    $run = mergedvodb_queue.pl --outroot $mergedvodb --mergedvodb $mergedvodb --minidvodb_group $minidvodb_group
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      $run = $run --dbname $DB:$SURVEY_MERGEDVODB_DB
+      option $DB:$SURVEY_MERGEDVODB_DB
+    end
+    #this run doesn't work because there's no workdir 
+    #$run = $run -definebyquery -mergedvodb $mergedvodb -minidvodb_group $minidvodb_group 
+    
+    
+    # echo $run
+
+  echo $run
+    command $run
+  end
+
+  # success
+   
+  task.exit    0
+#    echo "Success"
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
+
 
 
